(resolu) SUDO : can't open /etc/sudoers: Permission denied

[quote]seg_not_present:0, useable:1}) = 0
munmap(0xb7ee3000, 51135) = 0
geteuid32() = 1000
write(2, "sudo: ", 6sudo: ) = 6
write(2, “must be setuid root”, 19must be setuid root) = 19
write(2, “\n”, 1
) = 1
exit_group(1) = ?
Process 3218 detached
[/quote]

?? Visiblement, il estime que sudo n’est pas en suid root. Re vérifie ce point.
Tu aurais du avoir ce message d’erreur d’ailleurs.

ls -l /usr/bin/sudo
-rwsr-xr-x 2 root root 91700 2006-04-15 09:39 /usr/bin/sudo
si j’ai bien compris le suid root correspond au s dans les droits du propriétaire ?
dans les deux strace on a le même message ?

bizarre je tape u+x et le résultat est s, j’aurait pas un problème avec chmod ??

$ su -c "chmod u+rws /usr/bin/sudo"
Password:
bv-pc@bv~ : $ ls -l /usr/bin/sudo
-rwSr-xr-x 2 root root 91700 2006-04-15 09:39 /usr/bin/sudo
bv-pc@bv~ : $ su -c "chmod u+s /usr/bin/sudo"
Password:
bv-pc@bv~ : $ ls -l /usr/bin/sudo
-rwSr-xr-x 2 root root 91700 2006-04-15 09:39 /usr/bin/sudo
bv-pc@bv~ : $ su -c "chmod u+x /usr/bin/sudo"
Password:
bv-pc@bv~ : $ ls -l /usr/bin/sudo
-rwsr-xr-x 2 root root 91700 2006-04-15 09:39 /usr/bin/sudo

[quote=“Bernard Victor”]ls -l /usr/bin/sudo
-rwsr-xr-x 2 root root 91700 2006-04-15 09:39 /usr/bin/sudo
si j’ai bien compris le suid root correspond au s dans les droits du propriétaire ?
dans les deux strace on a le même message ?[/quote]
J’ai pensé que tu t’es trompé dans le premier, il se termine avec une erreur.

je ne pige pas ce que tu veux dire. où est l’erreur ?

Tes 2 strace se terminent par

[quote]write(2, "sudo: ", 6sudo: ) = 6
write(2, “must be setuid root”, 19must be setuid root) = 19
write(2, “\n”, 1
) = 1
exit_group(1) = ?[/quote]
ce qui correspond à l’écriture sur stderr du message

Le message est apparu à l’écran (en rouge ci dessus) et ça a terminé en erreur dans les deux sorties que tu as données.

je ne savais pas que c’était un message d’erreur. ce message est signalé dans les 2 cas. alors pourquoi l’un marche et pourquoi pas l’autre non. Pour moi c’est incompréhensible.
les paquets sont les mêmes sur les 2 systèmes, j’ai du faire une erreur de manip sur l’un qui me sert de test avant de l’implanter sur l’autre.
mais laquelle, il n’y a pas de retour d’erreur significatif ou alors où ?

Recommence avec strace mais en rajoutant une option -f:
$ strace -f sudo …

Mieux fais
$ strace -ff -o /tmp/trace sudo …

et regarde les fichiers /tmp/trace.??? produits (la fin)

Si il n’y a pas de changement (ce qui serait étonnant) essaye «-F»

essaye de modifier ton /etc/sudoers avec nano en root après avoir désinstaller et purger sudo : en grosapt-get remove --purge sudoapt-get autoremove sudoensuite un petit ctrl-alt-F1 pour attérrir dans un ttysu -c "nano /etc/sudoers"là tu regarde si tu peux le modifier et après tu réinstalle sudo.

P-S: je n’ai pas bien compris si tu voulais le modifier ou si tu voulais juste enlever les droits d’accès

Il serait quand même intéressant de voir d’où ça vient…

voici le contenu de /tmp/trace par commnde suivante

