sudo
funktioniert nicht. Ich habe Arch Linux auf einem mit BTRFS formatierten USB-Stick installiert. Hier ist die Ausgabe, wenn ich 'sudo' starte:
$ 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) +++
arch-linux
sudo
Chipuba
quelle
quelle
ls -ld /etc
?ls -l $(which sudo)
, das ist die Quelle des ProblemsAntworten:
Ok, du scheinst keinen Zugang zu / zu haben (keine CD),
Kannst du es versuchen
chmod 755 /
quelle
chown root ./suid_test
undchmod 4755 ./suid_test
), Quellcode: pastebin.mozilla.org/1650215Die ausführbare Datei muss setuid sein und Eigentum von root:
In Ihrer Binärdatei fehlt eines dieser Merkmale. Tun Sie dies (als root):
quelle
setresuid32(0, -1, -1)
undsetresgid32(-1, 0, -1)
beide Zeit 0 ist, was anzeigt, dass das Programm die richtigen Berechtigungen hatwie hast du es installiert Sie müssen die Partition auf dem USB-Stick als Root für die Installation bereitstellen. Ich weiß nicht warum, aber es hat bei mir nur so funktioniert. Danach können Sie die Partition als Benutzer mounten und über rsync aktualisieren. Es sollte kein Problem auftreten (ich habe dies jedoch nicht ausführlich getestet).
Es ist höchstwahrscheinlich etwas im Benutzer-Mount-System defekt.
quelle
Folge diesen Schritten:
quelle
/root
und nicht blind zerschlagen/etc
. Es gibt einen Grund, warum diese Dateien mit unterschiedlichen Berechtigungen installiert werden. Der Rat, ausführbare Berechtigungen für alle diese Dateien blind festzulegen, ist falsch. Nur wenige Dateien in diesen Bäumen erfordern dies. Und der Rat zu geben Welt-Lese & -execute Berechtigungen für alles/root
und/etc
ist erstaunlich schlecht; Sie können das root-Passwort auch per E-Mail an jeden Benutzer senden, der sich auf diesem System anmelden kann, wenn Sie gerade dabei sind.