4

У меня проблема:

У меня нет пароля root на моем Mac. У меня просто есть учетная запись администратора, которая может делать вещи, используя sudo . Теперь я хотел добавить своего обычного пользователя в файл /etc/sudoers . Поскольку он не позволял мне писать в этот файл (даже писать с использованием sudo), я сделал это:

sudo chmod u+w /etc/sudoers

Это сработало. Но с тех пор я не могу больше выполнять команду sudo в моей системе. Он жалуется, что /etc/sudoers имеет неправильный режим:

$ sudo touch /etc/sudoers 
sudo: /etc/sudoers is mode 0740, should be 0440
Segmentation fault

Это звучит как плохая шутка, потому что теперь я даже не могу изменить режим обратно на 0440:

$ sudo chmod 0440 /etc/sudoers 
sudo: /etc/sudoers is mode 0740, should be 0440
Segmentation fault

Есть ли способ исправить эту ситуацию? Мне нужно , чтобы моя sudo способности обратно.

2 ответа2

7

Это может быть одним из редких случаев, когда запуск "Восстановить права доступа к диску" из Дисковой утилиты может быть оправдан.

Если это не сработает, следуйте советам @ slhck о загрузке в однопользовательском режиме, чтобы исправить это:

  1. Перезагрузите компьютер, удерживая Command-S, чтобы войти в однопользовательский режим. Обратите внимание, что если вы используете клавиатуру Bluetooth, вам нужно нажать на нее, так как загрузочный сигнал заканчивается. Если вы нажмете его слишком рано, произойдет сброс настроек радиомодуля Bluetooth, и клавиатура потеряет соединение и не сообщит нажатие клавиши. Если вы нажмете его слишком поздно, процесс загрузки перейдет к многопользовательской загрузке.

  2. Следуйте инструкциям на экране, чтобы перемонтировать ваш корневой диск для чтения и записи. Вероятно, вы можете пропустить шаг fsck если вы перезагрузили его изящно. Так что вы можете просто набрать:

    mount -uw /

  3. Исправьте разрешения для /etc/sudoers . Обратите внимание , что вы уже root , когда вы находитесь в однопользовательском режиме, так что вам не нужно sudo этого.

    chmod 0440 /etc/sudoers

  4. Выйдите из однопользовательского режима, перезагрузившись снова, просто набрав:

    reboot

3

Другой подход заключается в использовании Automator.app

Создайте новый рабочий процесс, который содержит что-то вроде следующего:

do shell script "chmod 0440 /etc/sudoers" with administrator privileges

Когда вы запустите его, он запросит ваш пароль и (предположим, что вы администратор) исправит это.

Это также работает, если вы испортили разрешения для родительского каталога (например, создание / что-то отличное от 755).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .