Я случайно удалил файл sudoers в Mac OS X; есть ли способ его восстановить?

Я случайно удалил файл sudoers в Mac OS X; есть ли способ его восстановить?
И как только вы его восстановите, как вы установите его в режиме 0440?

Я полагаю, что нет, но я отчаянно хочу вернуть его!

Я предполагаю, что вы пытаетесь запустить команду sudo и это дает вам сообщение о том, что у /etc/sudoers нет правильных разрешений?

Если вы ранее предоставили статус Admin своей учетной записи, вы сможете исправить разрешения через графический интерфейс. Откройте папку «/ etc» в Finder («Перейти» -> «Перейти в папку …»), затем откройте свойства файла sudoers . Нажмите блокировку. Предоставьте группе read/write группы admin , system пользователя, no access read-only , группы wheel read-only и everyone группы no access . Теперь разрешения должны быть правильными.

Если вы не попали в группу admin , вам необходимо перезагрузить OSX в однопользовательском режиме и выполнить команду chmod 0440 /etc/sudoers .

Если я правильно понимаю вашу проблему, то в настоящее время у вас нет sudoers, и вы пытаетесь сделать sudo и не работать. В этом случае, чтобы получить работу sudo, вы можете сделать следующее:

  1. Создайте файл sudoers в своей домашней папке. Вы можете найти контент по умолчанию здесь
  2. Откройте папку «/ etc» в Finder («Перейти» -> «Перейти в папку …»).
  3. Теперь скопируйте файл sudoers из папки домашней папки в папку / etc через Finder.
  4. Подсказка придет с запросом пароля.
  5. Введите правильный пароль, и все готово.

Для проверки sudo работает отлично cd /etc и sudo vim sudoers . Вы можете просмотреть файл sudoers через редактор vim. (Фактически любая операция чтения / записи в / etc потребует команды sudo)

Я знаю, что это немного удивительно, что даже после того, как у меня нет sudoers, через пользовательский интерфейс мы можем делать операции в / etc. Но это сработало для меня 🙂

Включите пользователя root, используя системные настройки, а затем создайте / etc / sudoers во время входа в систему как пользователь root.

 touch /etc/sudoers; chmod 440 /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 

Если вы не администратор, вы можете загружать систему в однопользовательский режим (если вы не знаете, как это сделать, просто выполните ее) и выполните команду

 mount -uw / 

и вы будете в корневом терминале.