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, há uma pasta que pertence ao usuário 'nobody' e agora ao 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 consigo excluir nem criar um arquivo pertencente a um grupo do qual meu usuário faz parte.
Acho que não entendo completamente como os grupos funcionam. Eu pensei que se você fizesse parte de um grupo, herdaria as permissões desse grupo. Estou fazendo algo errado?
obrigado
12.04
permissions
Caos
fonte
fonte
Respostas:
Você adicionou recentemente esse usuário a esse grupo, sem desconectar-se / no meio? Em seguida, "grupos" mostrará o grupo, mas o usuário ainda não tem as permissões de grupo.
Você pode mostrar seus grupos eficazes usando
Como exemplo, se eu adicionar meu usuário
ps
ao grupofax
e digitarnão mostra o grupo
fax
, masmostra
fax
.Fazer
su
com seu próprio usuário fornece a nova afiliação de grupo:A saída agora também contém
fax
.fonte
sudo
e usá-lo regularmente. O erro que mostrei está reclamando que o comandoubuntu
(ou seja, o nome do usuário) não é um comando reconhecido. Não acho que sua sugestão seja sintaticamente correta - talvez funcione no seu caso, porqueps
também é um comando e um nome de usuário.su <username>
. Eu editei a postagem.O método que você usou parece estar correto. Acabei de tentar replicá-lo e funcionou muito bem.
Não tenho certeza se há um erro de digitação, mas há um pequeno problema com o comando. Não há necessidade de ter "mygroup" mencionado lá. Os seguintes trabalhos
Mesmo, você pode remover a parte
s
, apenas façag+rwx
. Depois de alterar as permissões, vocêls -l
deve exibir os privilégios relevantes.fonte
Você não pode remover o arquivo porque o grupo
mygroup
não tem permissões de gravação no arquivotest.png
e na pasta. Para que as operações de gravação funcionem no arquivo, as permissões do arquivo devem se parecer com:Se você olhar mais de perto o formato da permissão
Os três primeiros marcadores
uuu
são utilizador r ead, w rito e e x ecute. Os próximos três espaços reservadosggg
são para o grupo eooo
para outros. No trecho postado por grupo OP está faltando o w permissão rito.fonte
Para adicionar à resposta aceita (já que ainda não posso comentar):
Se você usar um software como o BitVise para criar uma conexão SSH com o servidor, simplesmente fechar e reabrir um terminal não será contabilizado como login e logout. Ele fará coisas como recarregar o seu
~/.bashrc
, mas não realizará as atualizações reais do grupo (se você adicionou o grupo à sua sessão de "login"). Para que isso entre em vigor, você precisará sair totalmente e efetuar login novamente com sua chave SSH / credenciais.fonte
Os diretórios precisam de um conjunto de bits x (para o diretório em que esse bit é visto como bit de pesquisa) para abrir. Então, uso o tree para obter apenas o conjunto de pastas e evitar o pesadelo de ter todos os arquivos definidos como executáveis (a opção para o tree é
-d List directories only.
):Aviso!!! você deve levar isso em consideração:
o uso de chmod ou chown recursivo no
/
diretório raiz ou nos diretórios do sistema destruirá seu sistema operacional (na verdade, qualquer coisa recursiva no/
diretório ou nos diretórios do sistema é perigosa)essa não é uma boa prática de segurança para definir permissões em massa assim
fonte