В чем разница между командами 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