Ответы:
В MacOS X пользователь root по умолчанию отключен, поэтому su
работать не будет. Как уже говорили другие, лучше всего использовать sudo
.
Если вы должны позволить пользователю корня, см TechNote от Apple: Включение и использование «корневого» пользователя в Mac OS X .
sudo su
, то в чем смысл отключения su
?
su
», а в том, чтобы предотвратить вход в систему root . Запретив вход в систему как root
, вы предотвратите множество возможных проблем безопасности. Не позволяя кому - то , кто может sudo
на su
это своего рода глупо. По сути, su
просто изменяет текущий идентификатор пользователя и выполняет команду (оболочку, если не указано). Если идентификатор пользователя уже равен 0 (root), например, когда выполняется с ним sudo
, ему нечего делать, поэтому он просто запускает оболочку. Вы можете получить аналогичный эффект, делая sudo bash
.
У вас есть два варианта. Первое - это использование sudo -s
- это даст вам доступ суперпользователя, но вы все равно останетесь «самим собой» (так сказать), так что такие вещи, как ~
и раньше, будут вашим домашним каталогом. Кроме того, вы можете использовать sudo su
, что дает вам оболочку в качестве фактического пользователя root вашего Mac.
sudo
для запуска команд, требующих повышенных привилегий, а не для переключения на корневую оболочку и работы с этого.
sudo
доводят дух до крайности. Но что угодно: семантика. Не используйте корневые оболочки в OS X.
Например, если вам нужно переместить файлы или использовать git с помощью CLI, тогда в этом случае лучшим решением будет использование sudo -s
команды. После этой команды вам не нужно вводить пароль снова и снова.
Я думаю, что вы не можете сделать это как "обычный" пользователь ...
Если есть другая учетная запись пользователя с правами администратора, вы должны использовать эту
restricted user$ su
Password:(the root password here)
Sorry!
restricted user$ su - (an admin account here)
password:(the admin account password)
$ su - root
Password:(The root password here)
# -> You are root user now
sudo -u
Для запуска как другое использование, используйте sudo -u
.
Например, чтобы запустить текстовый редактор, такой как nano :
sudo -u someuser nano
… И введите пароль пользователя вашего администратора Mac при появлении запроса. На данном этапе вызывается пользователь вашего администратора Mac sudo
, а не someuser
пользователь, поэтому вы не вводите someuser
пароль.
sudo
означает запускать что-либо, используя привилегии суперпользователя.-u
означает «выполнить указанную команду от имени указанного пользователя».someuser
должно быть заменено желаемым именем пользователя.Для имитации начального входа в систему под конкретным пользователем, включая запуск его сценариев запуска, используйте -I
.
sudo -u someuser -i nano
nano
Приложение запускается от имени пользователя, someuser
но только после запуска сценариев запуска для этого пользователя.
Если мы решим не указывать команду или приложение для запуска, мы получим интерактивную оболочку, работающую от имени этого пользователя.
sudo -u someuser -i
sudo su someuser
Другой подход использует su
команду в сочетании с sudo
. Команда su
означает «сменить пользователя».
sudo su someuser
Или, чтобы включить запуск сценариев запуска пользователя, добавьте дефис.
sudo su - someuser
root
пользовательroot
Пользователя в Unix-подобной операционной системы имеют абсолютную власть , чтобы сделать что - нибудь.
Apple решила отключить root
учетную запись в macOS, чтобы избежать уязвимостей в безопасности и защитить вас от попадания в ногу. Apple создала идею учетных записей администраторов , обладающих многими полномочиями, большими полномочиями, чем обычные учетные записи пользователей, но не такими, какими root
обладают абсолютные полномочия . См. Это примечание поддержки Apple для обсуждения.
При необходимости вы можете включить root
пользователя в macOS и затем переключиться на него. Это сильно не рекомендуется. Я бы пошел по этому пути только в качестве отчаянного последнего средства.
Для обсуждения этого в контексте postgres
пользователя, работающего с системой баз данных Postgres в macOS, см. Этот вопрос на дочернем сайте, DBA Stack Exchange .
sudo su
все еще работает, поэтому он не отключен. У него просто нет пароля.