O que significa o GID?


14

O que realmente significa o GID?

Eu pesquisei no Google e foi isso que o linux.about.com disse:

Número de identificação do grupo para o processo. Números de grupo válidos são fornecidos em /etc/groupe no campo GID do /etc/passwdarquivo. Quando um processo é iniciado, seu GID é definido como o GID do processo pai.

  • Mas o que isso significa?

As permissões que tenho para minha pasta estão atualmente em 0755

Entendo que, se eu definir o UID para o Proprietário, será 4755

E se eu definir o GID do grupo, será 2755

Se eu definir o Sticky Bit for Others, será 1755

  • É mesmo importante definir essas permissões?

Respostas:


27

Cada processo em um sistema Unix-like, assim como todos os arquivos, tem um proprietário (o usuário, seja real ou um sistema de "pseudo-usuário", como daemon, bin, man, etc) e um proprietário do grupo. O proprietário do grupo para os arquivos de um usuário geralmente é o grupo principal desse usuário e, de maneira semelhante, todos os processos iniciados geralmente pertencem ao seu ID do usuário e ao seu ID do grupo principal.

Às vezes, porém, é necessário ter privilégios elevados para executar determinados comandos, mas não é desejável conceder direitos administrativos totais. Por exemplo, o passwdcomando precisa acessar o arquivo de senha de sombra do sistema, para que ele possa atualizar sua senha. Obviamente, você não deseja conceder privilégios de root a todos os usuários, apenas para que eles possam redefinir sua senha - isso sem dúvida levaria ao caos! Em vez disso, é preciso haver outra maneira de conceder temporariamente privilégios elevados aos usuários para executar determinadas tarefas. É para isso que servem os bits SETUID e SETGID. É uma maneira de dizer ao kernel para aumentar temporariamente os privilégios do usuário, enquanto durar a execução do comando marcado. Um binário SETUID será executado com os privilégios do proprietário do arquivo executável (geralmenteroot) e um binário SETGID será executado com os privilégios de grupo do proprietário do grupo do arquivo executável. No caso do passwdcomando, que pertence roote é SETUID, ele permite que usuários normais afetem diretamente o conteúdo do arquivo de senhas, de maneira controlada e previsível, executando com privilégios de root. Existem inúmeros outros SETUIDcomandos UNIX-like sistemas ( chsh, screen, ping, su, etc), os quais requerem privilégios elevados para operar corretamente. Existem também alguns SETGIDprogramas em que o kernel altera temporariamente o GID do processo, para permitir o acesso a arquivos de log etc. sendmailé um utilitário.

O sticky bitobjetivo é um pouco diferente. Seu uso mais comum é garantir que apenas a conta de usuário que criou um arquivo possa excluí-lo. Pense no /tmpdiretório. Tem permissões muito liberais, que permitem a qualquer um criar arquivos lá. Isso é bom, e permite que os processos dos usuários para criar arquivos temporários ( screen, ssh, etc, manter informações de estado em /tmp). Para proteger os arquivos temporários de um usuário, /tmpo bit pegajoso está definido para que somente eu possa excluir meus arquivos e somente você possa excluir os seus. Obviamente, o root pode fazer qualquer coisa, mas temos que esperar que o administrador do sistema não seja louco!

Para arquivos normais (ou seja, para arquivos não executáveis), não faz muito sentido definir os bits SETUID / SETGID. SETGID em diretórios em alguns sistemas controla o proprietário do grupo padrão para novos arquivos criados nesse diretório.


2
Ah, incrível, obrigado por isso. Portanto, o Sticky Bit é como uma permissão pessoal (usuário)? Essa resposta foi bem redigida e compreensível.
Kevdog777

1
Obrigado! O bit pegajoso fornece um pouco de proteção para arquivos em um diretório com permissões liberais. Não é realmente específico para um determinado usuário, pois o mesmo nível de proteção é oferecido a todos os arquivos, independentemente de quem seja o proprietário. É uma maneira de permitir que qualquer pessoa crie arquivos e garantir que apenas o proprietário possa destruí-los.
23412 D11By

