¿Cuál es la diferencia entre chmod u+x
y just chmod +x
? He visto un montón de tutoriales que dicen usar u+x
para hacer scripts ejecutables. Sin embargo, omitir el u
no parece tener ningún efecto.
fuente
¿Cuál es la diferencia entre chmod u+x
y just chmod +x
? He visto un montón de tutoriales que dicen usar u+x
para hacer scripts ejecutables. Sin embargo, omitir el u
no parece tener ningún efecto.
La página del manual de chmod
cubre eso.
Eso significa que chmod u+x somefile
solo otorgará permisos al propietario de la ejecución de ese archivo, mientras que chmod +x somefile
es lo mismo que chmod a+x somefile
.
La página de manual de chmod dice:
El formato de un modo simbólico es
[ugoa...][[+-=][rwxXstugo...]...][,...]
. Se pueden dar múltiples operaciones simbólicas, separadas por comas.Una combinación de las letras 'ugoa' controla qué acceso de los usuarios al archivo cambiará: el usuario que lo posee (u), otros usuarios en el grupo del archivo (g), otros usuarios que no están en el grupo del archivo (o), o todos los usuarios (a). Si no se da ninguno de estos, el efecto es como si se diera 'a', pero los bits que se establecen en la máscara de usuario no se ven afectados.
chmod +x file
diferenciándose dechmod a+x file
: vea la respuesta de Ravexina para más detalles.Simplemente
+x
se aplicará a todos los indicadores: [u] ser, [g] roup, [o] thers.Escriba
man chmod
para más información.fuente
Requisitos
En primer lugar, le sugiero que lea estas preguntas y las respuestas vinculadas a continuación:
Le ayuda a comprender todas las partes necesarias que necesita saber.
Version corta
chmod +x
es igual achmod ugo+x
(Basado en elumask
valor)chmod a+x
es igual achmod ugo+x
(Sin considerar elumask
valor)Explicación
El resultado de
chmod a+x
es establecer el bit ejecutable para todos (Propietario, Grupo, Otros), fácil ¿verdad?Sin embargo,
chmod +x
como es un poco complicado, diceumask
valor de uso y, en función de ese valor, agregue el valorx
a todos los que están permitidos.Entonces, si el
umask
de mi entorno es0002
:Se agregará
x
al usuario (propietario), grupo y otros, en esta situación (que es la situación predeterminada para la mayoría de los sistemas) es exactamente igualchmod ugo+x
o igual quechmod a+x
, o en una forma más detallada:¿Puedes detectar la conexión
chmod u+x,g+x,o+x
y la salida deumask -S
?Ahora cambiemos el
umask
shell actual a0003
:Como puede ver ahora, solo el propietario y el grupo obtendrán el bit ejecutable y no los demás. Significa
chmod +x
que ahora es igual achmod u+x,g+x
ochmod ug+x
.¡Hora de preguntar!
¿Qué sucede si ejecuto
chmod +w
un archivo después de configurarloumask
en0003
?Igual que antes, solo afecta
user
ygroup
del archivo porque 3 también elimina el permiso de escritura (2).Prima
Tiene el mismo efecto cuando eliminas un bit como
chmod -w
:fuente
chmod u+x
hará que el archivo sea ejecutable para su usuario (solo lo agregará para su usuario, aunque ya puede ser ejecutable por el propietario del grupo u "otro").chmod +x
ochmod a+x
('todo más bit ejecutable') hace que el archivo sea ejecutable por todos.Si hace esto a un directorio, en su lugar, se puede buscar el directorio. Es decir, puede enumerar el contenido de un directorio para el que tiene permiso + x.
fuente
chmod u+x file
significa agregar el bit ejecutable al propietario del archivo mientras se ignora elumask
(Su mod se establecerá, sin duda).chmod +x file
significa agregar el bit ejecutable al propietario, el grupo y otros mientras considera elumask
(Primero verifique yumask
luego aplique los mods, podría tener diferentes efectos según el valor de umask).creemos dos archivos:
Ahora me puse la
umask
de "111" para eliminar los bits de ejecución:umask 111
.Como puede ver, el
chmod
ignoradoumask
y el archivo1 obtuvieron un bit ejecutable para su propietario, sin embargo, el segundo no hizo nada porque está considerando el valor de umask.fuente