Ответы:
В 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все еще работает, поэтому он не отключен. У него просто нет пароля.