% strace -ff -o /tmp/trace sudo mount
execve("/usr/bin/sudo", [“sudo”, “mount”], [/* 32 vars */]) = 0
uname({sys=“Linux”, node=“bv-pc”, …}) = 0
brk(0) = 0x8062000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9a000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=56485, …}) = 0
mmap2(NULL, 56485, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f8c000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libpam.so.0", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\23”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=29700, …}) = 0
mmap2(NULL, 32656, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f84000
mmap2(0xb7f8b000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6) = 0xb7f8b000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libdl.so.2", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\f\0”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9592, …}) = 0
mmap2(NULL, 12404, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f80000
mmap2(0xb7f82000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7f82000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240O\1”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1241392, …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f7f000
mmap2(NULL, 1247388, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e4e000
mmap2(0xb7f75000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x127) = 0xb7f75000
mmap2(0xb7f7c000, 10396, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f7c000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e4d000
mprotect(0xb7f75000, 20480, PROT_READ) = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e4d6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7f8c000, 56485) = 0
geteuid32() = 1000
write(2, "sudo: ", 6) = 6
write(2, “must be setuid root”, 19) = 19
write(2, “\n”, 1) = 1
exit_group(1) = ?

je viens d’essayer la même commande sur le système ou sudo marche : le contenu est le même

Tu dois avoir plusieurs fichiers /tmp/trace non? car les premiers strace montraient que mount sudo lançait des processus qu’il fallait tracer aussi (ce que fait strace -ff).

Bon, j’ai fini par faire un test. sudo ne peut être tracé comme ça, tu vas faire la commande suivante (en root)

strace -u ton_login_a_toi -ff -o /tmp/trace sudo whoami

Ça te donnera une trace correcte cette fois.

Une idée quand même, quels sont les droits de /etc/sudoers?

Si le fichiuer est lisible par quelqu’un d’autre que root, ça coincera. Les droits sont
-r–r----- 1 root root 327 2007-07-20 15:16 /etc/sudoers

voici le retour de la commande en root sur le système où sudo ne marche pas
strace -u bv -ff -o /tmp/trace sudo whoami

execve("/usr/bin/sudo", [“sudo”, “whoami”], [/* 34 vars */]) = 0
uname({sys=“Linux”, node=“bv-pc”, …}) = 0
brk(0) = 0x8062000
fcntl64(0, F_GETFD) = 0
fcntl64(1, F_GETFD) = 0
fcntl64(2, F_GETFD) = 0
access("/etc/suid-debug", F_OK) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f5a000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=56485, …}) = 0
mmap2(NULL, 56485, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f4c000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libpam.so.0", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\23”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=29700, …}) = 0
mmap2(NULL, 32656, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f44000
mmap2(0xb7f4b000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6) = 0xb7f4b000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libdl.so.2", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\f\0”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9592, …}) = 0
mmap2(NULL, 12404, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f40000
mmap2(0xb7f42000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7f42000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240O\1”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1241392, …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f3f000
mmap2(NULL, 1247388, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e0e000
mmap2(0xb7f35000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x127) = 0xb7f35000
mmap2(0xb7f3c000, 10396, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f3c000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e0d000
mprotect(0xb7f35000, 20480, PROT_READ) = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e0d6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7f4c000, 56485) = 0
geteuid32() = 0
rt_sigaction(SIGINT, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTSTP, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGCHLD, {0x804c7e0, [], SA_RESTART}, {SIG_DFL}, 8) = 0
getrlimit(RLIMIT_CORE, {rlim_cur=0, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_CORE, {rlim_cur=0, rlim_max=RLIM_INFINITY}) = 0
getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0
close(3) = -1 EBADF (Bad file descriptor)

(j’ai écourté
close(1023) = -1 EBADF (Bad file descriptor)
brk(0) = 0x8062000
brk(0x8083000) = 0x8083000
open("/etc/nsswitch.conf", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=513, …}) = 0
mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7ded000
read(3, “# /etc/nsswitch.conf\n#\n# Example”…, 131072) = 513
read(3, “”, 131072) = 0
close(3) = 0
munmap(0xb7ded000, 131072) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=56485, …}) = 0
mmap2(NULL, 56485, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f4c000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libnss_compat.so.2", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\21\0”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=30428, …}) = 0
mmap2(NULL, 33392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e04000
mmap2(0xb7e0b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6) = 0xb7e0b000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libnsl.so.1", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p5\0\000”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=76548, …}) = 0
mmap2(NULL, 87808, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7dee000
mmap2(0xb7e00000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11) = 0xb7e00000
mmap2(0xb7e02000, 5888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7e02000
close(3) = 0
munmap(0xb7f4c000, 56485) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=56485, …}) = 0
mmap2(NULL, 56485, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f4c000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libnss_nis.so.2", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\34\0\000”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=34320, …}) = 0
mmap2(NULL, 37420, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7de4000
mmap2(0xb7dec000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7) = 0xb7dec000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libnss_files.so.2", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\33”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=38372, …}) = 0
mmap2(NULL, 41620, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7dd9000
mmap2(0xb7de2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xb7de2000
close(3) = 0
munmap(0xb7f4c000, 56485) = 0
open("/etc/passwd", O_RDONLY) = 3
fcntl64(3, F_GETFD) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
socket(PF_NETLINK, SOCK_RAW, 0) = 4
bind(4, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(4, {sa_family=AF_NETLINK, pid=3073, groups=00000000}, [12]) = 0
time(NULL) = 1202039627
sendto(4, “\24\0\0\0\22\0\1\3K\253\245G\0\0\0\0\0\241\355\267”, 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\364\0\0\0\20\0\2\0K\253\245G\1\f\0\0\0\0\4\3\1\0\0\0I"…, 4096}], msg_controllen=0, msg_flags=0}, 0) = 736
recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0K\253\245G\1\f\0\0\0\0\0\0\1\0\0\0I\0"…, 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
sendto(4, “\24\0\0\0\26\0\1\3L\253\245G\0\0\0\0\0\241\355\267”, 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"<\0\0\0\24\0\2\0L\253\245G\1\f\0\0\2\10\200\376\1\0\0\0"…, 4096}], msg_controllen=0, msg_flags=0}, 0) = 128
recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"@\0\0\0\24\0\2\0L\253\245G\1\f\0\0\n\200\200\376\1\0\0"…, 4096}], msg_controllen=0, msg_flags=0}, 0) = 128
recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0L\253\245G\1\f\0\0\0\0\0\0\1\0\0\0\24"…, 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(4) = 0
open("/etc/localtime", O_RDONLY) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=2945, …}) = 0
fstat64(4, {st_mode=S_IFREG|0644, st_size=2945, …}) = 0
mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7db9000
read(4, “TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0\0\0\f\0\0”…, 131072) = 2945
close(4) = 0
munmap(0xb7db9000, 131072) = 0
uname({sys=“Linux”, node=“bv-pc”, …}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo …}) = 0
readlink("/proc/self/fd/0", “/dev/pts/1”, 4095) = 10
getuid32() = 1000
socket(PF_FILE, SOCK_STREAM, 0) = 4
fcntl64(4, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(4) = 0
socket(PF_FILE, SOCK_STREAM, 0) = 4
fcntl64(4, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(4) = 0
open("/etc/passwd", O_RDONLY) = 4
fcntl64(4, F_GETFD) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
_llseek(4, 0, [0], SEEK_CUR) = 0
fstat64(4, {st_mode=S_IFREG|0644, st_size=1294, …}) = 0
mmap2(NULL, 1294, PROT_READ, MAP_SHARED, 4, 0) = 0xb7f59000
_llseek(4, 1294, [1294], SEEK_SET) = 0
munmap(0xb7f59000, 1294) = 0
close(4) = 0
open("/etc/shadow", O_RDONLY) = 4
fcntl64(4, F_GETFD) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
open("/etc/shadow", O_RDONLY) = 5
fcntl64(5, F_GETFD) = 0
fcntl64(5, F_SETFD, FD_CLOEXEC) = 0
_llseek(5, 0, [0], SEEK_CUR) = 0
fstat64(5, {st_mode=S_IFREG|0640, st_size=999, …}) = 0
mmap2(NULL, 999, PROT_READ, MAP_SHARED, 5, 0) = 0xb7f59000
_llseek(5, 999, [999], SEEK_SET) = 0
munmap(0xb7f59000, 999) = 0
close(5) = 0
close(4) = 0
open("/etc/passwd", O_RDONLY) = 4
fcntl64(4, F_GETFD) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
_llseek(4, 0, [0], SEEK_CUR) = 0
fstat64(4, {st_mode=S_IFREG|0644, st_size=1294, …}) = 0
mmap2(NULL, 1294, PROT_READ, MAP_SHARED, 4, 0) = 0xb7f59000
_llseek(4, 1294, [1294], SEEK_SET) = 0
munmap(0xb7f59000, 1294) = 0
close(4) = 0
open("/etc/shadow", O_RDONLY) = 4
fcntl64(4, F_GETFD) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
open("/etc/shadow", O_RDONLY) = 5
fcntl64(5, F_GETFD) = 0
fcntl64(5, F_SETFD, FD_CLOEXEC) = 0
_llseek(5, 0, [0], SEEK_CUR) = 0
fstat64(5, {st_mode=S_IFREG|0640, st_size=999, …}) = 0
mmap2(NULL, 999, PROT_READ, MAP_SHARED, 5, 0) = 0xb7f59000
_llseek(5, 999, [999], SEEK_SET) = 0
munmap(0xb7f59000, 999) = 0
close(5) = 0
close(4) = 0
setregid32(-1, 1000) = 0
setreuid32(0, 1000) = 0
getcwd("/home/bv", 4096) = 9
setreuid32(-1, 0) = 0
setuid32(0) = 0
setreuid32(-1, 0) = 0
socket(PF_FILE, SOCK_STREAM, 0) = 4
fcntl64(4, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(4) = 0
socket(PF_FILE, SOCK_STREAM, 0) = 4
fcntl64(4, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(4) = 0
open("/etc/group", O_RDONLY) = 4
fcntl64(4, F_GETFD) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
_llseek(4, 0, [0], SEEK_CUR) = 0
fstat64(4, {st_mode=S_IFREG|0644, st_size=820, …}) = 0
mmap2(NULL, 820, PROT_READ, MAP_SHARED, 4, 0) = 0xb7f59000
_llseek(4, 820, [820], SEEK_SET) = 0
munmap(0xb7f59000, 820) = 0
close(4) = 0
stat64("/usr/local/sbin/whoami", 0xbfe17af0) = -1 ENOENT (No such file or directory)
stat64("/usr/local/bin/whoami", 0xbfe17af0) = -1 ENOENT (No such file or directory)
stat64("/usr/sbin/whoami", 0xbfe17af0) = -1 ENOENT (No such file or directory)
stat64("/usr/bin/whoami", {st_mode=S_IFREG|0755, st_size=12560, …}) = 0
setreuid32(-1, 0) = 0
setuid32(0) = 0
lstat64("/etc/sudoers", {st_mode=S_IFREG|0440, st_size=457, …}) = 0
setregid32(-1, 0) = 0
setreuid32(0, 1) = 0
open("/etc/sudoers", O_RDONLY) = -1 EACCES (Permission denied)
geteuid32() = 1
setreuid32(-1, 0) = 0
setuid32(0) = 0
write(2, “sudo: “, 6) = 6
write(2, “can’t open /etc/sudoers”, 23) = 23
write(2, “: “, 2) = 2
write(2, “Permission denied\n”, 18) = 18
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
pipe([4, 5]) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7e0d708) = 3074
close(4) = 0
fcntl64(5, F_GETFL) = 0x1 (flags O_WRONLY)
fstat64(5, {st_mode=S_IFIFO|0600, st_size=0, …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f59000
_llseek(5, 0, 0xbfe1782c, SEEK_CUR) = -1 ESPIPE (Illegal seek)
time(NULL) = 1202039627
stat64(”/etc/localtime”, {st_mode=S_IFREG|0644, st_size=2945, …}) = 0
stat64(”/etc/localtime”, {st_mode=S_IFREG|0644, st_size=2945, …}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2945, …}) = 0
write(5, “To: root\nFrom: bv\nSubject: *** S”…, 207) = 207
close(5) = 0
munmap(0xb7f59000, 4096) = 0
waitpid(-1, 0xbfe17958, WNOHANG) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
time([1202039627]) = 1202039627
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2945, …}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2945, …}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2945, …}) = 0
socket(PF_FILE, SOCK_DGRAM, 0) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
connect(4, {sa_family=AF_FILE, path="/dev/log"}, 16) = 0
send(4, "<81>Feb 3 12:53:47 sudo: "…, 144, MSG_NOSIGNAL) = 144
close(4) = 0
exit_group(1) = ?

voici le retour de la commande en root sur le système où sudo marche
strace -u bv -ff -o /tmp/trace sudo whoami

strace -u bv -ff -o /tmp/trace sudo whoami
Sorry, user bv is not allowed to execute ‘/usr/bin/whoami’ as root on bv-pc.bv.

dommage pour la comparaison

j’ai ajouté dans sudoers la commande /usr/bin/whoami

la commande s’exécute. je compare les deux fichiers

quand sudo marche
open("/etc/sudoers", O_RDONLY) = 4

quand sudo ne marche pas
open("/etc/sudoers", O_RDONLY) = -1 EACCES (Permission denied)

Oui, c’est ce que j’ai remarqué sur la trace:

[quote]etreuid32(0, 1) = 0
open("/etc/sudoers", O_RDONLY) = -1 EACCES (Permission denied)
geteuid32() = 1
setreuid32(-1, 0) = 0
setuid32(0) = 0
write(2, "sudo: ", 6) = 6
write(2, “can’t open /etc/sudoers”, 23) = 23
write(2, ": ", 2) = 2
write(2, “Permission denied\n”, 18) = 18
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
[/quote]
je suis en train d’éplucher ton truc, deux secondes…

Je ne comprends pas, tout devrait bien se passer, il arrive à se mettre en suid root sans souci sinon tu aurais

[quote]setuid32(0) = -1 EPERM (Operation not permitted)
[/quote]
donc c’est vraiment un problème de root. En root, tu arrives bien à faire

cat /etc/sudoers

??