Newsgroup: it.comp.os.linux.iniziare
Titolo: SUID e SGID

Impostando il bit di setUID o set GID (es chmod u+s,g+s) si permette a
tutti gli utenti o gli utenti di un certo gruppo di eseguire un file
che avra' i diritti dell'owner (anche root). Se la premessa non e'
sbagliata, non capisco perche' creando come root (SOLO per prova) uno
script che fa lo shutdown della macchina e poi dandogli il permesso di
SUID o SGID gli altri utenti si vedano negare l'uso a tale file
(permission denied).
Dove sbaglio?
Inoltre a che serve un comando di questo tipo "chmod o+X nomefile"
ossia a cosa si riferisce il bit X (maiuscolo e NON minuscolo!)?
Grazie :)

 Dove sbaglio?
Gli script non possono avere il bit suid. Viene semplicemente ignorato. Su 
distribuzioni che usano pam puoi semplicemente dare i permessi di shutdown e 
reboot a chiunque abbia aperta una console locale. Su distribuzioni che non 
usano pam puoi usare 'sudo'.
-- 
Enrico Bodo  -   Postdoctoral Research Fellow      
University of Rome "La Sapienza" 
Department of Chemistry         

Gli script non possono avere il bit suid. 
E allora quali faile possono essere SUID? Solo gli eseguibili binari?
Grazie 

 ossia a cosa si riferisce il bit X (maiuscolo e NON minuscolo!)?
tratto da man chmod:
The letters rwxXstugo select the new  permissions  for  the  affected
users:  read (r),  write (w), execute (or access for directories) (x),
execute only if the file is a directory or already has execute  permis-
sion  for  some user (X), set user or group ID on execution (s), sticky
(t), the permissions granted to the user who owns  the  file  (u),  the
permissions  granted to other users who are members of the file's group
(g), and the permissions granted to users that are in  neither  of  the
two preceding categories (o).
ciao
Ti

  E allora quali faile possono essere SUID? Solo gli eseguibili binari?
Si.
-- 
Francesco Romani - Ikitt   (signature under [re]construction)
'A geek is someone who spends time being "social" on a computer.'

Si.
Come mai questa scelta?

sion  for  some user (X), 
Scusa l'ignoranza ma e' proprio questa frase che non riesco a
comprendere appieno :-(
Ciao e grazie!

  Come mai questa scelta?
Questioni di sicurezza, penso. Non ho mai approfondito.


 Come mai questa scelta?
Altrimenti potresti farti un bello script che richiama 'bash',
dargli il suid e voila' hai una shell come root. 
Davide
-- 
| If JavaScript is walking alone late at night through a bad part of
| town with a pocket full of $20 bills, ActiveX is dropping your
| trousers in the middle of the yard of a maximum-security prison,
| bending over, and yelling 'Come and get it, boys!' --Adam 


pare che puoi cavartela scrivendo un piccolo programma C che faccia una
fork() e execve() (o se sei in vena di masochismi una system()). 
Anzi... direi che basta execve...
In questo modo, te la cavi ;)
#include <stdio.h>
int main(int argc, char *argv[], char *envp[]) {
        execve("/sbin/halt", argv, envp);
}
 
questo qui funziona (testato su Debian)
comunque la spiegazione approfondita sul perche` non vadano usati, e`
nei commenti del kernel...
-- 
#!/bin/rik0
Seasons don't fear the reaper
Nor do the wind, the sun or the rain... (BOC)

e` cosi` dal kernel.
Letto tutto. Grazie! ^__^

dargli il suid e voila' hai una shell come root. 
Vero, ma si puo' fare anche in C (con una system()) anche se in modo
molto meno rapido e semplice. Comunque, grazie, ora ho capito il
concetto :)

 Letto tutto. Grazie! ^__^
gia` che hai trovato (suppongo sul CVS), ti va di postare il link
diretto ;)


 concetto :)
piu` che con una system, gia` che ci sei, usa una execve ;)
vedi l'altro mio post ;)


diretto ;)
Volentieri! :) Ma non ho capito che link dovrei postare :-?
Io ho letto solo il thread di cui hai postato il link.
Ciao!FIFO

 Volentieri! :) Ma non ho capito che link dovrei postare :-?
se eri andato nel webcvs del kernel e trovato il sorgente dove c'erano
questi commenti di cui parlavo ;)


questi commenti di cui parlavo ;)
No, non sono ancora andato a spulciarmi i commenti nel codice.
CIao! FIFO