PDA

Visualizza la versione completa : chmod...dubbi..


Andre00
16-10-2004, 15:48
Letto su linux&c di questo mese:

si voglia far si che solo l'utente tizio possa utilizzare il file cdrecord (oltre root naturalmente)
groupadd cdburn
chown root:cdburn /usr/bin/cdrecord
chmod 750 /usr/bin/cdrecord

Fermiamoci qua.
E' stato creato un nuovo gruppo cdburn
il proprietario di /usr/bin/cdrecord da root è diventato cdbrun
si sono dati gli attributi 750 a cdrecord
gpasswd -a tizio cdburn
newgrp cdburn
cdrecord -scanbus
se tizio però prova ad usare cdrecord non funziona perchè?

Perchè?
con chown 750 /usr/bin/cdrecord non abbiamo già detto che i gruppi possono leggere ed eesguire cdrecord?
secondo perchè non si poteva dire dall'inizio
chown root:tizio /usr/bin/cdrecors
cdown (cambia il proprietario, ma il proprietario del gruppo desumo altrimenti basterebbe la riga che ho appena scritto)

L'articolo continua
chmod ug+s /usr/bin/cdrecord
Cosa fa esattamente questa riga che trasforma di fatto con un ls -al /usr/bin/cdrecord
gli attributi x in s del file /usr/bin/cdrecord
-rwsr-s--- 1 root cdburn 311k ago14 2003

qualcuno mi saprebbe spiegare cosa fa esattamente chmod con 777
oppure ug+s o , cosa sono altri attributi in più questi?


ciao e grassie!! :(

adarkar
16-10-2004, 16:08
:oVVoVe:

dunque chown nome:nome2 non cambia il proprietario da nome a nome2, ma setta il proprietario a nome e il gruppo a nome2

chmod 777 dà i permessi 777: lettura+scrittura+esecuzione(7) a tutti(777)

se l'utente non riesce ad eseguirlo è perchè o non è stato aggiunto al gruppo oppure perchè dopo essere stato aggiunto deve riloggarsi

sinceramente non ho ben capito perchè bisogna sempre riloggarsi.. è anche abbastanza scomodo a volte però è così, non c'è qualche tool per aggiornare il db degli utenti:gruppi in modo da non doversi per forza riloggare?

Ikitt
16-10-2004, 16:35
Originariamente inviato da Andre00
chown root:cdburn /usr/bin/cdrecord
chmod 750 /usr/bin/cdrecord
Fermiamoci qua.
E' stato creato un nuovo gruppo cdburn
il proprietario di /usr/bin/cdrecord da root è diventato cdbrun
...Il proprietario e` rimasto root, il gruppo e` diventato cdburn :)


se tizio però prova ad usare cdrecord non funziona perchè?

Non funziona sta per: non si avvia o non esegue per permessi insufficienti?


chmod ug+s /usr/bin/cdrecord
Cosa fa esattamente questa riga che trasforma di fatto con un ls -al /usr/bin/cdrecord
gli attributi x in s del file /usr/bin/cdrecord
-rwsr-s--- 1 root cdburn 311k ago14 2003
[...]
oppure ug+s o , cosa sono altri attributi in più questi?

Mumble, il perche` nell'articolo si imposti anche il group id mi sfugge, comunque l'idea di base e` la seguente:
- cdrecord ha bisogno dei permessi di root per funzionare
- per evitare di usare root per masterizzare, o si usa sudo,
o si attiva il bit suid all'eseguibile
- dato che gli eseguibili col bit suid sono pericolosi, si restringe la possibilita` d'uso di cdrecord suid-ato ad un ristretto gruppo di utenti (gruppo cdburn)
- si aggiungono tutti gli utenti che vogliono masterizzare al gruppo cdburn suddetto.

Problema: il sistema non sa che un dato utente e` stato aggiunto a quel gruppo. Soluzione: newgrp o logout/login.

In alternativa, per usi sporadici o se per qualche motivo non si vuol inserire un dato utente in un dato gruppo in modo permamente, si imposta una password per il gruppo (gpasswd) e si usa newgrp.

Andre00
16-10-2004, 16:37
OK mi hai delucidato su un punto.

ma cosa fa
chmod ug+s /usr/bin/cdrecord
di diverso rispetto a
chmod 750 /usr/bin/cdrecord

PS. Su linux&cd di questo mese c'è la knoppix 3.4

L'ho provata secondo me è stupenda.Provala.Te la consiglio.

Anche se ormai ho capito come fare un live cd...
l'unico problema serio è che non riesco a fare un live floppy...è li la chiave.

CIAO..

Ikitt
16-10-2004, 16:39
Originariamente inviato da Andre00
OK mi hai delucidato su un punto.
ma cosa fa
chmod ug+s /usr/bin/cdrecord
di diverso rispetto a
chmod 750 /usr/bin/cdrecord

