Изменено pam.d - невозможно su и sudo [duplicate]

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

Вот что происходит:

$ sudo visudo >>> /etc/sudoers: syntax error near line 28 <<< sudo: parse error in /etc/sudoers near line 28 sudo: no valid sudoers sources found, quitting
213
задан 10 October 2017 в 13:32

92 ответа

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

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

source: - http://mario.net.au/content/ восстановить-etcsudoers-убунту-1204

5
ответ дан 5 August 2018 в 02:13

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

42
ответ дан 5 August 2018 в 02:13

Нет ничего плохого #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
ответ дан 5 August 2018 в 02:13

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

2
ответ дан 6 August 2018 в 18:53

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

#includedir /etc/sudoers.d
0
ответ дан 6 August 2018 в 18:53
pkexec visudo

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

2
ответ дан 6 August 2018 в 18:53

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

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
ответ дан 6 August 2018 в 18:53

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

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

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

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

Затем перезагрузитесь и сделайте это.

2
ответ дан 6 August 2018 в 18:53

, если кто-то еще, как я, не установил pkexec или не смог запустить vi, visudo, nano или любой другой редактор для изменения файла sudoers, вы можете быть уверены в этом процессе. Я был сохранен с этим:

  • reboot
  • удерживать клавишу Shift во время загрузки, чтобы иметь опцию для режима восстановления (введите его)
  • введите командную строку как root (вторая последняя опция в моем меню grub)
  • загрузочное устройство remount для rw и применить exec для пользователя и отредактировать файл
    mount -n -o remount,rw /
    chmod u+x /etc/sudoers
    nano /etc/sudoers
    

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

19
ответ дан 6 August 2018 в 18:53

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

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

source: - http://mario.net.au/content/ восстановить-etcsudoers-убунту-1204

5
ответ дан 6 August 2018 в 18:53

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

42
ответ дан 6 August 2018 в 18:53

Нет ничего плохого #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
ответ дан 6 August 2018 в 18:53

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

2
ответ дан 8 August 2018 в 23:15

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

#includedir /etc/sudoers.d
0
ответ дан 8 August 2018 в 23:15
pkexec visudo

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

2
ответ дан 8 August 2018 в 23:15

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

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
ответ дан 8 August 2018 в 23:15

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

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

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

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

Затем перезагрузитесь и сделайте это.

2
ответ дан 8 August 2018 в 23:15

, если кто-то еще, как я, не установил pkexec или не смог запустить vi, visudo, nano или любой другой редактор для изменения файла sudoers, вы можете быть уверены в этом процессе. Я был сохранен с этим:

  • reboot
  • удерживать клавишу Shift во время загрузки, чтобы иметь опцию для режима восстановления (введите его)
  • введите командную строку как root (вторая последняя опция в моем меню grub)
  • загрузочное устройство remount для rw и применить exec для пользователя и отредактировать файл
    mount -n -o remount,rw /
    chmod u+x /etc/sudoers
    nano /etc/sudoers
    

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

19
ответ дан 8 August 2018 в 23:15

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

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

source: - http://mario.net.au/content/ восстановить-etcsudoers-убунту-1204

5
ответ дан 8 August 2018 в 23:15

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

42
ответ дан 8 August 2018 в 23:15

Нет ничего плохого #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
ответ дан 8 August 2018 в 23:15

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

2
ответ дан 14 August 2018 в 13:15

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

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

В Ubuntu 16.04, работающем на VirtualBox (не должно меняться), приведенные выше методы не работали для меня (недопустимая строка в конце файла). Что было сделано:

  1. Перезапустить VirtualBox
  2. Пусть он нормально загружается, пока он не попросит ваше имя пользователя и amp; пароль в консоли
  3. Вход в систему с вашим именем пользователя
  4. Затем, когда вы окажетесь в консоли (если ваш блок не загружается в графический интерфейс), просто дайте команду su -, а затем введите свой собственный пароль пользователя.
  5. Теперь он должен появиться в приглашении root@ubuntu-xenial:~#, если /etc/sudoers не слишком сломан или пуст. Не уверен, что произойдет в этом случае.
  6. Затем вы можете просто запустить visudo и исправить файл.
  7. Затем Ctrl + X и предложит сохранить модифицированный буфер. Нажмите Y и Enter
  8. Перезагрузите поле, и он должен работать.

Если ваш /etc/sudoers пуст или что-то отсутствует, вы можете отредактируйте его, затем вот содержимое моего:

Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

root ALL=(ALL:ALL) ALL

%admin ALL=(ALL) ALL

%sudo ALL=(ALL:ALL) ALL
0
ответ дан 14 August 2018 в 13:15
pkexec visudo

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

2
ответ дан 14 August 2018 в 13:15
  • 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

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

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
ответ дан 14 August 2018 в 13:15

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

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

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

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

Затем перезагрузитесь и сделайте это.

2
ответ дан 14 August 2018 в 13:15

, если кто-то еще, как я, не установил pkexec или не смог запустить vi, visudo, nano или любой другой редактор для изменения файла sudoers, вы можете быть уверены в этом процессе. Я был сохранен с этим:

  • reboot
  • удерживать клавишу Shift во время загрузки, чтобы иметь опцию для режима восстановления (введите его)
  • введите командную строку как root (вторая последняя опция в моем меню grub)
  • загрузочное устройство remount для rw и применить exec для пользователя и отредактировать файл
    mount -n -o remount,rw /
    chmod u+x /etc/sudoers
    nano /etc/sudoers
    

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

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

Если вы испортили свой файл sudoers, вам нужно будет:

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

source: - http://mario.net. Au / содержание / восстановить-etcsudoers-убунту-1204

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

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

42
ответ дан 14 August 2018 в 13:15
  • 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

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

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