Sudo hiba?

Fórumok

Üdv mindenkinek,

Sudo ügyben szeretnék tanácsot kérni.
Egy SVN tároló post-commit szkriptjében sudo segítségével vált felhasználót a szkript www-data-ról vu2003-ra amikor az svn export történik a célterületre.

A debian rendszerfrissítés előtt jól működö szkript most nem működik. A frissítés után az svn export beragad.


12363 ?        Sl     0:02  \_ /usr/sbin/apache2 -k start
12899 ?        S      0:00  |   \_ /bin/sh /var/devdirs/svnrepos/teszt/hooks/post-commit /var/devdirs/svnrepos/teszt 10
12904 ?        S      0:00  |       \_ sudo -u vu2003 /usr/bin/svn --force export file:///var/devdirs/svnrepos/teszt/trunk /root/tmp/target/teszt
12905 ?        Z      0:00  |           \_ [svn] << defunct >>

Az svn export rendben lemegy de a sudo nem fejeződik be. Ha legyilkolom a sudo-t (kill -9 12904) akkor tér magához a fejlesztői eszköz ami a commit-ot indította és aktiválta a post-commit szkript által az svn exportot.


A    /root/tmp/target/teszt
A    /root/tmp/target/teszt/teszt.txt
Exported revision 10.
Killed

A sudo verziója: sudo 1.7.4p4-2.squeeze.3

Találkozott már más is hasonlóval?
Létezik, hogy ezt a sudo hibát még nem javították??

A válaszokat előre is köszönöm.

Hozzászólások

A linkelt hiba testing állapotban lévő Wheezyben lévő 1.8.3p2-1 verzióról szól, neked pedig stable Squeeze-ed van 1.7.4p4-2.squeeze.3 verzióval. A bugreportban "when -A is specified" áll, ami "a (possibly graphical) helper program is executed to read the user's password", de te ezt az opciót nem használod, csak a -u látszik megadva. Biztos, hogy ez a #660126 okozza a nálad jelentkező problémát?

Azt írod, hogy Debian rendszerfrissítés előtt még jó volt, és utána romlott el. Mivel Squeeze-t használsz, és most jött elő, feltételezem, hogy kiadáson belüli frissítésről beszélünk. A /etc/sudoers nem íródott felül a frissítéskor? Jó a tartalma?

Igen, egy lenny -> squeeze dist-upgrade történt és ez után jön a hibajelenség.

A /etc/sudoers tartalma nem változott:

# SVN Export miatt
www-data ALL=(vu2001) NOPASSWD:/usr/bin/svn
www-data ALL=(vu2002) NOPASSWD:/usr/bin/svn
www-data ALL=(vu2003) NOPASSWD:/usr/bin/svn
www-data ALL=(vu2004) NOPASSWD:/usr/bin/svn
www-data ALL=(vu2006) NOPASSWD:/usr/bin/svn
www-data ALL=(vu2010) NOPASSWD:/usr/bin/svn

Semmilyen hibaüzenet nem keletkezik, egyszerűen beragad az svn/sudo. Az svn rendben megcsinálja az exportot aztán zombi processz lesz belőle.
Ha kézzel készítek svn exportot akkor gond nélkül befejeződik az svn és rendben elkészül az export is.

Egyszerűen nem értem, hogy mi lehet a gond.

--
maszili

Én úgy gondolom, hogy ha jelszóra várna akkor nem indítaná el az svn-t és lenne valamilyen hibaüzenet. De az svn elindul, elkészül az export majd zombi lesz az svn-ből.

A /root/tmp/target/teszt
A /root/tmp/target/teszt/teszt.txt
Exported revision 10. <== Itt ér véget az export
Killed <== Itt gyilkoltam le a sudo-t.

--
maszili

Ez itt érdekes. Rendben vannak a sudo jogai? Vagy ez a szándékosan elrontott sudoers starce-e volt?


11:11:49.460285 geteuid()               = 33 <0.000014>
11:11:49.460357 write(2, "sudo", 4sudo)     = 4 <0.000018>
11:11:49.460425 write(2, ": ", 2: )       = 2 <0.000018>
11:11:49.460503 write(2, "must be setuid root", 19must be setuid root) = 19 <0.000018>

Normál esetben 4755-nek kell lennie:

# ls -l /usr/bin/sudo
-rwsr-xr-x 2 root root 166120 May 23  2012 /usr/bin/sudo
#

Esetleg megnézheted a sudoerst is, az 0440.

Erősen vélelmezhető a felülírt sudoers.

Szintén izgalmak forrása, amikor a gép neve is változik, vagy a masina hiábavaló hálózatos küzdelem miatt nem tudja feloldani a saját nevét, és így a sudoersben (egyébként dicséretes pedantériával) a hosztnévre korlátozott NOPASSWD sor értékében alulmúlja a hajítófát.

Ronda egy megoldás de ideiglenesen az strace-el indítva megy a dolog beragadás nélkül :-/ .Legalább a fejlesztő tud dogozni.

--
maszili

A rendszerfissítés a csomagkzelővel lett elvégezve.

A sources.list tartalma:


#deb http://archive.debian.org/debian lenny main contrib non-free
#deb http://ftp.debian.org/debian/ lenny-updates main contrib non-free
#deb http://security.debian.org/ lenny/updates main contrib non-free

deb http://ftp.de.debian.org/debian stable main contrib non-free
deb http://ftp.debian.org/debian/ squeeze-updates main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free

Ha felkerült valami disznóság a rendszerre akkor az csak a tárolóból jöhetett.

A post-commit szkript teljes elérési úton (/usr/bin/sudo) hívja meg a sudo-t.

Sajnos nekem már semmilyen ötletem nincs, hogy mi lehet a gond.

--
maszili

Itt van egy utalas erre:
https://github.com/ReadyTalk/bath/blob/master/README.md

"
ISSUES

sudo -n: some versions of sudo do not like not having a tty allocated. To get around this, use 'sudo -n'

Hanging process (iptables, /bin/sh) or no return values: Some older version of sudo (such as 1.7.4p4-2.squeeze.3 0) do not terminate properly. In Debian, this is fixed by backporting the Wheezy sudo package to squeeze. 1.8.3p2-1.1 is the version known to work.
"