即使使用 sudo,如何拒绝访问 postgres 目录?
How can I be denied access to a postgres directory even with sudo?
我需要访问 pg_hba.conf
以尝试修复损坏的 postgres 开发数据库,该数据库在
的 RAILS_ENV=development rails s
上出现错误
PG::ConnectionBad
fe_sendauth: no password supplied
这 post 至少似乎表明这种访问可能有所帮助:PG::ConnectionBad: fe_sendauth: no password supplied
问题是,即使我知道路径
/Library/PostgreSQL/9.3/data/pg_hba.conf
当我实际尝试 cd 进入它时:
cd /Library/PostgreSQL/9.3/data/
我得到:cd:cd:13: permission denied: /Library/PostgreSQL/9.3/data/
看似明显的解决方法是 sudo,所以我尝试这样做:
sudo cd /Library/PostgreSQL/9.3/data/
什么也没发生。从字面上看,下一行表明我仍然原地不动。 sudo如何被拒绝?我怎样才能访问这个文件或解决我的问题?
谢谢!
这个:
sudo cd /Library/PostgreSQL/9.3/data/
在 sudo
下运行 cd
命令。 sudo
实际上运行 shell 的 新实例 (/bin/sh
或其他),然后运行 shell 中的命令。
当前目录是当前进程的属性。它由新的子进程继承,但它的变化不会传播到父进程。
您所做的相当于:
sh -c 'cd /tmp'
它制作一个新的 shell,cd 到一个位置,然后退出。 cd
的效果只影响 shell,所以它实际上什么也没做。
您应该做的是使用 sudo
通过绝对路径在文本编辑器中打开文件,例如:
sudo nano /Library/PostgreSQL/9.3/data/pg_hba.conf
(nano
是一个简单且用户友好的命令行文本编辑器;鉴于此问题,我假设您不知道如何使用 vi
。)
我需要访问 pg_hba.conf
以尝试修复损坏的 postgres 开发数据库,该数据库在
RAILS_ENV=development rails s
上出现错误
PG::ConnectionBad
fe_sendauth: no password supplied
这 post 至少似乎表明这种访问可能有所帮助:PG::ConnectionBad: fe_sendauth: no password supplied
问题是,即使我知道路径
/Library/PostgreSQL/9.3/data/pg_hba.conf
当我实际尝试 cd 进入它时:
cd /Library/PostgreSQL/9.3/data/
我得到:cd:cd:13: permission denied: /Library/PostgreSQL/9.3/data/
看似明显的解决方法是 sudo,所以我尝试这样做:
sudo cd /Library/PostgreSQL/9.3/data/
什么也没发生。从字面上看,下一行表明我仍然原地不动。 sudo如何被拒绝?我怎样才能访问这个文件或解决我的问题?
谢谢!
这个:
sudo cd /Library/PostgreSQL/9.3/data/
在 sudo
下运行 cd
命令。 sudo
实际上运行 shell 的 新实例 (/bin/sh
或其他),然后运行 shell 中的命令。
当前目录是当前进程的属性。它由新的子进程继承,但它的变化不会传播到父进程。
您所做的相当于:
sh -c 'cd /tmp'
它制作一个新的 shell,cd 到一个位置,然后退出。 cd
的效果只影响 shell,所以它实际上什么也没做。
您应该做的是使用 sudo
通过绝对路径在文本编辑器中打开文件,例如:
sudo nano /Library/PostgreSQL/9.3/data/pg_hba.conf
(nano
是一个简单且用户友好的命令行文本编辑器;鉴于此问题,我假设您不知道如何使用 vi
。)