Unutmak sudo su
Kullanmanın bir faydası yok sudo su, insanların kullanmaya alıştıkları anakronistik bir alışkanlık su. sudoLinux dağıtımı bir root şifresi ayarlamayı bırakıp sudoroot 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. ( sudoersKonfigü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 -itercih edilir sudo su - postgres. Kullanıcının kök erişimi olması /etc/sudoersgerekmez, 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 PATHayar gereklidir ).initdbpostgres
Yani. suKomutun 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, subu yüzden yine de kaldıramazsınız).
Ayrıca bakınız: