Как изменить недопустимый файл / etc / sudoers?

установите ntfs-config

, затем отметьте «Включить поддержку записи для внутренних устройств» chekbox

, если ваш Windows-диск не установлен автоматически, введите терминал

sudo mountall

или перезагрузка

1
задан 10 October 2017 в 13:32

10 ответов

Всегда используйте visudo, чтобы редактировать файл sudoers, не редактируя его непосредственно самостоятельно. Это не позволит вам сохранить его на диск, если он не проверяет.

39
ответ дан 25 May 2018 в 17:24
  • 1
    задним числом 20/20 – code_monk 9 January 2015 в 05:57
  • 2
    Это не предотвратит катастрофу. Достаточно легко оправдать себя. – Joshua 6 October 2015 в 01:02
  • 3
    Может ли visudo использоваться скриптами? Если да, то как? – Lukas 7 July 2016 в 18:01
  • 4
    У меня нет visudo. Поэтому я сделал pkexec vim. Затем он отображает список пользователей и запрашивает пароль. Когда я предоставляю пароль, он выдает ошибку как " Ошибка при выполнении команды в качестве другого пользователя: не разрешено & quot ;. Пожалуйста помоги – Shyamkkhadka 24 May 2018 в 08:48

Введите:

pkexec visudo

Затем измените последнюю строку

#includedir /etc/sudoers

To:

#includedir /etc/sudoers.d

Он должен решить вашу проблему.

19
ответ дан 25 May 2018 в 17:24
  • 1
    Я заметил, что удаление ведущего # из #includedir вызывает синтаксические ошибки, # является частью директивы, по крайней мере, на Ubuntu 12.10. – SAFX 5 April 2013 в 07:46
  • 2
    Это просто избавило меня от головной боли. Благодаря тонну :) – Nitroware 16 July 2017 в 21:29
  • 3
    У меня нет visudo. Поэтому я сделал pkexec vim. Затем он отображает список пользователей и запрашивает пароль. Когда я предоставляю пароль, он выдает ошибку как " Ошибка при выполнении команды в качестве другого пользователя: не разрешено & quot ;. Пожалуйста помоги – Shyamkkhadka 24 May 2018 в 08:48

, если кто-то еще, как я, не установил pkexec или не смог запустить vi, visudo, nano или любой другой редактор для изменения файла sudoers, вы можете быть уверены в этом процессе. Я был сохранен с этим: [ ! d0] перезагрузите клавишу сдвига при загрузке, чтобы иметь возможность для режима восстановления (введите его) введите в командной строке как root (вторая последняя опция в моем меню grub), перезагрузите устройство перезагрузки для rw и примените exec для пользователя, и редактировать файл

mount -n -o remount,rw /
chmod u+x /etc/sudoers
nano /etc/sudoers

исправить эту ошибку и быть счастливой:)

9
ответ дан 25 May 2018 в 17:24
  • 1
    Хотя решение pkexec, предложенное @ eliah-kagan, кажется более простым, оно более универсально. На моей машине оказалось, что нет pkexec, и, конечно, я не смог установить его, потому что sudo apt-get install pkexec как-то не работал. – running.t 15 October 2015 в 17:06

Нет ничего неправильного #include sudoer.d удаление #include sudoer.d не имеет никакого значения.

Но, пожалуйста, убедитесь, что у вас нет синтаксических ошибок. У меня была одна и та же проблема, но я потратил несколько часов на исправление и выяснил, что это синтаксические ошибки.

Например, скажите, что ваше имя пользователя: dolly Я использовал следующее, что неверно

 dolly ALL = (ALL) ALL NO PASSWD: ALL

правильный синтаксис

dolly ALL = (ALL) ALL //give permission to everything, not good

или

dolly ALL=(ALL) NOPASSWD:/usr/bin/thurderbird //good, give specific permission

надеюсь, что это поможет

