Ü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.
- 3366 megtekintés
Hozzászólások
Egy évvel ezelőtt bejelentett hibát még nem javítottak ki?
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=660126
--
maszili
- A hozzászóláshoz be kell jelentkezni
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?
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Tippre jelszora var. Straceld meg, es latni fogod, hogy miben all.
--
|8]
- A hozzászóláshoz be kell jelentkezni
É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
- A hozzászóláshoz be kell jelentkezni
Ha direkt elrontom a sudoers fájlt akkor rendben panaszkodik a jelszó miatt és nem indítja el az svn-t sem:
sudo: no tty present and no askpass program specified
strace eredmény: http://pastebin.com/R1yPsJWd
--
maszili
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Az nekem is feltűnt az strace végén de látszólag rendben van...
ls -l /usr/bin/sudo
-rwsr-xr-x 2 root root 166120 2012 máj 23 /usr/bin/sudo
ls -l /etc/sudoers
-r--r----- 1 root root 790 febr 13 11.08 /etc/sudoers
--
maszili
- A hozzászóláshoz be kell jelentkezni
jogosultsag jo?
# ls -l /usr/bin/sudo
-rwsr-xr-x 2 root root 147936 2012-11-27 03:52 /usr/bin/sudo
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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 hozzászóláshoz be kell jelentkezni
Még egy apróság: biztos, hogy nem mászott fel frissítés helyett egy másik sudo bináris IS?
Másképpen fogalmazva: a /var/devdirs/svnrepos/teszt/hooks/post-commit biztosan a /usr/bin/sudo-t hívja?
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
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.
"
- A hozzászóláshoz be kell jelentkezni
Köszi az infót.
--
maszili
- A hozzászóláshoz be kell jelentkezni