Como definir permissões para pasta no Ubuntu Unix / Linux

2

Isso não é necessariamente uma questão direta da ciência da computação, mas está intimamente relacionada.

Há alguma maneira de fazer isso.

Eu estou usando Z Shell Zsh.

Eu quero configurar isso sempre que eu estou na pasta

~ / blah

Tudo que eu crio é criado usando permissões 770 (All access wrx para mim e grupo). Basicamente tudo o que eu faço nessa pasta deve ter essas permissões.

Além disso, o grupo para esse arquivo deve ser feito da mesma maneira. Mas isso é o mesmo processo que o das permissões.

Qualquer um?


fonte

Respostas:

3

Encontrei um bom artigo sobre este assunto: O que é o "umask"? Como posso configurá-lo?

o umask define as permissões que um novo arquivo obterá - ou melhor: as permissões que ele não obterá.

[...]

Se você quiser definir o umask para   um diretório específico (exemplo: grupo   gravar permissões para um diretório que você   usar junto com suas faculdades),   você vai se suar ao usar o   comando umask porque é sempre   válido para todos os diretórios.

A solução deste problema é   definindo um ACL padrão . Os seguintes   comando garante que todos os novos arquivos em /home/shared/ tem todas as permissões   (incluindo permissões de gravação) definido para   o grupo:

setfacl -d -m mask:007 /home/shared/

Você também deve definir o sgid-bit para   o diretório e escolha o desejado   grupo usando chgrp:

chgrp the_team /home/shared/
chmod g+s /home/shared/

E se /home/shared/ já contém   subdiretórios, você tem que mudar   suas permissões também. Dica: tudo   Os comandos mencionados conhecem a opção -R.

Pascal Thivent
fonte
1
Eu acho que o OP está procurando por uma configuração do tipo umask que só se aplica a uma pasta específica
Peter van der Heijden
1

Conjunto

umask 006 

na tua ~/.bash_profile que é diferente do padrão de 022. Também definido

chgrp staff         # or some other group you pick
chmod g+s blah

para ativar o bit pegajoso no diretório. Agora tudo o que você cria abaixo dele deve manter os modos, assim como o grupo.

Dirk Eddelbuettel
fonte
0

Não esqueça que o sistema de arquivos deve ser montado com o ' acl 'bandeira, a fim de usar listas de controle de acesso. Caso contrário, o comando setfacl retornará ' Operação não suportada '.

Por exemplo, esta é a entrada no meu arquivo fstab (/ etc / fstab): -

# <file system>  <mount point>     <type>  <options>   <dump>  <pass>
/dev/sdb1        /media/DataDrive  ext3    acl         0       0

fonte
0

Você pode definir uma função chpwd () que será executada toda vez que o cwd do shell for alterado. Lá dentro, teste o diretório e defina umask apropriadamente.

function chpwd {
  [[ $PWD == $HOME/blah ]] && { umask 007; return }
  # or, if more tests here, use case $PWD in ... esac
  umask 022
}
Phil P
fonte
0

umask irá alterar as permissões padrão para todos os arquivos e diretórios que você criará, mas se você precisar que este comportamento seja apenas para um determinado diretório, você deve verificar as ACLs de listas de controle de acesso: man acl(5) Para maiores informações.

Chen Levy
fonte