A diferença é que permissões são definidas e qual modo você usa para defini-las.
Com chmod +x
você define o bit executável para todos - o proprietário, o grupo de proprietários e os outros usuários. Isso é conhecido como modo simbólico. Para citar man chmod
:
O operador + faz com que os bits do modo de arquivo selecionado sejam adicionados aos bits do modo de arquivo existente de cada arquivo; - faz com que sejam removidos; e = faz com que eles sejam adicionados e faz com que os bits não mencionados sejam removidos, exceto que os bits de ID de grupo e usuário não mencionados de um diretório não são afetados.
Com chmod 755
o uso de números octais, cuja representação binária é usada para definir bits específicos de permissões. Os primeiros 3 bits (à esquerda) correspondem às permissões do proprietário, os 3 do meio às permissões do grupo e os últimos (à direita) correspondem às permissões de todos os outros usuários. A ordem dos bits é sempre a mesma read,write,execute
ou , rwx
portanto, exatamente porque a ordem é a mesma, o número individual, quando convertido em representação binária, definirá os bits de permissão para os quais o bit posicional correspondente no número é 1 e desmarca o que é 0 Especificamente:
- O número octal
7
é 111 no binário, então você está configurando todos os bits de leitura, gravação e execução para o proprietário; rwx
está definido.
- O número octal
5
é 101 no binário, então você está configurando a leitura e a execução, mas desativa os bits de gravação, e como é 5 para o grupo e outros usuários, essas duas categorias terão as mesmas permissões. Assim r-x
está definido.
Aqui está a pequena demonstração:
bash-4.3$ touch file1 file2
bash-4.3$ chmod +x file1
bash-4.3$ chmod 755 file2
bash-4.3$ ls -l file1 file2
-rwxrwxr-x 1 xieerqi xieerqi 0 7月 6 13:54 file1
-rwxr-xr-x 1 xieerqi xieerqi 0 7月 6 13:54 file2
chmod +x
define todos os sinalizadores executáveis sem alterar outras permissões.chmod 755
define rwxr-xr-x