Prava procesu.
Jan Serak
xserak na fi.muni.cz
Úterý Červenec 21 00:32:19 CEST 1998
Matus fantomas Uhlar wrote:
>
> o com hovorite ? setuid skripty su celkom normalna vec.
Nevim, ma zkusenost je opacna: Na SCO (ksh), HP-UX 10.20 (ksh) a Linuxu 2.0.0
(bash)
jsem zkousel jednoduchou vec:
echo blabol >>soubor_patrici_rootovi_s_pravy_600
pricemz jsem tento skript privlastnil rootovi a dal jsem mu prava rwsr-xr-x
(4755 oktalove).
Na zadnem z uvedenych OS se nepodarilo obycejnemu uzivateli zapsat blabol do
uvedeneho
souboru. Je na techto OS neco smrduteho na volani jadra exec, ze setuid skript
nefunguje
jako normalni vec?
> ked sa skript zacina
> #!<program> [<paramter>]
> spusti sa program s prvym argumentom menom tohoto skriptu
To jsem se (uznavam) ponekud utal. Mou snahou bylo napsat co nejabsurdnejsi vec
a uz
jsem se nezvladl uhlidat, abych nebyl mimo misu. Omlouvam se.
> a ked je skript
> setuid tak sa spusti s privilegiami ownera skriptu. (ak nie je setuid aj ten
> program samozrejme).
Viz vyse: s privilegiemi vlastnika skriptu se program nespusti: spusti se
privilegiemi
podle <program>-u.
> JEdiny problem je ze bash vacsinou spusti setreuid()
> takze ak chcete mat setuid bash skript treba ho zacat
> #!/bin/bash -p
Z man bash cituji:
-p Turn on privileged mode. In this mode, the
$ENV file is not processed, and shell func-
tions are not inherited from the environ-
ment. This is enabled automatically on
startup if the effective user (group) id is
not equal to the real user (group) id.
Turning this option off causes the effec-
tive user and group ids to be set to the
real user and group ids.
Z toho usuzuji, ze -p zajisti nespusteni $ENV a nezdedeni shellovych funkci.
Pritom automaticky se zapne -p v pripade, ze bash je pousten procesem, ktery
ma rozdilne UID a EUID (pripadne GID a EGID). Ze by se touto volbou
zapinalo seteuid podle s-bitu neni zadna zminka. Kdyz jsem to vyzkousel,
zjistil jsem, ze to funguje presne podle manu: s #!/bin/bash -p to stale
nefunguje.
>
> Naozaj, co tak vyskusat sudo(8) ? je to program specialne na taketo
> zalezitosti...
To bude rozhodne nejrozumnejsi cesta k pozadovanemu cili.
--
Jan Serak
Další informace o konferenci Linux