O que “chgrp 0” faz?

0

Estou analisando um script e não consigo encontrar on-line o que chgrp 0 significa na seguinte linha:

find $1 -follow -exec chgrp 0 {}

então

find $1 recebe o parâmetro

-follow faz com que a localização siga os links simbólicos

-exec executa o comando

chgrp 0 altera a propriedade do grupo, mas o que 0 faz? ,

{} para todos os itens encontrados pelo comando find.

Por favor, corrija-me se estiver errado com alguma coisa.

    
por spaceman117X 21.08.2018 / 17:05

3 respostas

5

chgrp 0 file mudará a propriedade do grupo do arquivo file para o grupo com GID 0 , que em quase todos os casos no Linux é o root group (no BSD, quase sempre wheel ) . Portanto, o comando find pesquisará no caminho fornecido pelo primeiro parâmetro posicional ( $1 ) para todos os objetos de sistema de arquivos contidos nele, seguirá quaisquer links simbólicos para seus destinos e tornará o proprietário do grupo desses objetos GID 0 , root (ou wheel ).

    
por 21.08.2018 / 17:09
1

Basicamente, a propriedade de qualquer arquivo / diretório no linux é armazenada no inode . E é armazenado como um inteiro (inteiro para usuário e segundo inteiro para grupo). Depende apenas do seu NSS (por exemplo, arquivo / etc / passwd, ou ldap) cujo nome ele mostrará em ls. Executar a operação como chgrp root file system vai pegar o GID do grupo "root" (no meu caso é 0) e escrever 0 no inode. Você também pode fazer algo assim:

# touch testfile
# chgrp 135543 testfile
# ls -l testfile
-rw-r--r--. 1 root 135543 0 Aug 21 18:05 testfile
# groupadd -g 135543 testgroup
# ls -l testfile
-rw-r--r--. 1 root testgroup 0 Aug 21 18:05 testfile
    
por 21.08.2018 / 18:09
0

0 é o UID e o GID da raiz. Então, quando você está executando o chgrp 0, você está alterando a propriedade do grupo do arquivo / diretório para root.

    
por 21.08.2018 / 17:37

Tags