Definindo permissões padrão do rwx para o grupo, mas apenas permissões padrão do rw para arquivos

2

Eu tenho uma coleção de diretórios que devem ter permissões rw-rw-r-- para todos os arquivos regulares contidos e rwxrwxr-x para todos os diretórios contidos. Eu posso definir as permissões padrão para todos os arquivos e diretórios regulares com algo como setfacl -R -d -m g::rw /directory/name , mas isso definirá as permissões padrão para novos arquivos e novos diretórios para o mesmo valor, o que eu não quero.

Como posso criar uma parte do sistema de arquivos com rwx permissões padrão para o grupo, mas apenas rw permissões padrão para arquivos?

    
por Dan 11.08.2016 / 01:12

1 resposta

2

Se você definir o sinalizador x para tudo, o usuário "criará" as permissões também terá efeito. o que significa que normalmente os arquivos não terão o sinalizador x :

$ setfacl -d -m u::rwx .
$ setfacl -d -m g::rwx .
$ setfacl -d -m o::rx . 
$ getfacl .
# file: .
# owner: sweh
# group: sweh
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

$ mkdir DIR
$ ls -ld DIR
drwxrwxr-x+ 2 sweh sweh 4096 Aug 10 20:05 DIR
$ touch file
$ ls -l file
-rw-rw-r-- 1 sweh sweh 0 Aug 10 20:05 file
$ touch DIR/file
$ ls -l DIR/file
-rw-rw-r-- 1 sweh sweh 0 Aug 10 20:06 DIR/file

Isso sobrevive a mudanças de umask:

$ umask 077
$ mkdir DIR2
$ ls -ld DIR2
drwxrwxr-x+ 2 sweh sweh 4096 Aug 10 20:08 DIR2
$ touch file3
$ ls -l file3
-rw-rw-r-- 1 sweh sweh 0 Aug 10 20:08 file3
$ > file4
$ ls -l file4
-rw-rw-r-- 1 sweh sweh 0 Aug 10 20:08 file4

Os diretórios recém-criados herdam a ACL padrão:

$ getfacl DIR2
# file: DIR2
# owner: sweh
# group: sweh
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

Isso não removerá o sinalizador x dos programas compilados, embora:

$ gcc -o x x.c
$ ls -l x
-rwxrwxr-x 1 sweh sweh 6680 Aug 10 20:12 x

Nesse caso, porque gcc faz um chmod e assim substitui o padrão:

open("x", O_RDWR|O_CREAT|O_TRUNC, 0666) = 3
....
chmod("x", 0775) 
    
por 11.08.2016 / 02:21