Почему двойной sudo изменить разрешения?


контекст:

sshed в AWS t1.микро экземпляр под управлением Amazon Linux 2013.09, используя по умолчанию ec2-user. Я пытаюсь перечислить содержимое каталога postgresql по умолчанию:

что там?

$ ls /var/lib/pgsql9/

ls: cannot open directory /var/lib/pgsql9/: Permission denied

Ok. Кому это принадлежит?

$ ls -l /var/lib | grep pgsql
drwx------ 4 postgres postgres 4096 Jun 22 16:06 pgsql9

Ах. Глупая я.

$ sudo -u postgres ls /var/lib/pgsql9/

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for ec2-user:

... Что? ec2-user пароль? Время для большего пушка.

$ sudo sudo -u postgres ls /var/lib/pgsql9/
backups  data

успехов! теперь, к superuser.com чтобы выяснить, что случилось.

почему sudo sudo ведут себя иначе, чем sudo?

13
задан kdbanman
06.02.2023 13:58 Количество просмотров материала 3283
Распечатать страницу

1 ответ

Amazon EC2 построен как Ubuntu: no root доступ и все делается с sudo вместо.

что ваш sudo команда делала попытку выдать себя за postgres, для этого требуется разрешение. ec2-user не имеет этого разрешения, так sudo запросит пароль (который не будет работать, потому что у него его нет).

когда вы sudo sudo, вы вызываете второй sudo как корень, который имеет разрешения олицетворять других пользователей, так что команда завод. Из-за пути sudo сконфигурирован (строка NOPASSWD в sudoers) ему не нужен пароль для выполнения от имени root.

4
отвечен Nathan C 2023-02-07 21:46

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх