[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: amo i grup dels fitxers d'un directori



On 5/24/06, Jordi Funollet <jordi.f@ati.es> wrote:
tictacbum dixit:
> Hola,
> sabeu com puc fer-ho perque els fitxers que es crein a un directori agafin
> un amo i grup concrets?
> amb el permis ug+s al directori, aconsegueixo que el grup sigui el mateix
> als nous arxius que al directori, perň l'amo es queda amb el que els ha
> creat

Així és com funciona en Unix: el fitxer reb els atributs del procés que el
crea; i, concretament, de l'entorn de l'usuari sota el qual corre el procés.

Si vols variar els permisos amb quč un procés crea els nous fitxers pots fer
servir la comana 'umask'. Si vols que afecti a tots els processos d'un usuari
la pots posar en el .profile o .bash_profile.

Si vols que tots els fitxers d'un usuari tinguin un grup, li pots assignar amb
'usermod -g'.

Perň canviar l'amo d'un fitxer xoca frontalment amb el model de seguretat de
Unix: sols ho pot fer el 'root'.

Segurament és més simple plantejar el problema del revés: crea un usuari
específic, dona-li permisos en el directori on vols tenir els fitxers i que
sigui ell qui llenci els processos que han de crear fitxers.


Bé, tal com diu el Jordi, no es pot tocar gaire els permisos clàssics
de UNIX  (rwx, per usuari / grup / others. No obstant, per tal de
solventar aquestes mancances de seguretat, fa un quant temps es van
implementar  les UNIX ACL's.

Les UNIX ACL, són llistes de control d'accés per fitxers, que ens
donen més llibertat a l'hora de manegar permisos a Linux/UNIX.

Per tal de que funcioni en un Debian, n'hi ha prou en instal·lar el
paquet acl i montar la partició on tens el directori en qüestió amb
l'opció acl  (el sistema de fitxers ha de ser ext2 o ext3)

Mitjantçant les comandes getfacl podrem veure els permisos i la
comanda setfacl per aplicar permisos. Per exemple:

Creem el directori prova-acl

$> mkdir prova-acl

Apliquem una ACL pels permisos estàndards de unix (user, group,
others), la màscara, i els permisos per defecte pels mateixos grups
(usant la paraula default o d).


$> setfacl -s u::7,g::6,m:4,o::6,d:u::7,d:g::5,d:m:7,d:o::5 prova-acl


Apliquem defaults específics per usuaris en concret (pep i marta).
Usem la opció -m per modificar l'ACL. (La opció -s esborra qualsevol
acl anterior)


$> setfacl -m d:u:pep:rwx,d:u:marta:rwx prova-acl

Ne'm a vere lo que hem fet:

$> getfacl prova-acl

# file: prova-acl
# owner: gerard
# group: 1012
user::rwx
group::rw-              #effective:r--
mask:r--
other::rw-
default:user::rwx
default:user:pep:rwx
default:user:marta:rwx
default:group::r-x
default:mask:rwx
default:other::r-x

A partir d'ara, els fitxers creats dins el directori prova-acl tindran
permisos rwx pel seu propietari, pel pep i la marta.

Bé, no sé si m'he explicat prou bé... però en definitiva la idea es
basa en que no podem canviar l'owner del fitxer, però podem fer que
tots els fitxers d'un usuari puguin ser manipulats totalment per una
altre usuari sense haver de crear grups especials ni res... només
instal·lant les acl's.

Aquesta sol·lució està bastant extesa en servidors samba.

Salut!!

..Gerard

--
##############################
### Jordi Funollet
### http://www.terraquis.net





"El que l'oruga anomena la fi del món, la resta del món l'anomena papallona"
                                                             (R. Bach)

Reply to: