su (och to su!)

Arkadiusz Miśkiewicz misiek w zsz2.starachowice.pl
Pon, 19 Paź 1998, 07:25:59 CEST


 Poprawiłem to su z SimplePAMApps - mam nadzieję, że nic nie skopałem.
 W tym su limity działają jak należy :-)) Wreszcie. Ale podczas kompilacji
 z -Wcast-qual:
 /usr/include/bits/string2.h: In function `__strpbrk_c2':
 In file included from /usr/include/string.h:329,
                  from su.c:60:
		  /usr/include/bits/string2.h:676: warning: cast discards `const' from pointer target type
		  /usr/include/bits/string2.h: In function `__strpbrk_c3':
		  /usr/include/bits/string2.h:689: warning: cast discards `const' from pointer target type
		  ../inc/shell_args.-c: In function `build_shell_args':
		  In file included from su.c:72:
		  ../inc/shell_args.-c:178: warning: cast discards `const' from pointer target type

To tylko warningi ale i tak nie udało mi się ich wyeliminować. Niech się
"pobawi" ktoś znający C (nie wiem które to constansy ;) . Podczas kompilacji
bez -Wcast-qual nie ma wogóle błędów. xstrdup załatwiłem wrapperem.

To su miało 2 wady:
- su z roota na loosera - pytało się o hasło
- su wywołanie z MC - wywalało błąd (problem z ustawnieniem środowiska)
Patch na w/w rzeczy (do przejrzenia przez PAMospecjalistów-programistów)
dostępny w attachu. Proszę się mu przyjżeć (bo może zrobiłem przez to jakąś
dziurę ;) choć wydaje mi się, że jest ok).

Kolejna sprawa to su z usera mającego limity na roota. W takim wypadku limity
nie są zakładnale przez pam_limits (czyli jest ok) ale też _nie są_ zdejmowane.
Jeśli user miał limit nproc 10 to i po su na roota będzie limit 10 :(
Qrde - tutaj powinien pam_limits zadziałać i usunąć limity (ale widocznie
developerzy tego nie przewidzieli) ;) To oczywiście "ominięte" w jednym z moich
patchów.

Skąd powłoka wie jakie ustawić sobie limity na początku (powiedzmy root się
zalogował) ??? Przegrepowałem jajqo, includesy i źródła basha w poszukiwaniu
"768" - tyle ustawia mi nproc na dzieńdobry. Hmm, a może to nie powłoka
ustawia "dzieńdobrane" limity ? W moim patchu te limity są ustawiane na stałe;
takie same "twarde" i "miękkie":

[root w admin /root]# ulimit -aH
core file size (blocks)     unlimited
data seg size (kbytes)      unlimited
file size (blocks)          unlimited
max locked memory (kbytes)  unlimited
max memory size (kbytes)    unlimited
open files                  1024
pipe size (512 bytes)       8
stack size (kbytes)         8192
cpu time (seconds)          unlimited
max user processes          768
virtual memory (kbytes)     unlimited
[root w admin /root]#


Wogóle przerobiłem speca z pakietu passwd (teraz zwie się on passwd+su).
A jeszcze jedno. W specu z passwd jest 2> /dev/null czyli niezbyt dobrze.
Taq już to było - winny wystąp ;)
Pojawia się tylko jeden błędziq:
passwd.c: In function `main':
passwd.c:175: warning: `service' might be used uninitialized in this function
Oczywiście bez -Wcast-qual ;) To wyeliminować i będzie ok.

Jednak mimo wszytko ten su mi się nie podoba :(( Dziwnie się zachowywał w kilku
momentach. Dlatego też przyjżę się bliżej su z sh-utils jak tylko będe miał
trochę czasu.

PS1. Wojtek, chyba narazie nie wrzucaj tego do PLD-devel na ftpie.
PS2. src.rpm na incoming magellana
PS3. w vimie-ncurses wcisnąłem przez przypadek F1 i:
Sorry, help file "/usr/share/vim/doc/help.txt" not found
Wojtek - jak Ci się będzie chciało to poraw tego vima.
(nie wiem w którym pakiecie jest help.txt ale napewno nie ma go w vim-ncurses
i vim-rt).

-- 
 -< Arkadiusz Miśkiewicz >------------------------< Cron on IRC >-
  http://www.misiek.eu.org     mailto:misiek w zsz2.starachowice.pl
  Webmaster ZSZ2                  http://www.zsz2.starachowice.pl
 -< Linux micq UIN: 13798733 >-----------< Starachowice, POLAND >-



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