Как уже отмечали пользователи, использование chmod 0440 / etc / sudoers, когда файл sudoers.d / README содержит неправильный chmod, НЕ РАБОТАЕТ.
kentfx
Вы предлагаете, что, когда проблема в разрешениях /etc/sudoers.d/README, что ошибка все еще может сказать sudo: /etc/sudoers is mode 0777, should be 0440?
Когда появится экран выбора загрузки GRUB, выберите Recovery Mode. (Если он не появляется, нажмите Shiftклавишу, когда вы увидите загрузчик GRUB внизу).
Должен появиться черный терминал, в этот момент вы можете запустить эту команду (у вас должны быть привилегии root):
chmod 0440 /etc/sudoers
альтернативно
Вам нужно будет установить Ubuntu на LiveCD, загрузиться с LiveCD, смонтировать раздел Ubuntu на жесткий диск (откройте файловый браузер, например, Nautilus, и выберите раздел Ubuntu; или нажмите «Места» -> «Раздел xxGB / раздел Ubuntu»). «).
Затем откройте терминал в сеансе LiveCD и введите эти две команды:
cd /media/<name of permanent ubuntu partition>/etc
sudo chmod 0440 sudoers
Лишние проблемы
Если есть какие-либо ошибки (как опубликовано ниже), следуйте инструкциям на экране и исправьте каждый файл, используя один из двух вышеуказанных шагов:
sudo apt-get update sudo: /etc/sudoers.d/README в режиме 0777, должно быть 0440
Обе эти команды должны использоваться соответствующим образом с описанными выше шагами. Они изменят права доступа к файлу, связанные с этим файлом. 0440 даст владельцу (root) и группе разрешения на чтение, а 0700 предоставит владельцу (root), права чтения, записи и выполнения.
Я могу использовать команду sudo, но ограниченно. sudo apt-get update sudo: /etc/sudoers.d/README is mode 0777, should be 0440 sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700 [sudo] password for
user20698
@ Алекс: ESC для GRUB наследие, верно? Shift должен быть нажат для GRUB2.
Лекенштейн
@ user20698: вам не нужно sudoпервое, второе должно быть сделано с Live CD.
Лекенштейн
Если sudoers равно 0777, не должен ли пользователь работать chmod 0440 /etc/sudoersбез sudo, так как sudoers доступен для записи всем?
Сеппо Эрвиаля
2
@Seppo: нет, только владелец файла может изменять права доступа к файлу.
Лекенштейн
16
sudoв этой ситуации не работает, но pkexec(интерфейс командной строки для PolicyKit ) по-прежнему работает, так что вы можете исправить это с помощью одной команды. Перезагрузка не требуется.
pkexec chmod 0440 /etc/sudoers
Это предполагает, что PolicyKit установлен. Если это настольная система (а не сервер без графического интерфейса), это так.
Почему вы используете chmodодни файлы, 440а другие - 0440? Разве вы не должны использовать 0440равномерно? И почему вы меняете права доступа, /etc/sudoers.d/READMEкогда используете pkexecспособ, а не иначе? А как насчет других возможных файлов в /etc/sudoers.d?
Элия Каган
1
Что вы сделали, чтобы получить эти ошибки?
Если вы сделали: sudo chmod -R 777 /etcвам нужен Live CD, чтобы это исправить.
Загрузитесь с Live CD и выберите «Попробуйте»
Смонтируйте свой раздел Ubuntu (или раздел, содержащий, /etcесли вы поместили /etcв отдельный раздел). Это можно сделать с помощью файлового браузера, такого как Nautilus или меню Places.
Определите папку вашего раздела Ubuntu, вы можете просмотреть содержимое смонтированных разделов с помощью ls -l /media. Возможно, это имя ubuntuили disk. На следующих шагах я приду ubuntu.
В Терминале установите ограничения по умолчанию:
sudo find /media/ubuntu/etc -type f -exec chmod g-wx,o-rwx {} \;
sudo find /media/ubuntu/etc -type d -exec chmod g-w,o-rwx {} \;
Затем используйте Live CD в качестве контрольной точки для восстановления прав доступа к файлам. Приведенная ниже команда изменит права доступа к файлам для /etc/media/ubuntuиспользования /etcпапки на Live CD в качестве контрольной точки. Это изменит только разрешения для файлов ( -type f) и каталогов ( -type d) в одной файловой системе ( -xdev). Любые ошибки записываются в « ~/errors.logОшибки», например, «файл не найден» означает, что файл в системе установлен, но не найден на Live CD. Команда из шага 5 должна установить правильные разрешения для нее, но для достижения наилучших результатов лучше переустановить пакеты.
cd /media/ubuntu && sudo find etc -xdev \( -type f -o -type d \) -f -exec chmod --reference=/{} {} \; 2>~/errors.log
Теперь ~/errors.logгде-нибудь в безопасности (например, http://paste.ubuntu.com/ ), так что вы можете добавить его в качестве комментария к этому ответу, если у вас возникнут проблемы с приложениями.
В Ubuntu вы можете сначала ударить Ctrl+ Alt+, Tкоторый открывает терминал. После этого вы можете скопировать и вставить команду ниже с Ctrl+ Cи вставить в терминал с Ctrl+ Shift+ V.
Для меня, я должен был добавить еще один шаг к pkexecпредложениям, согласно этому , мне повезло, что у меня случилось 2 сеанса SSH, когда я сделал глупую ошибку:
Откройте 2 терминала
В терминале 2 запустите, echo $$чтобы получить PID
/etc/sudoers.d/README
, что ошибка все еще может сказатьsudo: /etc/sudoers is mode 0777, should be 0440
?Ответы:
Первый вариант
После этого поста :
Должен появиться черный терминал, в этот момент вы можете запустить эту команду (у вас должны быть привилегии root):
альтернативно
Вам нужно будет установить Ubuntu на LiveCD, загрузиться с LiveCD, смонтировать раздел Ubuntu на жесткий диск (откройте файловый браузер, например, Nautilus, и выберите раздел Ubuntu; или нажмите «Места» -> «Раздел xxGB / раздел Ubuntu»). «).
Затем откройте терминал в сеансе LiveCD и введите эти две команды:
Лишние проблемы
Если есть какие-либо ошибки (как опубликовано ниже), следуйте инструкциям на экране и исправьте каждый файл, используя один из двух вышеуказанных шагов:
Исправить, выполнив с помощью:
Обе эти команды должны использоваться соответствующим образом с описанными выше шагами. Они изменят права доступа к файлу, связанные с этим файлом. 0440 даст владельцу (root) и группе разрешения на чтение, а 0700 предоставит владельцу (root), права чтения, записи и выполнения.
источник
sudo apt-get update sudo: /etc/sudoers.d/README is mode 0777, should be 0440 sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700 [sudo] password for
sudo
первое, второе должно быть сделано с Live CD.chmod 0440 /etc/sudoers
без sudo, так как sudoers доступен для записи всем?sudo
в этой ситуации не работает, ноpkexec
(интерфейс командной строки для PolicyKit ) по-прежнему работает, так что вы можете исправить это с помощью одной команды. Перезагрузка не требуется.Это предполагает, что PolicyKit установлен. Если это настольная система (а не сервер без графического интерфейса), это так.
источник
Загрузитесь в режиме восстановления, выберите корневую оболочку и:
Или, если вы не хотите перезапускать, вы можете использовать эту альтернативу:
это изменит разрешение. Попробуйте, это будет работать.
источник
chmod
одни файлы,440
а другие -0440
? Разве вы не должны использовать0440
равномерно? И почему вы меняете права доступа,/etc/sudoers.d/README
когда используетеpkexec
способ, а не иначе? А как насчет других возможных файлов в/etc/sudoers.d
?Что вы сделали, чтобы получить эти ошибки?
Если вы сделали:
sudo chmod -R 777 /etc
вам нужен Live CD, чтобы это исправить./etc
если вы поместили/etc
в отдельный раздел). Это можно сделать с помощью файлового браузера, такого как Nautilus или меню Places.ls -l /media
. Возможно, это имяubuntu
илиdisk
. На следующих шагах я придуubuntu
.В Терминале установите ограничения по умолчанию:
Затем используйте Live CD в качестве контрольной точки для восстановления прав доступа к файлам. Приведенная ниже команда изменит права доступа к файлам для
/etc/media/ubuntu
использования/etc
папки на Live CD в качестве контрольной точки. Это изменит только разрешения для файлов (-type f
) и каталогов (-type d
) в одной файловой системе (-xdev
). Любые ошибки записываются в «~/errors.log
Ошибки», например, «файл не найден» означает, что файл в системе установлен, но не найден на Live CD. Команда из шага 5 должна установить правильные разрешения для нее, но для достижения наилучших результатов лучше переустановить пакеты.~/errors.log
где-нибудь в безопасности (например, http://paste.ubuntu.com/ ), так что вы можете добавить его в качестве комментария к этому ответу, если у вас возникнут проблемы с приложениями.источник
В Ubuntu вы можете сначала ударить Ctrl+ Alt+, Tкоторый открывает терминал. После этого вы можете скопировать и вставить команду ниже с Ctrl+ Cи вставить в терминал с Ctrl+ Shift+ V.
источник
Для меня, я должен был добавить еще один шаг к
pkexec
предложениям, согласно этому , мне повезло, что у меня случилось 2 сеанса SSH, когда я сделал глупую ошибку:echo $$
чтобы получить PIDpkttyagent --process PID_FROM_STEP2
в терминале 2pkexec chmod 0440 /etc/sudoers
pkexec chown root:root /etc/sudoers
источник