As permissões do grupo permitem, mas ainda obtêm permissão negada

23

Eu tenho uma partição ext4 e configurei o proprietário do grupo para todos os subdiretórios para mygroup:

# chgrp -R mygroup /mount/abc
# chmod -R g+swrx /mount/abc

Meu usuário faz parte desse grupo. Dentro dessa partição é uma pasta que pertence ao usuário 'nobody' e agora pelo grupo 'mygroup'. Meu usuário faz parte do 'mygroup'. Aqui está um ls -l:

myuser@host:/mount/abc/folder$ ls -l
drwxr-sr-x 2 nobody      mygroup      4096 Apr 25 12:08 ./
drwxrwsrwx 6 nobody      mygroup      4096 Apr 24 07:57 ../
-rw-r-xr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

myuser@host:/mount/abc/folder$ groups myuser
myuser : mygroup {... a list of other groups also...} 

myuser@host:/mount/abc/folder$ rm test.png 
rm: remove write-protected regular file ‘test.png’? y
rm: cannot remove ‘test.png’: Permission denied

myuser@host:/mount/abc/folder$ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied

Observe que não posso excluir nem criar um arquivo que pertença a um grupo do qual meu usuário faz parte.

Acho que não entendo completamente como funcionam os grupos. Eu pensei que se você fizesse parte de um grupo, você herdaria as permissões desse grupo. Estou fazendo algo errado?

Obrigado

    
por Chaos 25.04.2014 / 08:28

4 respostas

30

Você adicionou recentemente esse usuário a esse grupo, sem fazer log-in / in entre? Em seguida, "grupos" mostrará o grupo, mas o usuário ainda não tem as permissões do grupo.

Você pode mostrar seus grupos eficazes usando

$ id

Como exemplo, se eu adicionar meu usuário ps ao grupo fax e, em seguida, digite

$ id

não mostra o grupo fax , mas

$ groups ps

mostra fax .

Fazer su com seu próprio usuário lhe dá a nova afiliação de grupo:

$ su ps
$ id

A saída agora também contém fax .

    
por peschü 25.04.2014 / 21:48
4

O método que você usou parece estar correto. Eu tentei replicá-lo agora e funcionou muito bem.

Não tenho certeza se existe um erro de digitação, mas há um pequeno problema com o comando. Não há necessidade de ter "mygroup" mencionado aqui. Os seguintes trabalhos

# chmod -R g+swrx /mount/abc

Mesmo, você pode remover o s , apenas g+rwx . Depois de ter alterado as permissões e você usar ls -l , ele deverá exibir os privilégios relevantes.

    
por Vivek Kapoor 25.04.2014 / 09:48
0

Para adicionar a resposta aceita (já que não posso comentar ainda):

Se você usa um software como o BitVise para criar uma conexão SSH com seu servidor, basta fechar & amp; reabrir um terminal não contará como registro em & amp; Fora. irá fazer coisas como recarregar seu ~/.bashrc , mas não realizar as atualizações reais do grupo (se você adicionou o grupo ao seu "login" sessão). Para que isso tenha efeito, você terá que fazer logout e fazer login novamente com sua chave SSH / credenciais.

    
por Figidon 20.01.2017 / 16:48
0

Os diretórios precisam do conjunto de bits x (para o diretório em que o bit é visto como bit de pesquisa) para abrir. Então eu uso tree para que eu possa obter apenas o conjunto de pastas e evitar o pesadelo de ter todos os arquivos definidos como executáveis (a opção para a árvore é -d List directories only. ):

sudo tree -faid /mount/abc | xargs -L1 -I{} sudo chmod 755  "{}"

Atenção !!! você deve ter isso em consideração:

  • usando chmod ou chown recursivo no diretório raiz / ou diretórios do sistema destruirá seu SO (na verdade, qualquer coisa recursiva no diretório / ou nos diretórios do sistema é perigosa)

  • isso não é uma boa prática de segurança para definir permissões em massa como essas

por Eduard Florinescu 25.01.2018 / 15:14