Linux
CentOS 7 sudo 不以使用者身份執行命令
我有一點問題,希望有人可以幫助我。
我正在編寫一個 bash 腳本來設置一些軟體,即 nginx、postgres 等
到目前為止一切都很順利,除了我開始設置 PostgreSQL
我需要執行以下命令;
psql -c "CREATE ROLE myboxname LOGIN UNENCRYPTED PASSWORD 'secret' SUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;"
但我需要通過 sudo 來完成。
我的完整命令如下;
sudo su - postgres psql -c "CREATE ROLE myboxname LOGIN UNENCRYPTED PASSWORD 'secret' SUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;"
當我執行它時,我得到以下資訊;
psql: CREATE: command not found
但是,如果我執行以下操作,它可以正常工作
sudo su - postgres psql -c "CREATE ROLE myboxname LOGIN UNENCRYPTED PASSWORD 'secret' SUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;"
我的 sudo 命令中是否缺少標誌或其他內容?…. 任何幫助將不勝感激。
如果使用者是 root,您可以使用**-c選項和su**
su - postgres -c "<commands>"
或者使用sudo和**-c**
sudo -U postgres -c "<commands>" -s /bin/bash