В чем разница между командой 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. Однако я обновлю пост для любопытных людей.