5
ответ дан 25 May 2018 в 17:24
  • 1
    Лучший подход, чем убедиться, что у вас нет синтаксических ошибок, - всегда использовать visudo при редактировании этих файлов, что гарантирует, что у вас нет синтаксических ошибок для вас, прежде чем он изменяет файл. visudo предназначен не только для редактирования /etc/sudoers - он также будет создавать и редактировать файлы в /etc/sudoers.d. Он также будет работать с любым текстовым редактором, который вы хотите. Подробнее см. В manpage . – Eliah Kagan 3 July 2012 в 05:12
  • 2
    Что касается специального разрешения, обратите внимание, что это полезно только для очень простых команд / приложений, потому что любое достаточно сложное приложение (в том числе thunderbird, которое никогда не должно запускаться как root в любом случае) будет эффективно предоставлять пользователю полный доступ к системе при запуске как корень. Даже кажущаяся простая функциональность открывает дверь для полного доступа root. Например, пользователь, который может запускать программу, которая может сохранить файл в произвольном месте с правами root, может получить полный доступ к корневому каталогу (они могут установить свои собственные /etc/sudoers, или если ограничения синтаксиса предотвращают это, они могут установить свои собственные /etc/crontab). – Eliah Kagan 3 July 2012 в 05:16

Если u перепутал ваш файл sudoers. Вам нужно:

Перезагрузиться в режим восстановления (нажмите escape во время загрузки, выберите режим режима восстановления на экране grub) Выберите «Включить сетевое взаимодействие», (если вы не используете вашу файловую систему как доступную только для чтения, кто знал) Chosee 'Drop to root shell', запустите visudo, исправьте свой файл. Перезагрузитесь с помощью обычной опции grub

source: http://mario.net.au/content/recover-etcsudoers-ubuntu-1204

5
ответ дан 25 May 2018 в 17:24
  • 1
    Привет, удаляет ли iptables, файлы существующей системы? – Shyamkkhadka 24 May 2018 в 10:48

запустить режим восстановления, тогда введите это

chown -R root:root /etc/sudoers.d chmod u=rwx,g=rx,o=rx /etc/sudoers.d/ chmod u=r,g=r,o= /etc/sudoers.d/*

только группа и корень пользователя должны прочитать privelege

3
ответ дан 25 May 2018 в 17:24

Вы также можете редактировать свою загрузочную запись в grub.

Просто перезагрузите компьютер и дождитесь появления grub. Затем нажмите «e» в записи «Ubuntu», чтобы отредактировать ее.

Найдите строку с «linux =» или «kernel =» и просто добавьте «сингл» в конец этой строки.

Затем нажмите F10, чтобы загрузить эту временно измененную загрузочную запись. Это даст вам оболочку (без GUI) с правами root, и вы можете редактировать файл sudoers с помощью s.th. например, nano / etc / sudoers вернуться к предыдущему состоянию.

Затем перезагрузиться и выполнить.

2
ответ дан 25 May 2018 в 17:24

Вы также можете войти в систему как root на консоли tty с Ctrl + Fn (Fn от 1 до 6) и запустить visudo.

2
ответ дан 25 May 2018 в 17:24
pkexec visudo

, а затем верните свои ошибки

2
ответ дан 25 May 2018 в 17:24
  • 1
    не нужно использовать pkexec – Braiam 1 January 2014 в 18:01
  • 2
    @Braiam visudo должен быть запущен как root. Если sudo не работает, иногда выполняется pkexec. Это объясняется моим более ранним ответом ... но это правильный ответ, visudo сам по себе (когда он не запускается как root) не будет работать, и может быть значение в правильных кратких ответах даже когда их рекомендации значительно перекрываются с другими ответами. Конечно, если перейти в режим восстановления, это корневая оболочка, и тогда для команд, подобных pkexec, не нужны ни sudo, ни visudo. Возможно, это то, что вы имеете в виду ... – Eliah Kagan 29 March 2014 в 11:30

Я нашел ошибку. Он находится в двух последних строках файла /etc/sudoers по умолчанию. Удалите следующие записи из конца файла / etc / sudoers с помощью visudo.

#includedir /etc/sudoers.d
0
ответ дан 25 May 2018 в 17:24
  • 1
    Это похоже на связанную, но отличную от этого ситуацию. В этой ситуации проблема заключается не в том, что в /etc/sudoers.d есть плохие файлы (или неправильные разрешения), но /etc/sudoers сам был поврежден. – Eliah Kagan 29 May 2012 в 11:32

Другие вопросы по тегам:

Похожие вопросы: