забывать 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поэтому вы не можете удалить их).
Смотрите также: