Versão resumida:
Para poder compará-los, devemos analisá-los da mesma perspectiva, então:
-
chmod +x
é igual achmod ugo+x
(com base no valorumask
) -
chmod 755
é igual achmod u=rwx,go=rx
Explicação:
Em primeiro lugar, você deve saber que:
-
+
significa adicionar essa permissão às outras permissões que o arquivo já possui. -
=
significa ignorar todas as permissões, defini-las exatamente como eu forneço.- Assim, todo o "ler, escrever, executar, pegajoso, suid e guid" será ignorado e apenas os fornecidos serão definidos.
-
ler = 4, escrever = 2, executar = 1
-
Aqui está a lógica binária por trás dele (se você estiver interessado):
Symbolic: r-- -w- --x | 421 Binary: 100 010 001 | ------- Decimal: 4 2 1 | 000 = 0 | 001 = 1 Symbolic: rwx r-x r-x | 010 = 2 Binary: 111 101 101 | 011 = 3 Decimal: 7 5 5 | 100 = 4 / / / | 101 = 5 Owner ---/ / / | 110 = 6 Group ------/ / | 111 = 7 Others ---------/ | Binary to Octal chart
-
Usando +x
, você está dizendo para adicionar ( +
) o bit executável ( x
) ao proprietário, grupo e outros.
- é igual a
ugo+x
ouu+x,g+x,o+x
- Quando você não especificar qual deles é o proprietário, grupo ou outros, no caso de
x
, todos serão considerados. E como @Rinzwind apontou, é baseado no valorumask
, adiciona o bit aos queumask
permite. lembre-se se você especificar o alvo comoo+r
, entãoumask
não terá mais efeito algum. - Ele não toca nos outros mods (permissões).
- Você também pode usar
u+x
para adicionar apenas um bit executável ao proprietário.
Usando 755
, você está especificando:
- 7 - >
u=rwx
(4 + 2 + 1 para o proprietário) - 5 - >
g=rx
(4 + 1 para o grupo) - 5 - >
o=rx
(4 + 1 para os outros)
Então, chmod 755
é como: chmod u=rwx,g=rx,o=rx
ou chmod u=rwx,go=rx
.