Atribuir acesso de leitura/gravação a um usuário em um diretório específico no Linux
Em um artigo anterior, mostramos como criar um diretório compartilhado no Linux. Aqui, descreveremos como conceder acesso de leitura/gravação a um usuário em um diretório específico no Linux.
Existem dois métodos possíveis para fazer isso: o primeiro é usar ACLs (listas de controle de acesso) e o segundo é criar grupos de usuários para gerenciar permissões de arquivos, conforme explicado abaixo.
Para os fins deste tutorial, usaremos a seguinte configuração.
Operating system: CentOS 7
Test directory: /shares/project1/reports
Test user: tecmint
Filesystem type: Ext4
Certifique-se de que todos os comandos sejam executados como usuário root ou use o comando sudo com privilégios equivalentes.
Vamos começar criando o diretório chamado reports
usando o comando mkdir:
mkdir -p /shares/project1/reports
Usando ACL para conceder acesso de leitura/gravação ao usuário no diretório
Importante: Para usar este método, certifique-se de que seu tipo de sistema de arquivos Linux (como Ext3 e Ext4, NTFS, BTRFS) suporta ACLs.
1. Primeiro, verifique o tipo de sistema de arquivos atual em seu sistema e também se o kernel suporta ACL da seguinte forma:
df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
grep -i acl /boot/config*
Na captura de tela abaixo, o tipo de sistema de arquivos é Ext4 e o kernel suporta ACLs POSIX conforme indicado pela opção CONFIG_EXT4_FS_POSIX_ACL=y.
2. Em seguida, verifique se o sistema de arquivos (partição) está montado com a opção ACL ou não:
tune2fs -l /dev/sda1 | grep acl
A partir da saída acima, podemos ver que a opção de montagem padrão já tem suporte para ACL. Se não estiver habilitado, você pode habilitá-lo para a partição específica (/dev/sda3 para este caso):
mount -o remount,acl /
tune2fs -o acl /dev/sda3
3. Agora é hora de atribuir acesso de leitura/gravação a um usuário tecmint
para um diretório específico chamado reports
executando os seguintes comandos.
getfacl /shares/project1/reports # Check the default ACL settings for the directory
setfacl -m user:tecmint:rw /shares/project1/reports # Give rw access to user tecmint
getfacl /shares/project1/reports # Check new ACL settings for the directory
Na captura de tela acima, o usuário tecmint
agora tem permissões de leitura/gravação (rw) no diretório /shares/project1/reports conforme visto na saída do segundo comando getfacl.
Para obter mais informações sobre listas ACL, verifique nossos guias a seguir.
- Como usar ACLs (listas de controle de acesso) para configurar cotas de disco para usuários/grupos
- Como usar ACLs (listas de controle de acesso) para montar compartilhamentos de rede
Agora vamos ver o segundo método de atribuir acesso de leitura/gravação a um diretório.
Usando grupos para conceder acesso de leitura/gravação ao usuário no diretório
1. Se o usuário já possui um grupo de usuários padrão (normalmente com o mesmo nome do nome de usuário), simplesmente altere o proprietário do grupo do diretório.
chgrp tecmint /shares/project1/reports
Alternativamente, crie um novo grupo para vários usuários (que receberão permissões de leitura/gravação em um diretório específico), como segue. No entanto, isso criará um diretório compartilhado:
groupadd projects
2. Em seguida, adicione o usuário tecmint
ao grupo projects
da seguinte forma:
usermod -aG projects tecmint # add user to projects
groups tecmint # check users groups
3. Altere o proprietário do grupo do diretório para projetos:
chgrp projects /shares/project1/reports
4. Agora defina o acesso de leitura/gravação para os membros do grupo:
chmod -R 0760 /shares/projects/reports
ls -l /shares/projects/ #check new permissions
É isso! Neste tutorial, mostramos como conceder acesso de leitura/gravação a um usuário em um diretório específico no Linux. Se houver algum problema, pergunte por meio da seção de comentários abaixo.