Ответы:
Если я правильно понимаю вашу проблему, то в настоящее время у вас нет sudoers, и вы пытаетесь сделать sudo, и это не работает. В этом случае, чтобы заставить sudo работать, вы можете сделать следующее:
Для проверки sudo работает нормально cd /etc
и sudo vim sudoers
. Вы должны иметь возможность просматривать файл sudoers через редактор vim. Любая операция чтения / записи в / etc требует команды sudo.
Я знаю, что немного удивительно, что даже после отсутствия sudoers через пользовательский интерфейс мы можем выполнять операции в / etc. Но у меня это сработало :)
Я предполагаю, что вы пытаетесь запустить sudo
команду, и она дает вам ошибку, /etc/sudoers
которая не имеет правильных разрешений?
Если вы ранее предоставили Admin
статус своей учетной записи , вы сможете исправить разрешения через графический интерфейс. Откройте папку «/ etc» в Finder («Перейти» -> «Перейти к папке ...»), затем откройте sudoers
свойства файла. Нажмите на замок. Предоставьте admin
группу read/write
, system
пользователя read-only
, wheel
группу read-only
и everyone
группуno access
. Разрешения теперь должны быть правильными.
Если вы не вошли в admin
группу, вам нужно перезагрузить OSX в однопользовательском режиме и выполнить команду chmod 0440 /etc/sudoers
.
Включите пользователя root, используя системные настройки, а затем создайте / etc / sudoers, войдя в систему как пользователь root, используя
touch /etc/sudoers; chmod 440 /etc/sudoers
Примечание. Поскольку в этом случае команда запускается от имени пользователя root и идентификатор группы /etc
равен 0, по умолчанию она должна принадлежать правильному пользователю и группе после повторного создания, но если по какой-то причине это не так, выполните команду
chown root:wheel /etc/sudoers
После того, как вы создали, /etc/sudoers
используйте Visudo, чтобы вставить этот код в него:
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
# Failure to use 'visudo' may result in syntax or file permission errors
# that prevent sudo from running.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification
Defaults env_reset
Defaults env_keep += "BLOCKSIZE"
Defaults env_keep += "COLORFGBG COLORTERM"
Defaults env_keep += "__CF_USER_TEXT_ENCODING"
Defaults env_keep += "CHARSET LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE"
Defaults env_keep += "LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME"
Defaults env_keep += "LINES COLUMNS"
Defaults env_keep += "LSCOLORS"
Defaults env_keep += "SSH_AUTH_SOCK"
Defaults env_keep += "TZ"
Defaults env_keep += "DISPLAY XAUTHORIZATION XAUTHORITY"
Defaults env_keep += "EDITOR VISUAL"
# Runas alias specification
# User privilege specification
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL
# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
ALL ALL=(ALL) NOPASSWD:/opt/dplat/bin/Revision/CMUpdatePackage/Installer.app/Contents/MacOS/I nstaller
ALL ALL=(ALL) NOPASSWD:/opt/dplat/bin/UpdatePackageInstaller.app/Contents/MacOS/UpdatePackage Installer
Если вы не являетесь администратором, вы можете вместо этого загрузить систему в однопользовательском режиме (это можно сделать, выключив устройство и удерживая команду + s при запуске) и запустив:
mount -uw /
и вы будете в терминале с привилегиями root, и вы сможете запустить вышеуказанные команды для настройки /etc/sudoers
Я создал файл / tmp / sudoers с содержимым в ответе Джона Милитера и выполнил вариант команды tmm1.
osascript -e 'do shell script "cat /tmp/sudoers > /etc/sudoers; chown root:wheel /etc/sudoers" with administrator privileges'
Ницца!!!
Ответы выше охватывают содержимое файла по умолчанию, как переместить его на место с помощью Finder и изменить его разрешения. Однако sudo будет жаловаться, если владельцем файла sudoers не является root. Единственный способ сменить владельца без sudo - через эту команду:
osascript -e 'do shell script "chown root:wheel /etc/sudoers" with administrator privileges'