Назад | Перейти на главную страницу

В чем разница между sudo -i и sudo su -

В чем разница между командами sudo -i и sudo su -?

Они одинаковы?

Они могут предоставлять функционально близкие к тому же, но кажется, что sudo -i легче и сохраняет некоторые удобные обратные ссылки в вашей среде.

Вы можете увидеть дополнительные процессы, посмотрев на 'ps auxf' (f дает вам вид леса)

судо -i дает это дерево процессов

jkrauska  4480  0.0  0.0  76828  1656 ?        S    23:38   0:00  |   \_ sshd: jkrauska@pts/0
jkrauska  4482  0.0  0.0  21008  3816 pts/0    Ss   23:38   0:00  |       \_ -bash
root      4675  0.6  0.0  19512  2260 pts/0    S+   23:42   0:00  |           \_ -bash

sudo su - дает это дерево процессов

jkrauska  4480  0.0  0.0  76828  1656 ?        S    23:38   0:00  |   \_ sshd: jkrauska@pts/0
jkrauska  4482  0.0  0.0  21008  3816 pts/0    Ss   23:38   0:00  |       \_ -bash
root      4687  0.5  0.0  43256  1488 pts/0    S    23:42   0:00  |           \_ su -
root      4688  0.5  0.0  19508  2252 pts/0    S+   23:42   0:00  |               \_ -su

Обратите внимание, что они начинаются с одного и того же pid процесса bash, 4482, но su - кажется, порождает еще один шаг.)

Ваш первый sudo уже повышает ваш уровень доступа до root. Запуск su без указания имени пользователя внутри sudo дважды меняет текущего пользователя на root.

Другой способ выяснить это - запустить обе команды с помощью strace -f.

strace -f -o sudoi sudo -i

против

strace -f -o sudosu sudo su -

Если вы сравните эти две строки, вы увидите, что для sudo su - запущено больше exeve.

Еще кое-что.

судо -i поддерживает дополнительные переменные среды, установленные SUDO.

SUDO_USER=jkrauska
SUDO_UID=1000
SUDO_COMMAND=/bin/bash
SUDO_GID=1000

sudo su - уничтожает эти переменные.

Ответ на выстрел: Нет, они не такие.

Длинный ответ: sudo и su - разные программы, которые выполняют одну и ту же задачу, повышая вас до привилегий root.

вс раньше было де-факто способом получить root-доступ в системах Linux. Однако всегда была необходимость разделить привилегии и оставить некоторую информацию для аудита. Также когда вы делаете вс - все, что вы делаете, делается с правами root и опасно иметь такую ​​большую мощность. Здесь на помощь приходит sudo.

судо имеет некоторые характеристики, которые вс не. Ключевым элементом sudo является возможность запускать «одну» команду от имени пользователя root, а затем передавать права обычному пользователю. Пример: удалить файл, принадлежащий пользователю root.

sudo rm /root/someFile

Эта команда сотрет файл, потому что sudo будет повышать вас до уровня root каждый раз, когда вы используете команду sudo перед другой командой. Следующая команда, которую вы выполнили, будет запущена как обычный пользователь (если вы не добавите команду sudo в начале). Это позволяет вам выполнять административную задачу, а затем сразу же отказываться от привилегий, помогая избежать опасных ситуаций.

sudo также предоставляет другие преимущества, такие как ограничение набора программ, которые может запускать пользователь, журналы команд, выполняемых под sudo, и другие вещи. Для получения дополнительной информации в двух словах о sudo

Когда ты делаешь вс - или судо -i ты делаешь то же самое. Это становится root, но имейте в виду, что вс и судо совершенно разные и предоставляют вам как системному администратору разные инструменты. Лично я НИКОГДА не запускаю su - политика pam запрещает это, позволяя никому не запускать его. В моих системах вы всегда должны использовать sudo из-за дополнительных преимуществ.

Больше информации: Использование и включение sudo