Cómo obtener permisos de archivos octales desde la línea de comandos en Mac OS
Tabla de contenido:
Los usuarios de la línea de comandos probablemente estén familiarizados con el uso de chmod para establecer permisos de archivos en formato numérico u octal, por ejemplo, ejecutar un comando como 'chmod 755 filename', pero ¿alguna vez se ha preguntado cómo puede obtener permisos de archivos? en formato octal?
Si desea ver el valor numérico octal de los permisos de cualquier archivo o carpeta a través de la línea de comando, puede usar el comando stat en Mac OS para hacerlo.
Suponemos que tiene un nivel razonable de experiencia y comodidad en la línea de comandos, si no es así, es probable que este artículo no sea relevante para usted. La mayoría de los usuarios de Mac solo verán o cambiarán los permisos de archivos a través del Mac Finder como se describe en otra parte (si es que eso ocurre), mientras que este artículo en particular está dirigido a usuarios más avanzados.
Cómo obtener valores numéricos de permisos chmod en la Mac
Para comenzar, inicie la aplicación Terminal desde /Aplicaciones/ en la Mac y use los siguientes comandos:
stat -f %A archivo.txt
Por ejemplo, ese comando puede generar algo como lo siguiente:
$ stat -f %A wget-1.18.tar.gz 644
Donde, en este ejemplo, '644' es el valor octal de los permisos de ese archivo.
Alternativamente, puede usar -f y %OLp (sí, es una 'o' mayúscula y no un cero), el resultado será el mismo suponiendo que el archivo también lo sea:
stat -f %OLp /Aplicaciones/Sistema\ Preferencias.app
La salida de ejemplo para ese comando puede parecerse a la siguiente, mostrando los permisos de valor octal numérico para el elemento de destino:
"$ stat -f %OLp>"
En este ejemplo, la aplicación "Preferencias del sistema" tiene un valor de permisos octales de 775.
No debería necesitar usar comillas, aunque si por alguna razón necesita escapar de un nombre de archivo o ruta, o para propósitos de secuencias de comandos, son fáciles de colocar así:
"stat -f %OLp>"
La marca -f es para el formato, puede consultar las opciones de formato específicas para la salida de estadísticas desde la página del manual en stat con 'man stat'.
En el último caso de comando, la “O” (o mayúscula) es específicamente para lograr una salida octal.
Conocer los permisos numéricos exactos de un archivo o carpeta es tremendamente útil por muchas razones, y puede ser útil saber esto si está ajustando los permisos de varios elementos, o incluso si está está moviendo archivos en la Mac y desea mantener los permisos exactos y verificarlos después del hecho. También hay muchos otros usos, especialmente si está ejecutando un servidor de cualquier tipo desde la Mac.
Estos comandos deberían funcionar igual para recuperar permisos octales en casi cualquier versión de macOS, MacOS o Mac OS X, independientemente de cómo se escriba en mayúscula la convención de nomenclatura. Sin embargo, cabe destacar que el enfoque para obtener permisos octales en la Mac es diferente del resto del mundo Linux, por lo tanto, si viene a la Mac desde el mundo Linux, deberá ajustar los indicadores de comando stat para obtener con precisión los permisos en formato octal, lo cubriremos rápidamente a continuación.
Obtención de permisos de archivos octales desde la línea de comandos en Linux
Para ser minuciosos, también analizaremos brevemente cómo obtener valores de permisos octales en el mundo Linux, donde puede usar lo siguiente para obtener los permisos de archivos octales:
"stat -c %a %n /Ruta/Al/Archivo"
También puede utilizar de forma más sencilla el comando stat -c:
stat -c %a /Ruta/Al/Archivo.txt
La salida del valor numérico será la misma independientemente, siempre que el archivo de destino introducido sea el mismo, por supuesto.
Nuevamente, estos dos últimos enfoques son específicos de Linux, y deberá usar los métodos descritos más arriba para obtener los valores octales de los permisos de un archivo en Mac OS.
¿Conoce otros métodos o enfoques para recuperar el valor numérico de los permisos de archivos en una Mac? ¡Compártelos en los comentarios a continuación!