mkdir -p ignora facl?

3

Eu estou tentando impor permissões de arquivo do 777 em um conjunto específico de diretórios. Eu usei "setfacl -m d: o :: rwx" e consegui o que parece ser as permissões certas

$ getfacl .
# file: .
# owner: blah
# group: blah
# flags: -s-
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx

Quando eu executo o mkdir eu recebo um dir com o perms certo.

$ mkdir test
$ ll -d test
drwxrwsrwx+ 2 blah blah 4096 Oct 28 10:26 test

Quando eu executo "mkdir -p" recebo perms que correspondem ao umask, não o acl.

$ mkdir -p test1
$ ll -d test1
drwxrwsr-x+ 2 blah blah 4096 Oct 28 10:27 test1

Há algo que me falta?

    
por Kevin 28.10.2014 / 16:33

1 resposta

3

Eu acredito que este é o comportamento correto. Olhando para info mkdir:

'-p'
'--parents'
     Make any missing parent directories for each argument, setting
     their file permission bits to the umask modified by 'u+wx'.  Ignore
     existing parent directories, and do not change their file
     permission bits.

     To set the file permission bits of any newly-created parent
     directories to a value that includes 'u+wx', you can set the umask
     before invoking 'mkdir'.  For example, if the shell command
     '(umask u=rwx,go=rx; mkdir -p P/Q)' creates the parent 'P' it sets
     the parent's permission bits to 'u=rwx,go=rx'.  To set a parent's
     special mode bits as well, you can invoke 'chmod' after 'mkdir'.
     *Note Directory Setuid and Setgid::, for how the set-user-ID and
     set-group-ID bits of newly-created parent directories are
     inherited.

Então, mkdir -p terá o valor umask (modificado por u+rw ) para criar quaisquer diretórios que não estejam na árvore, o que faz sentido se você considerar o problema de como você endereçaria as permissões nos diretórios pais que já existe?

Como o trecho diz, você pode mudar o umask antes de executar o comando, embora provavelmente seja muito mais fácil executar um chmod recursivo no diretório pai depois que tudo for criado.

    
por 03.11.2016 / 16:50