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