qual é o significado do primeiro dígito em 0022 quando executo umask no linux? [duplicado]

1

Sei que não há diferença em 0022 e 022 referentes a link . Eu tenho o arquivo 1.c, com permissões 0066. Mas quando eu mudo o modo de arquivo 1.c para 1066 e, em seguida, quando eu verificar as permissões do arquivo com ls -l, ele afeta as permissões. Cada vez que diferentes bits de permissão estão mudando com a mudança neste primeiro dígito. O que realmente significa?

    
por mahesh bhosale 13.02.2017 / 12:22

2 respostas

2

Sim, há uma diferença entre 0022 e 022. Não para umask, mas sim para chmod.

As permissões são descritas por três letras por usuário, grupo e outras.
Geralmente, é rwxrwxrwx (ou - , onde necessário) em ls output:

$ touch 1.c
$ ls 1.c
-rw-r--r-- 1 user user 0 Feb 13 09:01 1.c

Onde cada bit definido é mostrado por uma letra, e bits não configurados são mostrados com - .

Portanto:
rwx significa 111, que é binário para um valor octal de 7.
rw- significa 110, que é binário para um valor octal de 6.
r-- significa 100 que é binário para um número octal de 4.

Mas, além do rwx básico, existem outras letras que representam permissões adicionais a serem definidas. Essas permissões também são de 3 bits e são escritas como um número octal de quatro dígitos e são representadas assim:

Para arquivos:

0644  ==>  rw-r--r--
1644  ==>  rw-r--r-T           # sticky bit (ignored in linux)

0644  ==>  rw-r--r--
2644  ==>  rw-r-Sr--           # Group ID does not match. 
0655  ==>  rw-r-xr-x
2644  ==>  rw-r-sr-x           # Run with group ID: SGID

0644  ==>  rw-r--r--
2644  ==>  rwSr--r--           # User  ID does not match. 
0755  ==>  rwxr-xr-x
2744  ==>  rwsr-xr-x           # Run with User ID: SUID

Permissões completas (7):

$ chmod 7777 1.c; ls -l 1.c
-rwsrwsrwt 1 user user 0 Feb 13 09:01 1.c

Para diretórios:

SGID means that new files inside this dir will inherit group owner.
SUID Mostly ignored in Linux and Unix. BSD varies.
Sticky Protect files inside from being modified by a different user.

Links:
 - Sticky bit
 No Linux: o kernel do Linux ignora o bit pegajoso nos arquivos.
 Quando o bit adesivo é definido em um diretório, os arquivos nesse diretório só podem ser desvinculados ou renomeados por root ou pelo proprietário do diretório ou pelo proprietário do arquivo.
 - SetUID e SetGID
 - Diretórios e os bits Set-User-ID e Set-Group-ID  - Guia de administração do sistema: serviços de segurança

    
por 13.02.2017 / 14:55
1

Os bits extras são o set-user-ID bit, set-group-ID bit e sticky bit. Veja man 2 chmod para mais informações. O S para o bit set-user-ID é mostrado com um S maiúsculo porque o bit x correspondente não está definido.

    
por 13.02.2017 / 13:39