Parece que chown é permitido para usuário não root

3

Estamos usando a autenticação LDAP e provavelmente outras coisas que eu não entendi bem em nossa empresa, então talvez as seguintes perguntas sejam o resultado disso. Eu encontrei um comportamento estranho do comando chown , e não sei se isso é normal. Aqui está o meu cenário:

O GID da marca do usuário é SK001936 e o grup do proprietário da marca de dir da marca é SK001778, como você pode ver, eles não são os mesmos. O grupo SK001778 tem permissão para todas as operações (rwx) com o diretório home da marca do usuário, pois o proprietário (mark) possui:

[mark@machine ~]$ id
uid=48447(mark) gid=41795(SK001936) groups=40119(SUB_SK001936_PPS),41795(SK001936)
[mark@machine ~]$ ls -lad .
drwxrwxr-x   6 mark SK001778  4096 Oct 10 13:30 .

GID do usuário michael e mark são ambos SK001936:

[michael@machine mark]$ id
uid=40570(michael) gid=41795(SK001936) groups=40119(SUB_SK001936_PPS),41795(SK001936)
[mark@machine ~]$ id
uid=48447(mark) gid=41795(SK001936) groups=40119(SUB_SK001936_PPS),41795(SK001936)

o usuário michael não pode criar o arquivo no diretório home da marca do usuário. É a questão de que michael não pertence ao grupo (SK001778) que tem o acesso completo (rwx) ao diretório inicial da marca:

[michael@machine mark]$ touch michael
touch: cannot touch 'michael': Permission denied

Em circunstâncias normais, o usuário não pode emitir o chown, mesmo se ele for o proprietário do arquivo. No entanto, neste exemplo, o proprietário do diretório home (mark) é capaz de alterar o grupo de proprietários de seu próprio diretório pessoal (e assim permite que os usuários pertencentes a este grupo acessem seu diretório home):

[mark@machine ~]$ chown mark:SK001936 .

O grupo que agora tem acesso para marcar o diretório home é, portanto, o mesmo grupo do GID de michael, portanto, o michael agora pode criar / deletar arquivos / pastas no diretório home da marca:

[michael@machine mark]$ touch michael

mark não é capaz de alterar de volta a propriedade do grupo do seu diretório home (lembre-se que somente o root tem permissão para emitir um chown de acordo com isso: por que não pode-normal-usuário-chown-um-arquivo ):

[mark@machine ~]$ chown mark:SK001778 .
chown: changing ownership of '.': Operation not permitted

A minha pergunta é: como é possível que a marca tenha sido capaz de alterar a propriedade do grupo do seu diretório home mesmo quando si declarado que chown pode ser emitido apenas pelo root. A caixa é RedHat 5.6.

    
por Wakan Tanka 10.10.2013 / 17:14

2 respostas

8

Quando você usa chown de uma maneira que altera somente o grupo, ele age da mesma forma que chgrp . O proprietário de um arquivo ou diretório pode alterar o grupo para qualquer grupo do qual ele seja membro.

Funciona assim porque os comandos chown e chgrp usam o mesmo% subjacentechown syscall, que permite alterar o proprietário e o grupo. O syscall é o que aplica a verificação de permissão. A única diferença entre os comandos chown e chgrp é a sintaxe usada para especificar a alteração que você deseja fazer.

A marca não pode mudar o grupo de volta para SK001778 porque ele não é membro do grupo SK001778 (e ele não é raiz, o que não é restrito a membros do grupo).

    
por 10.10.2013 / 17:22
2

Os usuários podem usá-lo para alterar grupos, supondo que estejam em um desses grupos.

Exemplo

Digamos que eu esteja nos seguintes grupos:

$ groups
saml vboxusers jupiter newgrp

E eu tenho um arquivo:

$ ls -l | grep afile
-rw-rw-r--   1 saml saml        0 Oct 10 11:29 afile

então eu mudo o grupo deste arquivo da seguinte forma: L

$ chown saml.newgrp afile 

$ ls -l | grep afile
-rw-rw-r--   1 saml newgrp        0 Oct 10 11:29 afile

Você também pode usar chown da seguinte forma:

$ chown .saml afile 

$ ls -l|grep afile
-rw-rw-r--   1 saml saml        0 Oct 10 11:29 afile
    
por 10.10.2013 / 17:33