Saltar al contenido

¿Qué es una X mayúscula en posix / chmod?

Intenta comprender el código de forma correcta previamente a adaptarlo a tu trabajo y si tdeseas aportar algo puedes compartirlo con nosotros.

Solución:

La página de manual dice:

ejecutar/buscar solo si el archivo es un directorio o ya tiene permiso de ejecución para algún usuario (X)

POSIX dice:

El permanente símbolo X representará la parte de ejecución/búsqueda de los bits de modo de archivo si el archivo es un directorio o si los bits de modo de archivo actual (sin modificar) tienen al menos uno de los bits de ejecución (S_IXUSR, S_IXGRP o S_IXOTH) establecido. Se ignorará si el archivo no es un directorio y ninguno de los bits de ejecución está establecido en los bits de modo de archivo actual.

Este es un indicador de permiso condicional: chmod mira lo que sea que esté procesando actualmente, y si es un directorio, o si tiene algún bit de ejecución establecido en sus permisos actuales (propietario, grupo u otro), actúa como si el permiso solicitado fuera x, de lo contrario lo ignora. La condición se verifica en el momento chmod aplica lo específico X instrucción, por lo que puede borrar los bits de ejecución en la misma ejecución con a-x,a=rwX para configurar solo el bit ejecutable en los directorios.

Puede ver si un archivo tiene un bit de ejecución establecido mirando la parte de “acceso” de statla salida de , o la primera columna de ls -l. Los bits de ejecución están representados por x. -rwxr-xr-x es común para ejecutables e indica que el bit ejecutable está configurado para el propietario, el grupo y otros usuarios; -rw-r--r-- es común para otros archivos e indica que el bit ejecutable no está establecido (pero el bit de lectura está establecido para todos y el bit de escritura para el propietario). Consulte Descripción de los permisos de UNIX y sus attributes que tiene mucho más detalle.

Así en tu ejemplo, u=rwX establece los permisos de propietario para leer y escribir en todos los casos, y para directorios y archivos ejecutables, ejecutar; igualmente para el grupo (g=rX) y otra (o=rX), leer y ejecutar para directorios y archivos ejecutables.

La intención de este operador es permitir que el usuario dé chmod una variedad de archivos y directorios, y obtener los permisos de ejecución correctos (suponiendo que ninguno de los archivos tuviera un conjunto de bits de ejecución no válido). Evita tener que distinguir entre archivos y directorios (como en el tradicional find . -type f -exec chmod 644 + y find . -type d -exec chmod 755 + comandos), e intenta tratar con los ejecutables de una manera sensata.

(Tenga en cuenta que macOS chmod aparentemente solo apoya X por + operaciones.)

Desde el man chmod :

Las letras rwxXst seleccionan bits de modo de archivo para los usuarios afectados: leer (r), escribir (w), ejecutar (o buscar directorios) (x), ejecutar/buscar solo si el archivo es un directorio o ya tiene permiso de ejecución para algún usuario (X), establezca el ID de usuario o grupo en la ejecución (s), el indicador de eliminación restringida o el bit adhesivo (t).

(énfasis mío).

Sin embargo, eso no lo aclara mucho. Este artículo tiene las dos reglas que aclaran lo que hace:


Por ejemplo, emitimos el siguiente comando chmod en un directorio:

# chmod -R u=rwX,g=rX,o=rX testdir/`  

Usando la X mayúscula, el comando anterior establece el ejecutable attribute de acuerdo con las dos reglas siguientes:

  1. Si el archivo es un directorio, establece el ejecutable attribute para el propietario, grupo y mundo, lo que significa que pueden ingresar a este directorio.

  2. Si el archivo es un archivo normal, agregará el ejecutable attribute a sus permisos, si el archivo ya tiene algún conjunto de bits de ejecución. Si el archivo no tiene un conjunto de bits de ejecución, no se agregará ninguno.

Usando la x minúscula sería imposible lograr este resultado con un solo comando.


Espero que aclare el usar de X.

Sección de Reseñas y Valoraciones

Tienes la opción de secundar nuestra investigación fijando un comentario o dejando una puntuación te estamos eternamente agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *