Re: Window2012R2: initdb error: "The current directory is invalid."

Поиск
Список
Период
Сортировка
От cpolish@surewest.net
Тема Re: Window2012R2: initdb error: "The current directory is invalid."
Дата
Msg-id 20160119222848.GB18963@vinny.peecee3.com
обсуждение исходный текст
Ответ на Re: Window2012R2: initdb error: "The current directory is invalid."  ("Dang Minh Huong" <kakalot49@gmail.com>)
Ответы Re: Window2012R2: initdb error: "The current directory is invalid."  (Dang Minh Huong <kakalot49@gmail.com>)
Список pgsql-bugs
On 2016-01-19 22:45, Dang Minh Huong wrote:
> > owner@postgresql.org] On Behalf Of Thomas Kellerer
> > Huong Dangminh schrieb am 19.01.2016 um 11:49:
> > > I have failed in execute initdb in "c:\Windows\Temp\dir" folder as
> > > reproduce logs below. The OS's messages "The current directory is invalid."
> > > was returned.
> >
> > c:\Windows has special protection and it is not really surprising that a regular
> > user isn't allowed to write into that directory.
> >
> > When Postgres is started it drops all "Administrator" privileges for security
> > reasons (older versions would refuse to start as
> > Administrator) - and I think initdb is doing the same thing.
> > So it's understandable that it can't write to c:\Windows
> >
>
> I did not mean, create data cluster in C drive made that error sir.
> This issue reproduce in all drive specified in -D option.
> # My reproduce environment is only one (C) drive. So, sorry for the log.
>
> I mean, it happen when current directory of command line is "c:\Windows\Temp\something".
> It is rare case, and may be a Windows2012's specification, but i don't know
> why only "c:\Windows\Temp\something" and are there another case like that?
>
> > Putting application data into c:\Windows (or "c:\Program Files" for that
> > matter) is an extremely bad idea to begin with (c:\Windows being even
> > worse than "c:\Program Files")
> >
> > You shouldn't be doing that anyway.

As Thomas said, it is undesireable to log into a server as
administrator. You should create and use a privileged user, for
example dmhadmin, insert that user into the administrators
group. Also create an ordinary user, perhaps dmh, and log in
with that account. Download the postgres installer, run it as
the ordinary user. You will be prompted for a privileged user
account, enter the priviledged account (for example, dmhadmin).
When asked for the location to install the database, create a
new folder named postgres on a non-system (not C:) disk. If your
server can only have one disk you might install the database in
C:\postgres, which you'll have the opportunity to create from
inside the installer's "browse..." dialog. This folder will be
owned by the local server's "administrators" group with
appropriate privileges.

C:\Windows\Temp is not an appropriate choice for storing
persistent program data. If you ignore this by manipulating the
permissions you will eventually be harmed when a privileged
program clears the entire contents.

Hope that helps,
--
Charles

В списке pgsql-bugs по дате отправления:

Предыдущее
От: wayne+psql@lewisclan.org
Дата:
Сообщение: BUG #13878: Hot Standby Query Conflict documentation leaves out a potential source of conflict errors
Следующее
От: Sandeep Thakkar
Дата:
Сообщение: Re: BUG #13877: Fails to install