Como posso substituir a configuração de umask para todos os usuários de uma pasta específica?

0

Estou executando o RHEL6. Eu tenho um requisito para ter "umask 077" no meu / etc / bashrc que eu não tenho permissão para mudar. Temos uma pasta designada para colaboração em grupo, onde gostaríamos que todos no mesmo grupo pudessem rwx. Portanto, os usuários devem definir "umask 002" manualmente ou em seu arquivo .bashrc local ou lembrar-se de chmod. Eles geralmente esquecem e o administrador é chamado para "corrigir" as permissões porque o proprietário do arquivo não está disponível.

Existe uma maneira que eu possa forçar a pasta para "umask 002"? Eu li que eu deveria usar setfacl mas acho que umask substitui isso.

    
por eng3 07.09.2018 / 18:37

3 respostas

2

Veja link .

O que testei foi criar um diretório / var / test. Eu configurei o grupo para ser tgroup01. Certifiquei-me de que qualquer coisa criada em / var / test fosse definida para o grupo tgroup01. Eu então me certifiquei de que as permissões de grupo padrão para qualquer coisa abaixo de / var / test fossem rwx.

sudo mkdir /var/test
sudo chgrp tgroup01 /var/test
sudo chmod 2775 /var/test
sudo setfacl -m "default:group::rwx"

Se eu criar um diretório foo ou tocar em um arquivo blah, eles terão as permissões corretas

ls -al /var/test

drwxrwsr-x+  3 root   tgroup01  .
drwxr-xr-x   5 root   root      ..
-rw-rw-r--   1 userA  tgroup01  blah
drwxrwxr-x+  2 userA  tgroup01  foo
    
por 07.09.2018 / 18:56
0

O bit setgid não ajuda você - afeta apenas a propriedade, não o que o proprietário pode fazer com o arquivo.

O que pode funcionar é se a área de armazenamento compartilhado estiver montada em um sistema de arquivos diferente. Você precisará obter o administrador para montá-lo com o umask propriamente configurado para que você possa compartilhar arquivos. Ou, os arquivos são montados por um compartilhamento de samba somente interno - um tipo de sobrecarga, mas o samba permite facilmente um grupo específico e um modelo de permissão versus o que o sistema operacional fornece.

Resumindo - alguns de nós pensam que o "S" em "ITS" significa serviço. Se eles têm o requisito de um 077 kamk, então eles precisam criar uma maneira eficiente de compartilhar os arquivos para você.

(e para o bit setgid não funcionar)

ivan@darkstar:~$ umask
0002
ivan@darkstar:~$ 
ivan@darkstar:~$ umask 077
ivan@darkstar:~$ umask
0077
ivan@darkstar:~$ mkdir te
ivan@darkstar:~$ ls -ld te
drwx------ 2 ivan ivan 4096 Sep  7 18:53 te
ivan@darkstar:~$ umask 2
ivan@darkstar:~$ umask
0002
ivan@darkstar:~$ groups
ivan adm cdrom sudo dip plugdev lpadmin sambashare kvm webdev
ivan@darkstar:~$ sudo chown .webdev te
ivan@darkstar:~$ sudo chmod g+w te
ivan@darkstar:~$ ls -ld te
drwx-w---- 2 ivan webdev 4096 Sep  7 18:53 te
ivan@darkstar:~$ chmod g+rx te
ivan@darkstar:~$ sudo chmod g+s te
ivan@darkstar:~$ ls -ld te
drwxrws--- 2 ivan webdev 4096 Sep  7 18:53 te
ivan@darkstar:~$ cd te
ivan@darkstar:~/te$ umask 077
ivan@darkstar:~/te$ umask
0077
ivan@darkstar:~/te$ touch test
ivan@darkstar:~/te$ ls -l
total 0
-rw------- 1 ivan ivan 0 Sep  7 18:54 test
ivan@darkstar:~/te$ 
    
por 08.09.2018 / 01:04
-1

Você pode conseguir isso usando permissão especial " setgid bit ".

O bit setgid tem efeito em arquivos e diretórios. No primeiro caso, o arquivo que possui o conjunto de bits setgid, quando executado, em vez de executar com os privilégios do grupo do usuário que o iniciou, é executado com os do grupo que possui o arquivo.

Quando usado em um diretório, o bit setgid altera o comportamento padrão para que o grupo dos arquivos criados dentro do diretório mencionado não seja o do usuário que os criou, mas o do próprio diretório pai. Isto é freqüentemente usado para facilitar o compartilhamento de arquivos (os arquivos serão modificáveis por todos os usuários que fazem parte do grupo).

Se quisermos definir o bit setgid em um diretório, use o comando abaixo.

$ chmod 2775 test_dir

com este comando acima, demos privilégios totais a ele e ao usuário que são membros do grupo ao qual o diretório pertence, além de permissão de leitura e execução para todos os outros usuários.

Podemos definir isso de outra maneira, conforme mencionado abaixo

$ chmod g+s test_dir

Exemplo

Criamos vários usuários com o nome user1 , user2 , usuário3 :

$ useradd user1
$ useradd user2
$ useradd user3

Também criou um grupo com o nome group :

$ groupadd group

Adicionou group como um grupo secundário nos usuários criados:

$ usermod -a -G group user1
$ id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1),1003(group)

$ usermod -a -G group user2
$ id user2
uid=1001(user2) gid=1001(user2) groups=1001(user2),1003(group)

$ usermod -a -G group user3
$ id user3
uid=1002(user3) gid=1002(user3) groups=1002(user3),1003(group)

Criado test_dir e adicionado a permissão setgid bit :

$ mkdir test_dir
$ chmod 2775 test_dir
$ ls -al 
drwxrwsr-x   5 user group  4096 Sep  7 17:10 test_dir

Arquivos criados & diretórios em test_dir usando usuários criados:

$ cd test_dir

$ su user1
$ mkdir user1_dir
$ touch user1_file

$ su user2
$ mkdir user2_dir
$ touch user2_file

$ su user3
$ mkdir user3_dir
$ touch user3_file

Aqui está a lista de diretórios test_dir :

$ ls -al
total 44
drwxrwsr-x 5 user  group 4096 Sep  7 17:10 .
drwxr-xr-x 1 root  root  4096 Sep  7 17:35 ..
drwxrwsr-x 2 user1 group 4096 Sep  7 17:11 user1_dir
-rw-rw-r-- 1 user1 group    0 Sep  7 17:10 user1_file
drwxrwsr-x 2 user2 group 4096 Sep  7 17:09 user2_dir
-rw-rw-r-- 1 user2 group    0 Sep  7 17:09 user2_file
drwxrwsr-x 2 user3 group 4096 Sep  7 17:09 user3_dir
-rw-rw-r-- 1 user3 group    0 Sep  7 17:09 user3_file

Espero que esta solução funcione para você.

    
por 07.09.2018 / 20:05