Faça o usuário criar 775 pastas de permissão

1

Eu digitei o comando chfn -o umask=002 souser e esperava que o usuário souser criasse pastas com a permissão 775 , mas ele não o fez. Como conseguir que cada nova pasta criada por um determinado usuário tenha permissão de gravação para o grupo? Aqui está meu teste:

s@lokal:~$ sudo adduser souser
Adding user 'souser' ...
Adding new group 'souser' (1002) ...
Adding new user 'souser' (1002) with group 'souser' ...
The home directory '/home/souser' already exists.  Not copying from '/etc/skel'.
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for souser
Enter the new value, or press ENTER for the default
  Full Name []: 
  Room Number []: 
  Work Phone []: 
  Home Phone []: 
  Other []: 
Is the information correct? [Y/n] y
s@lokal:~$ sudo usermod -aG sudo souser

s@lokal:~$ su souser
Password: 
souser@lokal:/home/s$ cd
souser@lokal:~$ mkdir test
souser@lokal:~$ ls -ld test/
drwxr-xr-x 2 souser souser 4096 Sep  3 14:23 test/

souser@lokal:~$ chfn -o umask=002
chfn: Permission denied.
souser@lokal:~$ sudo chfn -o umask=002 souser
souser@lokal:~$ mkdir test2
souser@lokal:~$ ls -ld test2
drwxr-xr-x 2 souser souser 4096 Sep  3 14:24 test2
souser@lokal:~$ sudo cat /etc/passwd |grep souser
souser:x:1002:1002:,,,,umask=002:/home/souser:/bin/bash
souser@lokal:~$ 

Atualização 1

Após o relogin ser o mesmo:

souser@lokal:~$ mkdir test3
souser@lokal:~$ ls -ld test3
drwxr-xr-x 2 souser souser 4096 Sep  3 14:42 test3
souser@lokal:~$ 

Atualização nº 2

Isso também não ajudou:

s@lokal:~/Dropbox$ su - souser
Password: 
souser@lokal:~$ mkdir test4
souser@lokal:~$ ls -ld test4
drwxr-xr-x 2 souser souser 4096 Sep  3 14:51 test4
souser@lokal:~$ 

NOTA: A distro é Debian 9.

    
por trzczy 03.09.2018 / 14:40

1 resposta

2

As possibilidades de definir umask diferem strongmente entre as distro Linux e Unix.

A maneira como você está tentando fazer isso (no campo "gecos" em /etc/passwd ) depende de pam_umask sendo instalado e configurado. AFAIK este é pelo menos o caso por padrão no Debian e provavelmente distro é baseado no Debian como Ubuntu, Mint, etc ...

Sem pam_umask , você poderia colocar uma linha umask 002 no perfil do shell ou no arquivo rc no diretório inicial dos usuários (por exemplo, .bashrc ou .profile ). Ou algo parecido com isso no arquivo de configuração do sistema, por exemplo /etc/profile (para sh e bash ) ou /etc/bashrc (apenas para o bash):

if [ "$USER" = "souser" ] ; then
    umask 0002
else
    umask 0022
fi

Você pode verificar se foi bem-sucedido de qualquer forma com apenas um comando umask simples, que produzirá a umask efetiva atual.

Observe que ainda cabe ao aplicativo definir as permissões. Se você usar algum outro programa ou comando que, em seu código, nunca permite definir permissões de gravação de grupo na pasta criada, será necessário alterar o código desse programa ou definir manualmente as permissões posteriormente. É assim que o UNIX / Linux deve funcionar.

    
por 03.09.2018 / 15:52