Li inúmeros artigos sobre o assunto e pesquisei todas as perguntas e respostas que pude encontrar, sem sorte. Estou enlouquecendo lentamente, então estou recorrendo a vocês, pois sei que a resposta à minha pergunta provavelmente é simples.
No meu servidor web, tenho dois usuários e dois grupos. Os usuários precisam ler e escrever na mesma área. Não é uma única pasta, mas uma complexa rede de pastas.
>> groups user_1
popuser psaserv psacln
>> groups user_2
psacln popuser psaserv
Esses não são usuários reais, portanto não possuem arquivos .bashrc. Quando cada um dos usuários cria um diretório, as permissões são exatamente como eu esperava:
drwxr-xr-x 2 user_1 popuser 4096 Apr 30 20:47 folder_1
drwxr-xr-x 2 user_2 psacln 4096 Apr 30 20:49 folder_2
Mas depois que um dos dois usuários cria a pasta, o outro não consegue gravar nenhum arquivo nela.
Se eu chmod 777, é claro que ambos poderão escrever.
gato /etc/grupo
popuser:x:31:user_1,psaserv,user_2
psacln:x:505:user_2,user_1,psaserv
Também incomum é que quando um arquivo é gravado no grupo, as permissões parecem muito restritivas:
-rw-r--r-- 1 user_2 psacln 0 Apr 30 21:15 some_file.ext
Embora talvez isso seja esperado.
De qualquer forma, para resumir e esclarecer minha pergunta em duas partes:
1) How can I make both users access files and folders from each other, given their group differences?
2) How can I set the default permissions on new files so they inherit the folder permissions?
(2) Tentei adicionar umask 022 ao meu arquivo ~/.bashrc para meu usuário root, mas não fez nada. Não tenho certeza de onde colocar isso para esses "usuários" que não possuem diretórios pessoais.
Desculpe, sei que perguntas como essa podem parecer redundantes para vocês, especialistas em Linux. Pesquisar é difícil quando nem sei o que procuro.
Muito obrigado, como sempre.
[Estou no centOS]
Responder1
1) Como posso fazer com que ambos os usuários acessem arquivos e pastas um do outro, dadas as diferenças de grupo?
Uma maneira é dar aos diretórios um grupo que os usuários tenham em comum.
chgrp psaserv folder1 folder2
chmod g+w folder1 folder2
2) Como posso definir as permissões padrão em novos arquivos para que eles herdem as permissões da pasta?
Use o bit "definir ID do grupo".
chmod g+s folder1 folder2
Você não pode herdar permissões rwx, defina o umask.
Tentei adicionar umask 022 ao meu arquivo ~/.bashrc para meu usuário root, mas não fez nada. Não tenho certeza de onde colocar isso para esses "usuários" que não possuem diretórios pessoais.
Você providenciou para que algum processo esteja usando esses IDs de usuário. Você deve providenciar para que esse processo defina sua umask como 022. Como você faz isso depende de qual processo você organizou para fazer isso. Talvez você use sudo
, talvez seja um servidor web, talvez seja outra coisa. A menos que você explique, não é realmente possível fornecer conselhos específicos detalhados.
Responder2
Se você deseja que novos arquivos criados por seus usuários sejam graváveis por padrão pelos membros do grupo, você precisa modificar o umask para algo diferente de 022. Se você estiver de acordo com as implicações de segurança, defina o umask como 002 (para exemplos sobre onde definir umask, vejahttps://stackoverflow.com/questions/10220531/how-to-set-system-wide-umask).
Umask
As permissões de arquivo padrão em arquivos e diretórios recém-criados são uma permissão padrão ( rw-rw-rw
para arquivos, rwxrwxrwx
para diretórios) subtraindo a configuração umask atual. Uma configuração umask de 000 manteria as permissões padrão, enquanto uma configuração de 777 removeria todas as permissões.
Os três números no umask representam permissões de usuário, grupo e qualquer pessoa, respectivamente. O número representa três dígitos binários para remover uma permissão específica ou não.
d - rwx
-------
0 - 000 (rwx)
1 - 001 (rw-)
2 - 010 (r-x)
3 - 011 (r--)
4 - 100 (-wx)
5 - 101 (-w-)
6 - 110 (--x)
7 - 111 (---)
Para calcular quais permissões um novo arquivo terá dado uma determinada umask, comece com a permissão padrão e subtraia a umask.
orig rwx rwx rwx (777, default directory permission)
umask 000 010 010 (022)
result rwx r-x r-x (755)
orig rw- rw- rw- (666, default file permission)
umask 000 010 010 (022)
result rw- r-- r-- (644)
orig rwx rwx rwx (777, default directory permission)
umask 000 000 010 (002)
result rwx rwx r-x (775)
orig rw- rw- rw- (666, default file permission)
umask 000 000 010 (002)
result rw- rw- r-- (664)