concedendo permissões de gravação a um grupo em uma pasta

34

Como posso conceder permissão de gravação para 1 grupo?
Eu tenho 2 usuários ( alexe ben).
alexé membro do grupo alexe do grupo consult.
bené membro do grupo bene do grupo consult.

Desejo conceder acesso de gravação e leitura para ambos alexe benna pasta consult_documents.

Se eu tornar alexo proprietário do diretório consult_documentse conceder 775acesso ao diretório consult_documents, bene alexconseguir acessar a pasta, acho.

Mas isso permitirá o benacesso a alexoutras pastas também? Se um usuário estiver em dois grupos, isso significa que todos os membros de ambos os grupos obtêm as mesmas permissões em todas as pastas?

anatak
fonte
Deseja que alex e ben possam criar arquivos em consult_documents e permitir que ambos tenham acesso de leitura / gravação nesses documentos?
X Tian

Respostas:

42

A concessão de 775 permissões em um diretório não significa automaticamente que todos os usuários de um determinado grupo terão rwxacesso a ele. Eles precisam ser o proprietário do diretório ou pertencer ao grupo do diretório:

$ ls -ld some_dir
drwxrwxr-x 2 alex consult 4096 Feb 20 10:10 some_dir/
              ^     ^
              |     |_____ directory's group
              |___________ directory's owner

Portanto, para permitir que alex e ben tenham acesso de gravação some_dir, o some_dirpróprio diretório deve pertencer ao consultgrupo. Se não for esse o caso, o proprietário do diretório (alex no seu exemplo) deve emitir o seguinte comando:

$ chgrp consult some_dir/

ou para alterar a propriedade do grupo de tudo dentro do diretório:

$ chgrp -R consult some_dir/

Isso funcionará apenas se alex for um membro do consultgrupo, o que parece ser o caso no seu exemplo.

Isso não permitirá que ben acesse todos os diretórios de alex por dois motivos:

  1. Nem todos os diretórios de alex pertencerão ao consultgrupo
  2. Alguns dos diretórios de alex podem pertencer ao consultgrupo, mas alex pode não ter escolhido permitir o rwxacesso do grupo a eles.

Em resumo, a resposta depende da propriedade do grupo e dos bits de permissão de grupo definidos para o diretório.

Tudo isso desde que você não use nenhuma medida adicional de controle de acesso obrigatório em seu sistema.

Joseph R.
fonte
consult_documents é um diretório, então como você pode especificá-lo como um grupo?
Babin Lonston
@Babinlonston Você não pode. Você especifica consultcomo grupo.
Joseph R.
Obrigado, eu estava procurando como dar acesso a um diretório para um grupo. Eu não percebi que o comando chgrp poderia fazer isso. Eu pensei que o chgrp era apenas para adicionar / excluir usuários em um grupo.
Anatak 22/02
1
@anatak A modificação da associação ao grupo é feita por meio de usermodnãochgrp
Joseph R.
É o mesmo que chown -R :consult some_dir/?
Aaron Franke
7

Isso fará com que alex e ben se colabore neste diretório, e eles não podem colaborar em outro diretório.

Modifique o grupo de usuários usando

# usermod -a -G alex,ben alex

Em seguida, altere a permissão para pasta

# chown alex:ben consult_documents

Confira aqui eu trabalhei

$ sudo usermod -a -G alex,ben alex

$ sudo chown alex:ben consult_documents/

cd consult_documents/

$ touch babin

drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin

$ su - ben

cd /home/alex/consult_documents/

ben@system99:/home/alex/consult_documents$ touch babin1
ben@system99:/home/alex/consult_documents$ ls -la
total 8
drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin
-rw-rw-r-- 1 ben  ben     0 Feb 20 15:19 babin1
ben@system99:/home/alex/consult_documents$

Dê uma olhada aqui

Babin Lonston
fonte
6

Se entendi corretamente sua pergunta, a resposta é sim.

Deixe-me explicar:

Seus direitos de acesso a pastas e arquivos são divididos em três categorias:

xxxyyyzzz
xxx are access rights for the owner
yyy are access rights for the owner's group
zzz are the access rights for everyone else

Cada arquivo e pasta deve pertencer a um usuário.

O que significa que, se você possui uma pasta chamada consult_documents e deseja que ela seja acessível por todos os membros do grupo Consult, você terá isso (com 755 direitos de acesso):

drwxrwxr-x Alex Consult [......]

O diretório é de propriedade de Alex e o grupo é Consult. Alex tem direitos de acesso RWX. A Group Consult possui direitos de acesso RWX. Outros usuários têm direitos RX.

Como seu usuário Alex tem vários grupos, você pode escolher o grupo para compartilhar.

Por exemplo, se sua pasta pertence a Alex, do grupo Alex:

drwxrwxr-x Alex Alex [......]

Faça:

chown Alex:Consult your_folder

Vai se tornar:

drwxrwxr-x Alex Consult [......]

E então o diretório está disponível para o grupo Consult.

Observe que, até onde eu sei, você pode adicionar um grupo que não seja do grupo do proprietário. Mas não tenho certeza se é recomendado (não está claro ao ler os direitos de acesso).

Laurent C.
fonte
3

setfacl -mg: debian-transmission: rwx -R / mnt / sra

Achei esse comando legal, em vez de chown, que mudará completamente o proprietário do arquivo ou diretório!

Você verá em 'ls -Al' que um sinal de + será adicionado para mostrar que há mais de um proprietário!

drwxr-xr-x 2 root root 4096 8 de novembro às 19:11 sdc1 /

drwxrwxr-x + 3 raiz root 4096 17 de fevereiro 19:16 sra /

E então você pode usar o getfacl para ver quem pode escrever ou ler o arquivo ou diretório!

# file: sra

# owner: root

# group: usuário root :: rwx

group :: rx

grupo: transmissão debian: rwx

mask :: rwx

outro :: rx

padrão: user :: rwx

padrão: group :: rx

padrão: grupo: transmissão-debian: rwx

padrão: mask :: rwx

padrão: other :: rx

Marc Cabana
fonte