Unutmak sudo su
Kullanmanın bir faydası yok sudo su
, insanların kullanmaya alıştıkları anakronistik bir alışkanlık su
. sudo
Linux dağıtımı bir root şifresi ayarlamayı bırakıp sudo
root hesabına erişmenin tek yolunu yaptığında insanlar önden oynamaya başladılar . Alışkanlıklarını değiştirmek yerine, sadece kullandılar sudo su
. ( sudoers
Konfigürasyon kutuları kullanarak alışkanlığımı değiştirmeye zorlayan zamana kadar onlardan biriydim).
kullanım sudo -u
Bir giriş kabuğu için, sudo -u postgres -i
tercih edilir sudo su - postgres
. Kullanıcının kök erişimi olması /etc/sudoers
gerekmez, yalnızca kullanıcı olma hakkına ihtiyaçları vardır postgres
. Ayrıca daha iyi erişim kontrolleri uygulamanıza izin verir.
Komut yürütme için
sudo -u postgres psql -c "SELECT 1"
alternatiften daha üstündür:
sudo su - postgres -c "psql -c \"SELECT 1\""
Bunun için tırnaklardan ve diğer kabuk meta karakterlerinden ve ayrıca root gerektirmeyen diğer güvenlik avantajlarından iki kez kaçmak zorunda kalmazsınız. Muhtemelen yanlışlıkla yazmaya başlayacaksınız:
sudo su - postgres -c psql -c "SELECT 1"
bazen düzgün çalışmaz.
Son olarak, ortam değişkenlerini sudo
örneğin;
sudo PATH=/usr/pgsql-9.3/bin:$PATH -u postgres /usr/pgsql-9.3/bin/initdb -D /var/lib/pgsql/testcluster
üzerinden su
. (Burada, doğru yürütülebilir dosyayı bulmak için PATH
ayar gereklidir ).initdb
postgres
Yani. su
Komutun var olduğunu unut . Artık ona ihtiyacın yok. Alışkanlığı ortadan kaldırmak için, hatayı yazdırır bir şeye diğer ad. (Bazı init ve paket kurulum komut dosyaları hala kullanır, su
bu yüzden yine de kaldıramazsınız).
Ayrıca bakınız: