Qual é o primeiro dígito na notação de permissão de arquivo octal do Unix de 4 dígitos?

40

3 dígitos:

644
ugo (user group other)

4 dígitos:

0644
?ugo (??? user group other)

Qual é o primeiro dígito octal na notação de permissão de arquivo octal Unix de 4 dígitos?

Steven T. Snyder
fonte

Respostas:

48

De man chmod:

Um modo numérico é de um a quatro dígitos octais (0-7), derivado da soma dos bits com os valores 4, 2 e 1. Quaisquer dígitos omitidos são assumidos como zeros à esquerda. O primeiro dígito seleciona os atributos ID do usuário (4) e ID do grupo (2) e pegajoso (1).

O que são "definir ID do usuário", "definir ID do grupo" e "pegajoso", você pergunta?

setuid / setgid :

setuid e setgid (abreviação de "definir ID do usuário na execução" e "definir ID do grupo na execução", respectivamente) são sinalizadores de direitos de acesso ao Unix que permitem aos usuários executar um executável com as permissões do proprietário ou grupo do executável. Eles geralmente são usados ​​para permitir que os usuários de um sistema de computador executem programas com privilégios temporariamente elevados, a fim de executar uma tarefa específica. Embora os privilégios de ID de usuário ou de grupo assumidos fornecidos nem sempre sejam elevados, eles são específicos, no mínimo.

Além disso, quando aplicado a um diretório, o setuid / setgid faz com que os novos arquivos criados no diretório herdem o uid ou gid, respectivamente, do diretório pai. Esse comportamento varia de acordo com o sabor do unix. Por exemplo, o linux honra o setgid, mas ignora o setuid nos diretórios.

E pegajoso :

Hoje, o uso mais comum do adesivo é nos diretórios. Quando o bit fixo é definido, apenas o proprietário do item, o proprietário do diretório ou o superusuário pode renomear ou excluir arquivos. Sem o conjunto de bits fixos, qualquer usuário com permissões de gravação e execução para o diretório pode renomear ou excluir arquivos contidos, independentemente do proprietário. Normalmente, isso é definido no diretório / tmp para impedir que usuários comuns excluam ou movam os arquivos de outros usuários.

Faz-tudo5
fonte
12

Setgid tem outra função muito importante na qual confio diariamente, mas que não está incluída no trecho de Handyman5 (a citação é da mesma página vinculada acima):

Os sinalizadores setuid e setgid, quando configurados em um diretório, têm um significado totalmente diferente.

A configuração da permissão setgid em um diretório (chmod g + s) faz com que novos arquivos e subdiretórios criados nele herdem seu ID do grupo, em vez do ID do grupo primário do usuário que criou o arquivo (o ID do proprietário nunca é afetado, apenas o ID do grupo). Os subdiretórios criados recentemente herdam o bit setgid.

Portanto, isso permite um espaço de trabalho compartilhado para um grupo sem o inconveniente de exigir que os membros do grupo alterem explicitamente seu grupo atual antes de criar novos arquivos ou diretórios. Observe que a configuração da permissão setgid em um diretório afeta apenas o ID do grupo de novos arquivos e subdiretórios criados após a configuração do bit setgid e não é aplicado a entidades existentes. A configuração do bit setgid nos subdiretórios existentes deve ser feita manualmente, com um comando como o seguinte:

[root@foo]# find /path/to/directory -type d -exec chmod g+s {} \;

chmod g+ssignificaria a adição de um 2 na frente do valor octal, criando um diretório com 775 permissões ( drwxrwxr-x) em 2775 ( drwxrwsr-x).

Jay Allen
fonte
2
FYI: O MacOS X se comporta como se o bit SGID estivesse sempre ativado em um diretório.
Jonathan Leffler
4

Além das outras respostas, um 0 inicial é uma convenção usada para dizer que um número é octal. Não é necessário aqui, pois as permissões de arquivo são sempre expressas em octal, mas isso pode ser outro motivo para a sua presença.

jlliagre
fonte
2

Aqui está uma calculadora de permissões Limux / Unix fácil de usar para ajudá-lo a descobrir as permissões de um arquivo ou diretório.

vegasbrianc
fonte
Apenas postar links é desaprovado. Você deve postar o conteúdo relevante e depois citar sua fonte.
MDMarra
Observou irá garantir posts futuros estão corretamente formatado
vegasbrianc