Oporny useradd/groupadd w skryptach poldka/rpm dla privoxy i innych

Marek Guevara Braun marek.guevara w atm.com.pl
Śro, 18 Sty 2006, 11:22:35 CET


Pewnie było ale co tam - od jakiegoś czasu zauważyłem, że przy
instalacji serwisu dodającego nowego uzytkownika i grupę zwykle pierwsza
instalacja zgłasza błędy typu "unknown user" lub "unknown group".
Zwykle zaraz po tym mamy coś w stylu "using root instead of user".

Myślałem że jest to związane z niekompatybilnościa narzędzi z shadow
i pwdutils, które obydwa dostarczają useradd/groupadd, ale nie, to
nie to.

Wyląda na to że po wywołaniu w skrypcie useradd, kolejna instrukcja
odwołująca się do właśnie dodanego usera zwraca błąd - być może
potrzebne były by jakieś sleepy przed useradd/groupadd/chown
w skryptach rpm?

Czy ktoś wie (TM) jak działają narzędzia useradd/groupadd
tj. czy nie działają przypadkiem jakoś asynchronicznie - zlecają
np. dodanie usera do modułu PAM-owego, i same kończą działanie ?

Jeśli jest tak to pewnie od sleepów lepsza była by kilkukrotna pętla
for sprawdzająca czy jest user/grupa + sleep.

$ rpm -qf /usr/sbin/groupadd
shadow-4.0.4.1-3

A to przykładowy zapis instalacji privoxy (za trzecim razem się udaje
bez błędów)

poldek:/all-avail> install privoxy-3.0.3-3
Processing dependencies...
There are 1 package to install:
I privoxy-3.0.3-3
Need to get 311.7KB of archives (311.7KB to download).
After unpacking 1.1MB will be used.
Retrieving ac::privoxy-3.0.3-3.i686.rpm...
.............................. 100.0% [311.7K (311.7K/s)]
Executing rpm --upgrade -vh --root / --noorder...
Preparing...                ###########################################
[100%]
Adding group privoxy GID=108.
Adding user privoxy UID=108.
useradd: unknown group privoxy
error: %pre(privoxy-3.0.3-3.i686) scriptlet failed, exit status 6
error:   install: %pre scriptlet failed (2), skipping privoxy-3.0.3-3
There were errors
poldek:/all-avail> install privoxy-3.0.3-3 --reinstall
Processing dependencies...
There are 1 package to install:
I privoxy-3.0.3-3
Need to get 311.7KB of archives. After unpacking 1.1MB will be used.
Executing rpm --upgrade --replacefiles --replacepkgs -vh --root /
--noorder...
Preparing...                ###########################################
[100%]
Adding user privoxy UID=108.
   1:privoxy                ###########################################
[100%]
warning: user privoxy does not exist - using root
Run "/etc/rc.d/init.d/privoxy start" to start privoxy service.
poldek:/all-avail> install privoxy-3.0.3-3 --reinstall
Processing dependencies...
privoxy-3.0.3-3 obsoleted by privoxy-3.0.3-3
There are 1 package to install, 1 to uninstall:
I privoxy-3.0.3-3
R privoxy-3.0.3-3
Need to get 311.7KB of archives (311.7KB to download).
After unpacking 1.1MB will be used.
Retrieving ac::privoxy-3.0.3-3.i686.rpm...
.............................. 100.0% [311.7K (215.7K/s)]

Executing rpm --upgrade --replacefiles --replacepkgs -vh --root /
--noorder...
Preparing...                ###########################################
[100%]
   1:privoxy                ###########################################
[100%]
Run "/etc/rc.d/init.d/privoxy start" to start privoxy service.

PS. W razie czego użyję Mocy albo strace :-)

Pozdrawiam,
Marek


Więcej informacji o liście dyskusyjnej pld-devel-pl