sudo
작동하지 않습니다. BTRFS로 포맷된 USB 플래시 드라이브에 Arch Linux를 설치했습니다. "sudo"를 실행했을 때의 출력은 다음과 같습니다.
$ sudo
sudo: unable to stat /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
$ ls -l /etc/sudoers
-r--r----- 1 root root 2849 May 18 15:00 /etc/sudoers
$ lsattr /etc/sudoers
--------------- /etc/sudoers
$ ls -ld /etc
drwxr-xr-x 1 root root 2476 May 25 13:45 /etc
$ ls -ld /
drwx------ 1 root root 142 May 25 06:51 /
$ ls -l $(which sudo)
---s--x--x 2 root root 123995 May 25 13:10 /usr/bin/sudo
$ strace -u ross sudo true 2>&1 | egrep '(sudo|set.*[ug].*id)'
execve("/usr/bin/sudo", ["sudo", "true"], [/* 30 vars */]) = 0
read(3, "31799 (sudo) R 31796 31796 31754"..., 1024) = 223
lstat64("/etc/sudo.conf", 0xbfcddeb0) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/sudoers.so", {st_mode=S_IFREG|0755, st_size=235092, ...}) = 0
open("/usr/lib/sudoers.so", O_RDONLY|O_CLOEXEC) = 3
stat64("/usr/lib/sudoers.so", {st_mode=S_IFREG|0755, st_size=235092, ...}) = 0
setresuid32(0, -1, -1) = 0
setresgid32(-1, 0, -1) = 0
setresuid32(-1, 1, -1) = 0
lstat64("/etc/sudoers", 0xbfcddd60) = -1 EACCES (Permission denied)
setresuid32(-1, 0, -1) = 0
write(2, "sudo", 4sudo) = 4
write(2, "unable to stat /etc/sudoers", 27unable to stat /etc/sudoers) = 27
setresuid32(-1, 1, -1) = 0
setresgid32(-1, -1, -1) = 0
setresuid32(-1, 0, -1) = 0
setresuid32(-1, 0, -1) = 0
setresgid32(-1, 1000, -1) = 0
write(2, "sudo", 4sudo) = 4
write(2, "no valid sudoers sources found, "..., 40no valid sudoers sources found, quitting) = 40
write(2, "sudo", 4sudo) = 4
$ ltrace -u ross sudo true 2>&1 | egrep '(sudo|stat|set.*[ug].*id)'
bindtextdomain("sudo", "/usr/share/locale") = "/usr/share/locale"
textdomain("sudo") = "sudo"
fopen("/proc/31813/stat", "r") = 0x9e51d40
__xstat(3, "/dev/console", 0xbffd6074) = 0
__xstat(3, "/dev/wscons", 0xbffd6074) = -1
__xstat(3, "/dev/pts/4", 0xbffd6074) = 0
__lxstat64(3, "/etc/sudo.conf", 0xbffd9040) = -1
strlen("sudo") = 4
memcpy(0x09e51e71, "sudo", 4) = 0x09e51e71
__xstat64(3, "/usr/lib/sudoers.so", 0xbffd810c) = 0
dlopen("/usr/lib/sudoers.so", 257 <unfinished ...>
dlsym(0x09e51ef8, "sudoers_policy") = 0xb75af520
__xstat64(3, "/usr/lib/sudoers.so", 0xbffd810c) = 0
dlopen("/usr/lib/sudoers.so", 257) = 0x09e51ef8
dlsym(0x09e51ef8, "sudoers_io") = 0xb75af560
fputs("sudo", 0xb7760920sudo) = 1
fputs("unable to stat /etc/sudoers", 0xb7760920unable to stat /etc/sudoers) = 1
fputs("sudo", 0xb7760920sudo) = 1
fputs("no valid sudoers sources found, "..., 0xb7760920no valid sudoers sources found, quitting) = 1
fputs("sudo", 0xb7760920sudo) = 1
+++ exited (status 1) +++
답변1
알겠습니다. /에 액세스할 수 없는 것 같습니다(CD를 사용할 수 없음).
시도해 볼 수 있어?chmod 755 /
답변2
실행 파일은 setuid이어야 하며 루트가 소유해야 합니다.
$ ls -la /usr/bin/sudo
---s--x--x 2 root root 173154 Oct 19 2010 /usr/bin/sudo
바이너리에 기능 중 하나가 누락되었습니다. 다음을 수행하십시오(루트로):
# chown root /usr/bin/sudo
# chmod u+xs /usr/bin/sudo
답변3
어떻게 설치하셨나요? 설치하려면 USB 플래시 드라이브에 파티션을 마운트하려면 루트여야 합니다. 이유는 모르겠지만 그것은 나에게만 효과가 있습니다. 그런 다음 파티션을 사용자로 마운트하고 문제 없이 rsync를 통해 업데이트할 수 있습니다(그러나 이것을 광범위하게 테스트하지는 않았습니다).
사용자의 장착 시스템에 문제가 있을 가능성이 높습니다.
답변4
이 순서대로:
~# chmod 440 /etc/sudoers
~# chmod -R 755 /root
~# chmod -R 755 /etc
~# chmod 755 /etc/phpmyadmin/config.inc.php