Agisce su bit diversi.
Il primo chmod abilita il bit suid e il bit sgid. Non tocca i permessi standard.
Il secondo chmod imposta permessi di: scrittura/lettura/esecuzione per il proprietario, lettura/esecuzione per il gruppo, nulla per gli altri. Non tocca i bit sid/sgid/sticky.

Andre00
16-10-2004, 19:00
ok per quello che mi dici, ma la questione è che io ho una guida di linux (e ho controllato anche su man chmod) ma non riesco a capire l'utilità di quei bit
SUID SGIP e immagino ci sia anche SOID a questo punto.
dando
chmod ug+s cdrecord
cosa sto facendo concretamente?
abilito il SUID e il SGUIDsu cdrecord , ok
ma questo che significa? Voglio dire dando chmod 750 cdrecord
sto già dicendo al gruppo cdburn (visto che ho già detto che cdrecord fa già parte del gruppo cdburn con chown root:cdburn cdrecord)
che tutti quelli che appartengono a cdburn possono leggere ed esguire cdrecord, o sbaglio?
Ma allora a cosa serve abilitare il e il SUID o il SGID su cdrecord?

Scusate me è che vorrei vederci chiaro è non capisco l'utilità di quei bit.

adarkar
16-10-2004, 19:07
tutti i bit dei permessi (in ottale):

4000 suid
quando il file viene eseguito, il processo avrà i permessi del proprietario del file

2000 sgid
quando il file viene eseguito, il processo avrà i permessi del gruppo del file

1000 sticky
per le directory non consente di cancellare i file se non al creatore dello stesso. non specificato per gli altri file

0400 owner r
permette la lettura al proprietario

0200 owner w
permette la scrittura al proprietario

0100 owner x
permette l'esecuzione al proprietario

0040 0020 0010 group
permettono r, w, x agli utenti del gruppo

0004 0002 0001 others
permettono r, w, x a tutti gli altri utenti

:ciauz:

Ikitt
16-10-2004, 19:10
Originariamente inviato da Andre00
SUID SGIP e immagino ci sia anche SOID a questo punto.

Non il terzo e` lo sticky bit, un bit Substitute Other ID non avrebbe senso d'altronde ;)


dando
chmod ug+s cdrecord
cosa sto facendo concretamente?
Stai impostando il file in modo che, una volta lanciato, venga eseguito con uid e gid pari a quelli del proprietario e del gruppo del file, non pari a quelli dell'utente che li sta eseguendo.

Se l'utente tizio nel gruppo tizio lancia il programma pippo, con permessi rwxr-xr-x, proprietario root/root il processo pippo risultante avra` uid=tizio e gid=tizio.
Se l'utente tizio nel gruppo tizio lancia il programma pluto , con permessi rwsr-sr-s, proprietario root/root, il processo pluto risultante avra` uid=root e gid=root.
Questo grazie all'azione dei bit suid e sgid.


Voglio dire dando chmod 750 cdrecord
sto già dicendo al gruppo cdburn (visto che ho già detto che cdrecord fa già parte del gruppo cdburn con chown root:cdburn cdrecord)
che tutti quelli che appartengono a cdburn possono leggere ed esguire cdrecord, o sbaglio?
Si, ma per scrivere sui CD ci vuole accesso all'hardware, cosa correttamente concessa solo a chi ha privilegi di root.



Ma allora a cosa serve abilitare il e il SUID o il SGID su cdrecord?
A farlo funzionare :)
prova a togliere il bit suid/sgid e a provare a masterizzare :)

Andre00
16-10-2004, 19:35
credo di aver capito...sapete dove è nata la questione che mi ha fatto incasinare?
se dall'inizio seguo la procedura descirtta nel mio primo messaggio quello che dite voi funziona alla perfezione..
ma ora una volta dato chmod gu+s cdrecord
ho dato per fare delle prove chmod 750 cdrecord

ls -al
-rwxr-x--- 1 root cdburn 311 ago 14 2003

ok

se da tizio io do
cdrecord -scanbus

FUNZIONA ANCHE L'ACCESSO ALLE PERIFERICHE!!
questo allora cosa significa?
Ho c'è un bug o i permessi gu+s si ereditano?

Comunque ho capito la differenza...
inizialmete chmod 750 cdrecord
tizio lancia si cdrecord ma il /dev/hdc ad esmpio gli rimane inaccessibile
con chmod ug+s cdrecord anche le "dipendeces" di cdrecord gli sono accessibili,sbaglio o ho dinuovo capito niente?
CIAO!!

Andre00
16-10-2004, 19:39
per adarkar

non c'è un modo non letterale di settare i SUID e i SGID?
chene so (invento)

chmod 15157 cdrecord

-rwsrwsrwx


Sarebbe molto più pratico...

Loading