Newsgroup: it.comp.os.linux.sys
Titolo: blocco selettivo applicazioni software

Ciao a tutti,
avrei una domanda: in un sistema GNU/Linux, e' possibile bloccare 
selettivamente le applicazioni che un dato utente e' in grado di 
eseguire (senza modificare i permessi dell'eseguibile) ?
Ad esempio, impedire ad un determinato utente (o gruppo di utenti) non 
amministratore di avviare Firefox.
Grazie.
Lorenzo

Seldon ha scritto:

  Una maniera classica, ma un po' laboriosa, consiste nel:
1) attribuire a quegli utenti una shell ristretta (ad es. /bin/rbash);
2) creare una directory dove sono presenti (magari in forma di
collegamenti simbolici) i soli comandi che quegli utenti devono poter
utilizzare e che non includa una qualsiasi shell;
3) configurare il file .bash_profile nella loro $HOME la variabile PATH
perché contenga solo la directory del punto (2).
  La difficoltà principale sta nel far funzionare l'interfaccia grafica
che, nel caso di Gnome o KDE, richiede di poter mandare in esecuzione un
gran numero di eseguibili installati in /usr/bin o /usr/libexec/, che
vanno scoperti e aggiunti a mano.  E non è sicuro poi che la GUI non
fornisca all'utente un modo di circuire la shell ristretta (anzi, lo
ritengo probabile).
  Un altro metodo classico consiste nell'installarsi in un sottoalbero
del filesystem i soli applicativi che gli utenti limitati devono poter
usare, con tanto di librerie da cui dipendono, e di relegare questi
utenti a quel sottoalbero con un chroot al momento del loro login (ad
esempio mettendogli uno script come shell di login).  Questa soluzione è
più elegante e sicura, ma è comunque laboriosa e occupa più spazio sul
disco.
  Altre possibilità richiedono la conoscenza di caratteristiche avanzate
delle ultime versioni del filesystem come le POSIX Access Control Lists
o le estensioni SELinux.
  In somma, se non stai gestendo un sistema enterprise fai prima a
creare un gruppo firefox, a cambiare il gruppo di /usr/bin/firefox e
/usr/lib/firefox-5/firefox in firefox, a cambiarne i diritti in
rwxr-x--- e di aggiungere al gruppo firefox gli utenti "buoni".
  Ciao,
-- 
Alessandro Selli 
http://alessandro.route-add.net
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.

Seldon wrote:

Attivare e gestire le acl su file.
Forse anche pacchetti come polkit (se ricordo ben) che nei vari desktop 
manager dovrebbe stabilire a cosa possono accedere i vari utenti.

 amministratore di avviare Firefox.
Coi permessi è banale, crei il gruppo "firefox", attribuisci 
all'eseguibile i permessi rwxr-x--- root.firefox e poi iscrivi al gruppo 
"firefox" solo gli utenti che vuoi abilitare.
Ma perché non vuoi usare le cose che sono fatte apposta?
-- 
Massimo Bacilieri AKA Crononauta

>>>>  
http://www.bb2002.it
 :)  <<<<<
........... [ al lavoro ] ...........


Grazie per la considerazione ! ;-)
Il motivo per cui vorrei evitare la soluzione "sporca e veloce" di 
modificare i permessi di un'eseguibile di sistema mi sembra evidente:
evitare problemi di gestione, soprattutto quelli legati agli 
aggiornamenti di sistema.

 aggiornamenti di sistema.
che e` la stessa perplessita` che ho io: come si comporta l'aggiornamento 
del pacchetto in tal senso (in teoria la risposta la so: ripristina i 
permessi e le acl impostate dal mantainer)?
Enrico


A memoria, no. Vengono reimpostati eventualmente solo i flag suid, ma 
questo succede normalmente a livello sistema dopo qualsiasi modifica al 
file (per ragioni di sicurezza).
Il resto delle permission vengono mantenute, a meno di un remove e 
reinstall del pacchetto (nel qual caso *rimuovi* l'originale e lo 
reinstalli ex-novo: allora, ovviamente, perdi le permission impostate 
manualmente sul file iniziale).


 file (per ragioni di sicurezza).
Per curiosità ho fatto la prova:
cristian@nb-mammoli:~$ sudo chmod 700 /bin/nano
cristian@nb-mammoli:~$ ls -l /bin/nano
-rwx------ 1 root root 170016 2010-12-03 20:40 /bin/nano
cristian@nb-mammoli:~$ sudo apt-get install --reinstall nano
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 7 not 
upgraded.
Need to get 180 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 
http://it.archive.ubuntu.com/ubuntu/
 natty/main nano i386 2.2.6-1 
[180 kB]
Fetched 180 kB in 1s (98.6 kB/s)
(Reading database ... 175028 files and directories currently installed.)
Preparing to replace nano 2.2.6-1 (using 
.../archives/nano_2.2.6-1_i386.deb) ...
Unpacking replacement nano ...
Processing triggers for install-info ...
Processing triggers for doc-base ...
Processing 2 changed doc-base file(s)...
Registering documents with scrollkeeper...
Processing triggers for man-db ...
Setting up nano (2.2.6-1) ...
cristian@nb-mammoli:~$ ls -l /bin/nano
-rwxr-xr-x 1 root root 170016 2010-12-03 20:40 /bin/nano

 install --reinstall nano
Direi che coincide con quello che avevo detto:


Metti tutti i chmod in uno script ed eseguilo dopo ogni upgrade.


Io ho fatto un reinstall, che non prevede affatto la rimozione 
dell'originale. Ma per scrupolo:
cristian@nb-mammoli:~$ sudo dpkg -i nano_2.2.4-1_i386.deb
(Reading database ... 175028 files and directories currently installed.)
Preparing to replace nano 2.2.4-1 (using nano_2.2.4-1_i386.deb) ...
Unpacking replacement nano ...
Setting up nano (2.2.4-1) ...
Processing triggers for install-info ...
Processing triggers for man-db ...
Processing triggers for doc-base ...
Processing 2 changed doc-base file(s)...
Registering documents with scrollkeeper...
cristian@nb-mammoli:~$ sudo chmod 700 /bin/nano
cristian@nb-mammoli:~$ ls -l /bin/nano
-rwx------ 1 root root 174136 2010-05-09 18:32 /bin/nano
cristian@nb-mammoli:~$
cristian@nb-mammoli:~$ apt-cache madison nano
       nano |    2.2.6-1 | 
http://it.archive.ubuntu.com/ubuntu/
 
natty/main i386 Packages
cristian@nb-mammoli:~$ sudo apt-get install nano
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
   spell
The following packages will be upgraded:
   nano
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/180 kB of archives.
After this operation, 1,200 kB disk space will be freed.
(Reading database ... 175028 files and directories currently installed.)
Preparing to replace nano 2.2.4-1 (using 
.../archives/nano_2.2.6-1_i386.deb) ...
Unpacking replacement nano ...
Processing triggers for install-info ...
Processing triggers for doc-base ...
Processing 2 changed doc-base file(s)...
Registering documents with scrollkeeper...
Processing triggers for man-db ...
Setting up nano (2.2.6-1) ...
cristian@nb-mammoli:~$ ls -l /bin/nano
-rwxr-xr-x 1 root root 170016 2010-12-03 20:40 /bin/nano