В чем разница между командой sudo
и su
? Почему OS X обрабатывает их иначе, чем Linux?
В чем разница между командой sudo
и su
? Почему OS X обрабатывает их иначе, чем Linux?
Ответы:
OS X работает так же, как sudo
и su
в Linux.
sudo
это команда, которая без каких-либо дополнительных параметров запускает команду от имени пользователя root. Например:
% touch /newfile
touch: /newfile: Permission denied
% ls -l /newfile
ls: /newfile: No such file or directory
% sudo touch /newfile
% ls -l /newfile
-rw-r--r-- 1 root wheel 0 Apr 27 11:45 /newfile
su
с другой стороны, переключит текущего пользователя на root (снова без каких-либо дополнительных команд). В приведенном ниже примере мне нужно запустить sudo su
, так как я не знаю пароль root для моей системы:
% whoami
alake
% sudo su
$ whoami
root
Основное различие между sudo
и su
заключается sudo
в том, что команда запускается от имени пользователя root, тогда как она su
делает вас пользователем root. Так же, как и другие утилиты командной строки, есть несколько альтернативных способов использовать оба, sudo
и su
, если вам интересно, вы всегда можете запустить, man <command>
например. man sudo
чтобы получить больше информации.
sudo
может быть как super user and do
. В качестве дополнительного пункта, в OS X, после успешной аутентификации, вы можете использовать sudo без пароля в течение короткого времени (5 минут по умолчанию, если не указано иное sudoers
), после чего вам придется снова вводить пароль.
sudo su -lm _www
позволят вам иметь такую же оболочку, как если бы пользователь веб-сервера (запустив команду как root, как у него нет действительного пароля)
sudo
это довольно надежная утилита, которая охватывает даже базовые функции, что в конечном итоге может сбить с толку или подавить целевую аудиторию, ищущую разницу между sudo
и su
.
sudo -s
запускает shell («делает вас root») и su -c command
запускает команду как root.
sudo
. Кроме того, вы не можете сделать su -c command
по умолчанию на OS X, так как вы не знаете пароль пользователя root. Однако вы можете sudo su
изменить пароль su -c command
. Я чувствую, что на вопрос был дан ответ, и не было необходимости погружаться глубже, чтобы поочередно использовать sudo и su. Однако я обновлю пост для любопытных людей.