Como posso configurar um diretório gravável em grupo?

13
$ whoami
meder
$ cd /var/www
$ sudo mkdir html
$ sudo groupadd web
$ sudo usermod -a -G web meder
$ sudo usermod -a -G web medertest
$ sudo chown meder:web html
$ sudo chmod -R g+rwx html

O problema é que, sempre que eu crio um novo arquivo em /var/www/html , mesmo que o grupo esteja definido como web , ele só pode ser gravado pelo usuário original.

Recebi o conselho de definir umask como 002 porque o padrão é o que causa os problemas. Mas eu teria que fazer isso para todos os usuários desse grupo, e, até onde eu sei, seria tedioso ter todos eles modificando ~/.bashrc para ter umask 002 . Mesmo que eu possa fazer isso sozinho com um comando shell para todos esses usuários, ainda parece muito tedioso.

Alguém pode oferecer algum conselho sobre ter um diretório gravável em grupo?

    
por meder omuraliev 06.01.2011 / 18:49

2 respostas

24

Primeiro, ative o bit SGID no seu diretório:

sudo chmod g+s html

Isso fará com que novos arquivos criados dentro desse diretório herdem a propriedade de grupo do pai.

Não há herança de níveis de permissão no modelo de permissão POSIX. No entanto, isso pode ser feito com listas de controle de acesso , sem ter que se preocupar com configurações de umask:

sudo setfacl -d -m group:web:rwx html

É uma chatice real que umask não pode ser atribuído em uma base por diretório.

    
por 06.01.2011 / 20:41
0

Você precisa definir o bit setgid no diretório.

chmod g+s html
    
por 06.01.2011 / 20:38