¿Cuál es la diferencia entre chmod u+xy just chmod +x? He visto un montón de tutoriales que dicen usar u+xpara hacer scripts ejecutables. Sin embargo, omitir el uno parece tener ningún efecto.
¿Cuál es la diferencia entre chmod u+xy just chmod +x? He visto un montón de tutoriales que dicen usar u+xpara hacer scripts ejecutables. Sin embargo, omitir el uno parece tener ningún efecto.
Respuestas:
La página del manual de chmodcubre eso.
Eso significa que chmod u+x somefilesolo otorgará permisos al propietario de la ejecución de ese archivo, mientras que chmod +x somefilees 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 filediferenciándose de chmod a+x file: vea la respuesta de Ravexina para más detalles.
Simplemente +xse aplicará a todos los indicadores: [u] ser, [g] roup, [o] thers.
Escriba man chmodpara más información.
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.
chmod +xes igual a chmod ugo+x(Basado en el umaskvalor)chmod a+xes igual a chmod ugo+x(Sin considerar el umaskvalor)El resultado de chmod a+xes establecer el bit ejecutable para todos (Propietario, Grupo, Otros), fácil ¿verdad?
Sin embargo, chmod +xcomo es un poco complicado, dice umaskvalor de uso y, en función de ese valor, agregue el valor xa todos los que están permitidos.
Entonces, si el umaskde mi entorno es 0002:
$ umask
0002
$ umask -S
u=rwx,g=rwx,o=rx
Se agregará xal usuario (propietario), grupo y otros, en esta situación (que es la situación predeterminada para la mayoría de los sistemas) es exactamente igual chmod ugo+xo igual que chmod a+x, o en una forma más detallada:
chmod u+x,g+x,o+x
¿Puedes detectar la conexión chmod u+x,g+x,o+xy la salida de umask -S?
Ahora cambiemos el umaskshell actual a 0003:
$ umask 0003
$ umask
0003
$ umask -S
u=rwx,g=rwx,o=r
Como puede ver ahora, solo el propietario y el grupo obtendrán el bit ejecutable y no los demás. Significa chmod +xque ahora es igual a chmod u+x,g+xo chmod ug+x.
¿Qué sucede si ejecuto chmod +wun archivo después de configurarlo umasken 0003?
Igual que antes, solo afecta usery groupdel archivo porque 3 también elimina el permiso de escritura (2).
Tiene el mismo efecto cuando eliminas un bit como chmod -w:
$ mkdir test
$ stat -c %A test
drwxrwxr-x
$ umask
0002
$ chmod +w test
$ stat -c %A test
drwxrwxr-x
$ chmod a+w test
$ stat -c %A test
drwxrwxrwx
$ chmod -w test
chmod: test/: new permissions are r-xr-xrwx, not r-xr-xr-x
$ stat -c %A test
dr-xr-xrwx
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 +xo chmod 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.
chmod u+x filesignifica agregar el bit ejecutable al propietario del archivo mientras se ignora el umask(Su mod se establecerá, sin duda).
chmod +x filesignifica agregar el bit ejecutable al propietario, el grupo y otros mientras considera el umask(Primero verifique y umaskluego aplique los mods, podría tener diferentes efectos según el valor de umask).
creemos dos archivos:
$ touch file1 file2
$ ls -l file1 file2
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:45 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:45 file2
Ahora me puse la umaskde "111" para eliminar los bits de ejecución: umask 111.
$ chmod u+x file1
$ chmod +x file2
$ ls -l file1 file2
-rwxrw-rw- 1 ravexina ravexina 0 Aug 5 01:47 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:47 file2
Como puede ver, el chmodignorado umasky el archivo1 obtuvieron un bit ejecutable para su propietario, sin embargo, el segundo no hizo nada porque está considerando el valor de umask.