Lupa sudo su
Tidak ada manfaatnya menggunakan sudo su
, ini merupakan kebiasaan anakronistis sejak orang terbiasa menggunakannya su
. Orang-orang mulai memasang sudo
di depan ketika distro Linux berhenti mengatur kata sandi root dan membuat sudo
satu-satunya cara untuk mengakses akun root. Alih-alih mengubah kebiasaan mereka, mereka hanya menggunakan sudo su
. (Saya adalah salah satu dari mereka sampai relatif baru ketika menggunakan kotak dengan sudoers
konfigurasi memaksa saya untuk mengubah kebiasaan saya).
Menggunakan sudo -u
Untuk shell login, sudo -u postgres -i
lebih disukai sudo su - postgres
. Tidak mengharuskan pengguna memiliki akses root /etc/sudoers
, mereka hanya perlu hak untuk menjadi pengguna postgres
. Ini juga memungkinkan Anda menerapkan kontrol akses yang lebih baik.
Untuk eksekusi perintah
sudo -u postgres psql -c "SELECT 1"
lebih unggul dari alternatif:
sudo su - postgres -c "psql -c \"SELECT 1\""
di mana Anda tidak perlu meloloskan diri dari tanda kutip dan karakter meta shell lainnya serta keuntungan keamanan lainnya karena tidak memerlukan root. Anda mungkin tidak sengaja akan menulis:
sudo su - postgres -c psql -c "SELECT 1"
terkadang, yang tidak akan berfungsi dengan baik.
Akhirnya, lebih mudah untuk mengatur variabel lingkungan melalui sudo
, mis
sudo PATH=/usr/pgsql-9.3/bin:$PATH -u postgres /usr/pgsql-9.3/bin/initdb -D /var/lib/pgsql/testcluster
dari via su
. (Di sini, PATH
pengaturan diperlukan agar initdb
dapat menemukan postgres
eksekusi yang benar ).
Begitu. Lupakan su
perintah yang ada. Anda tidak membutuhkannya lagi. Untuk menghentikan kebiasaan itu, tambahkan kebiasaan itu ke sesuatu yang akan mencetak kesalahan. (Namun beberapa skrip pengaturan init dan paket masih digunakan su
sehingga Anda tidak dapat menghapusnya).
Lihat juga: