"error retrieving current directory" 运行 sudo 下的 psql 命令
"error retrieving current directory" running psql commands under sudo
来自 bash 脚本 我正在尝试创建一个 postgresql 数据库 + 用户。
它看起来像这样:
#!/usr/bin/env bash
echo ' Create DBs'
sudo -u postgres createdb -E 'utf-8' -l en_US.utf8 -T template0 testdb
echo ' Create User'
sudo -u postgres psql -c "create role bert with login password 'pass';"
echo ' alter permissions'
sudo -u postgres psql -c "alter database testdb owner to bert;"
不幸的是,我收到以下错误:
==> default: Create DBs
==> default: could not identify current directory: No such file or directory
==> default: Create User
==> default: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
==> default: CREATE ROLE
==> default: alter permissions
==> default: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
如果有人能解释一下出了什么问题以及如何解决 getcwd 错误,我将不胜感激。
谢谢!
您的脚本 运行 来自某个地方(例如 /root
-- 或者可能是以前删除的临时目录),postgres
用户无权访问当前目录工作目录。
这些消息实际上是无害的(除非你正在调用依赖于 $PWD
或类似变量或命令的脚本),但如果你想避免它们,请将目录更改到某个确定存在的地方并且postgres
用户有权访问。例如,输入行:
cd /
...在脚本顶部,就在 shebang 下方。
来自 bash 脚本 我正在尝试创建一个 postgresql 数据库 + 用户。 它看起来像这样:
#!/usr/bin/env bash
echo ' Create DBs'
sudo -u postgres createdb -E 'utf-8' -l en_US.utf8 -T template0 testdb
echo ' Create User'
sudo -u postgres psql -c "create role bert with login password 'pass';"
echo ' alter permissions'
sudo -u postgres psql -c "alter database testdb owner to bert;"
不幸的是,我收到以下错误:
==> default: Create DBs
==> default: could not identify current directory: No such file or directory
==> default: Create User
==> default: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
==> default: CREATE ROLE
==> default: alter permissions
==> default: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
如果有人能解释一下出了什么问题以及如何解决 getcwd 错误,我将不胜感激。
谢谢!
您的脚本 运行 来自某个地方(例如 /root
-- 或者可能是以前删除的临时目录),postgres
用户无权访问当前目录工作目录。
这些消息实际上是无害的(除非你正在调用依赖于 $PWD
或类似变量或命令的脚本),但如果你想避免它们,请将目录更改到某个确定存在的地方并且postgres
用户有权访问。例如,输入行:
cd /
...在脚本顶部,就在 shebang 下方。