+1, D_bye, você poderia compartilhar um exemplo para o setgid bit definido no diretório Obrigado
Ankit

1
@ Ankit No Solaris (e quase certamente outros - eu só uso * BSD e Solaris), se o bit setgid estiver definido em um diretório, quaisquer novos arquivos criados nesse diretório terão o mesmo proprietário do grupo que o próprio diretório e não herdará o grupo principal (o usuário em execução) do processo de criação.
D_Bye

3

Eu acho que você quer dizer o bit "SGID" de um arquivo, que não é igual ao seu GID.

Aqui está um arquivo típico no meu computador (saída de ls -l):

-rw-r----- 1 bristol    users 16 2012-07-23 11:36 file.txt
abbbcccddd <-- See explanation below.

Se você observar os 10 primeiros símbolos,

(a) -: Este é apenas um arquivo antigo simples (ao contrário de um diretório, link simbólico, canal etc. ...)

(b) rw-: o proprietário pode ler e gravar este arquivo, mas não executá-lo. O proprietário é "bristol", como você pode ver mais adiante na linha.

(c) r--: os membros do grupo ao qual esse arquivo pertence ("usuários" no exemplo) que não sejam o proprietário podem ler, mas não podem gravar ou executar esse arquivo.

(d) ---: Ninguém mais pode acessar este arquivo (exceto a raiz, é claro).

O campo GID é o que informa a qual grupo esse arquivo pertence - neste caso, "usuários".

O campo que você provavelmente quis dizer, com base na sua descrição, é o bit SGID, e aqui está uma explicação melhor do que eu poderia apresentar:

http://www.codecoffee.com/tipsforlinux/articles/028.html

A versão curta é: se um arquivo executável tem o bit SGID definido, qualquer pessoa que não esteja no grupo, mas pode executar esse arquivo temporariamente, obtém os direitos desse grupo enquanto o programa está sendo executado.

Por exemplo, se você possui um grupo "spool" que pode ler e gravar arquivos no diretório spooler de impressão, não deseja que ninguém mexa com esse diretório, mas deseja que eles possam imprimir arquivos, pode fazer algum programa ou script de impressão possui o grupo "spool" e define o bit SGID e, quando alguém inicia esse programa, o programa agora pode gravar no diretório do spooler sem que a pessoa que o executa tenha acesso total.


Isso é bom, obrigado por isso. Eu entendo a parte permissões, (a parte abbbcccddd) - mas thatnk você :)
Kevdog777

Acabei de ver minhas permissões na pasta tmp é drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmp. O que significa abbbcccddt(letra 't')? - Eu entendo que "d = diretório", "rwx = lê, escreve, executa"; mas nunca vi o 't' no final antes. Essa é uma permissão especial para a pasta tmp?
Kevdog777

T pequeno é "executável (x) e conjunto de bits pegajosos". Veja acima uma explicação de por que isso é comum em / tmp.
25712 Bristol

3

O GID é, como você encontrou, o número de identificação de um grupo. É simplesmente uma maneira conveniente de o sistema operacional expressar o grupo (usuário) associado a algo (um processo, um arquivo etc.); em vez de um identificador de cadeia potencialmente longo, ele pode ser expresso como um número de tamanho fixo.

Em um valor de permissão de arquivo de quatro dígitos octais (por exemplo, 0755), o terceiro dígito especifica as permissões do grupo para o arquivo. Se você omitir o primeiro dígito, é o segundo dígito que especifica as permissões do grupo. Observe que os arquivos e diretórios são tratados da mesma forma nesse aspecto, mas que o significado exato de cada bit de permissão é um pouco não intuitivo no caso de diretórios.

Os dois conceitos estão relacionados, mas servem a propósitos muito diferentes.

Quanto à sua pergunta "é importante definir essas permissões?"; eles sempre são definidos como algo , mas como na maioria dos casos o dígito inicial é 0 ("nada de especial"), ele tende a ser omitido por questões de brevidade. A necessidade de especificar algum outro valor depende inteiramente do padrão de uso do arquivo ou diretório em questão.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.