Solución:
Version corta:
Para poder compararlos, debemos mirarlos desde la misma perspectiva, así:
-
chmod +x
es igual achmod ugo+x
(Residencia enumask
valor) -
chmod 755
es igual achmod u=rwx,go=rx
Explicación:
Primero debes saber que:
-
+
significa agregar este permiso a los otros permisos que ya tiene el archivo. -
=
significa ignorar todos los permisos, configurarlos exactamente como yo los proporciono.- Por lo tanto, se ignorarán todos los “read, write, execute, sticky bit, suid y guid” y solo se establecerán los proporcionados.
-
leer = 4, escribir = 2, ejecutar = 1
-
Aquí está la lógica binaria detrás de esto (si está interesado):
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
-
Utilizando +x
estás diciendo que agregue+
) el bit ejecutable (x
) al propietario, grupo y otros.
- es igual a
ugo+x
ou+x,g+x,o+x
- Cuando no especifica cuál del propietario, grupo u otros es su objetivo, en caso de
x
los considerará todos. Y como señaló @Rinzwind, se basa enumask
valor, agrega el bit a losumask
permite. recuerda si especificas el objetivo comoo+r
luegoumask
ya no tiene ningún efecto. - No toca los otros mods (permisos).
- También podrías usar
u+x
para agregar solo un bit ejecutable al propietario.
Utilizando 755
estás especificando:
- 7 ->
u=rwx
(4 + 2 + 1 para propietario) - 5 ->
g=rx
(4 + 1 para grupo) - 5 ->
o=rx
(4 + 1 para otros)
Entonces chmod 755
es como: chmod u=rwx,g=rx,o=rx
o chmod u=rwx,go=rx
.
chmod +x
agrega el permiso de ejecución para todos los usuarios a los permisos existentes.
chmod 755
establece el 755
permiso para un archivo.
755
significa permisos completos para el propietario y permiso de lectura y ejecución para otros.
Otra forma de verlo (que encuentro más fácil de entender) es que chmod +x
está configurando los permisos relativamente, mientras que chmod 755
los está poniendo absolutamente.
Después chmod 755
se ejecuta en un archivo, sus permisos voluntad ser 755, o rwxr-xr-x
.
chmod +x
simplemente tomará los permisos existentes, y agregar ejecutar permisos para el archivo.