Пользователи PostgreSQL по умолчанию используют одноранговую аутентификацию в сокетах Unix, где пользователь Unix должен быть таким же, как пользователь PostgreSQL. Так что люди часто используют su
или sudo
стать postgres
суперпользователем.
Я часто вижу людей, использующих такие конструкции, как:
sudo su - postgres
скорее, чем
sudo -u postgres -i
и мне интересно почему. Точно так же я видел:
sudo su - postgres -c psql
вместо того
sudo -u postgres psql
Без ведущих sudo
к su
версии будет иметь некоторый смысл , если вы были на старой платформе без sudo
. Но почему вы используете UNIX или Linux с не доисторическими версиями sudo su
?
postgresql
shell
sudo
su
Крейг Рингер
источник
источник
Ответы:
забывать
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
. Это также позволяет вам улучшить контроль доступа.Для выполнения команды
превосходит альтернативу:
в том, что вам не нужно дважды избегать кавычек и других метасимволов оболочки, а также других преимуществ безопасности, связанных с отсутствием root. Вы, вероятно, случайно окажетесь, написав:
иногда, который не будет работать должным образом.
Наконец, намного проще установить переменные среды с помощью
sudo
, например,чем через
su
. (ЗдесьPATH
требуется настройка, чтобыinitdb
можно было найти правильныйpostgres
исполняемый файл).Так. Забудьте, что
su
команда существует. Тебе это больше не нужно. Чтобы избавиться от привычки, создайте псевдоним для чего-то, что выведет ошибку. (Некоторые сценарии инициализации и установки пакетов все еще используются,su
поэтому вы не можете удалить их).Смотрите также:
источник