Sudo зависает после ввода пароля - выходят с/dev/null

Ubuntu 16.04. После проигрывания с чем-то новым (napp-это, ZFS gui), у меня есть проблема, где sudo зависает после подсказки пароля. Соответствующий strace для sudo следует...

open("/dev/null", O_WRONLY|O_CREAT|O_APPEND, 0666) = 8
lseek(8, 0, SEEK_END)                   = 0
umask(022)                              = 077
fcntl(8, F_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_CUR, l_start=0, l_len=0}

Если я, комната/dev/null и воссоздает его (правильно с mknod и затем верными полномочиями) sudo, хорошо работаю. Однако тот единственные хранения до перезагрузки, в которой время sudo зависает снова.

Править... Я должен добавить, что сразу на перезагрузке полномочия на/dev/null кажутся корректными. ls-l/dev/null приводит к следующему (то же как после удаления и воссоздания его)

crw-rw-rw- 1 root root 1, 3 Feb  8 20:58 /dev/null
3
задан 9 February 2017 в 07:56

2 ответа

Вывод sudo-l указал, что вход sudo направлялся к/dev/null.

исследование/etc/sudoers показало следующие строки.

## supress Console messages from sudo
Defaults logfile=/dev/null
Defaults !syslog
##

Не уверенный то, когда (или почему) они были добавлены к sudoers файлу, но комментированию их, решило проблему.

3
ответ дан 1 December 2019 в 16:20

Я пишу обработчик системных журналов и уничтожаю типичного демона системного журнала. По-видимому, по крайней мере, на основе этого strace, мое предположение является функциями glibc syslog(), кажется, зависает на sendto() системный вызов.

я просто всегда ошеломляюсь, когда что-то это ядро к работе над системой делает что-то вроде этого. Возможно, это дизайном? Просто походит на плохую идею.

read(9, "", 4096)                       = 0
close(9)                                = 0
munmap(0x7f461335d000, 4096)            = 0
read(8, "", 4096)                       = 0
close(8)                                = 0
munmap(0x7f461335e000, 4096)            = 0
socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 8
connect(8, {sa_family=AF_LOCAL, sun_path="/dev/log"}, 110) = 0
sendto(8, "<85>Sep 11 16:53:56 sudo:     ro"..., 92, MSG_NOSIGNAL, NULL, 0

Так - если у Вас есть эта проблема, проверьте своего демона системного журнала и посмотрите, работает ли она, и /dev/log существует.

0
ответ дан 1 December 2019 в 16:20

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

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