inn i %post

Jakub Bogusz qboosh w pld-linux.org
Czw, 4 Gru 2003, 22:54:54 CET


W %post inna jest regenerowane history.pag. Ale to się nie udaje:
[root news]# makedbz -s `wc -l <history` -f history
makedbz: cannot chdir to /var/lib/news: Permission denied

Chodzi o to, że:
# ls -ld /var/lib/news
drwxrwx---    3 root     news         1024 2003-12-04 21:25 /var/lib/news

[...]
getuid32()                              = 0
setuid32(9)                             = 0
getuid32()                              = 9
chdir("/var/lib/news")                  = -1 EACCES (Permission denied)
write(2, "makedbz: ", 9makedbz: )                = 9
write(2, "cannot chdir to /var/lib/news", 29cannot chdir to /var/lib/news) = 29
write(2, ": Permission denied", 19: Permission denied)     = 19
write(2, "\n", 1
)                       = 1
exit_group(1)                           = ?

makedbz zmienia uid na news bez initgroups() - a jako news:root nie ma
uprawnień do /var/lib/news.
Widzę takie rozwiązania:
- news:news na /var/lib/news (ale tak miało nie być)
- coś takiego:
su - news -s /bin/sh -c 'cd /var/lib/news ; makedbz -s `wc -l <history` -f history'

wydaje się działać.
Nawet późniejsze chown już nie jest potrzebne.

Natomiast nie rozumiem, po co jest:

        for i in dir hash index pag; do
                [ -f history.n.$i ] && mv history.n.$i history.$i
        done

Przy -f history pliki są tworzone jako history.*, a nie history.n.*
(ta druga wersja jest używana przy wywołaniu bez -f).


-- 
Jakub Bogusz    http://cyber.cs.net.pl/~qboosh/



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