забывать sudo su
Нет пользы в использовании sudo su
, это анахроничная привычка, когда люди привыкли к использованию su
. Люди начали атаковать, sudo
когда дистрибутивы Linux перестали устанавливать пароль пользователя root и сделали sudo
единственный способ получить доступ к учетной записи root. Вместо того, чтобы изменить свои привычки, они просто использовали sudo su
. (Я был одним из них до недавнего времени, когда использование коробок с sudoers
конфигами заставляло меня менять привычку).
использование sudo -u
Для входа в систему sudo -u postgres -i
предпочтительнее sudo su - postgres
. Для этого не требуется, чтобы пользователь имел root-доступ /etc/sudoers
, ему нужно только право стать пользователем postgres
. Это также позволяет вам улучшить контроль доступа.
Для выполнения команды
sudo -u postgres psql -c "SELECT 1"
превосходит альтернативу:
sudo su - postgres -c "psql -c \"SELECT 1\""
в том, что вам не нужно дважды избегать кавычек и других метасимволов оболочки, а также других преимуществ безопасности, связанных с отсутствием root. Вы, вероятно, случайно окажетесь, написав:
sudo su - postgres -c psql -c "SELECT 1"
иногда, который не будет работать должным образом.
Наконец, намного проще установить переменные среды с помощью sudo
, например,
sudo PATH=/usr/pgsql-9.3/bin:$PATH -u postgres /usr/pgsql-9.3/bin/initdb -D /var/lib/pgsql/testcluster
чем через su
. (Здесь PATH
требуется настройка, чтобы initdb
можно было найти правильный postgres
исполняемый файл).
Так. Забудьте, что su
команда существует. Тебе это больше не нужно. Чтобы избавиться от привычки, создайте псевдоним для чего-то, что выведет ошибку. (Некоторые сценарии инициализации и установки пакетов все еще используются, su
поэтому вы не можете удалить их).
Смотрите также: