Cómo obtener una lista de todos los propietarios de archivos en un directorio de Linux
Este tutorial está destinado a ayudarlo a obtener una lista de propietarios de todos los archivos en un directorio en Linux. Los comandos que se muestran aquí son universales y se espera que funcionen en cualquier distribución de Linux. Sin embargo, My Lab se basa en Ubuntu 18.04, 16.04 y CentOS 7.
Trabajar con archivos, directorios y permisos de usuario es una tarea diaria cuando se administran sistemas Linux. Casi todo en Linux es un archivo, y saber cómo verificar y cambiar la propiedad de un archivo / directorio es útil.
Enumere los propietarios de archivos en un directorio usando el comando stat
los estadística es una herramienta de línea de comandos que se utiliza para mostrar el estado del sistema de archivos o archivos en sistemas Linux / Unix. En Ubuntu y todos los sistemas basados en Debian, el comando stat lo proporciona el coreutils paquete. Si por alguna razón este paquete no está instalado, puede instalarlo usando el comando:
$ sudo apt-get -y install coreutils
En CentOS, el comando también lo proporciona el paquete coreutils que se puede instalar usando yum si falta:
$ sudo yum -y install coreutils
Una vez confirmado que el comando existe, usaremos las siguientes opciones para obtener los propietarios de los archivos en un directorio:
-C : Para especificar el formato
% U : Formato para imprimir el nombre de usuario del propietario del archivo
Entonces, la sintaxis del comando es:
stat -c %U <file>
Para todos los archivos, utilice la marca comodín *. Vea ejemplos a continuación:
$ cd ~ $ stat -c %U * jmutai jmutai jmutai
El problema con esta salida es que no existe un mapeo entre el archivo y el propietario. Necesitaremos usar conceptos de bash para mapear el archivo y el propietario. Entonces ejecutaremos un comando como el siguiente:
$ cd /dir $ files=`ls` $ for file in $files; do owner=`stat -c %C $file`; echo $file $owner; done
La salida de arriba estará en el formato
Development jmutai Documents root ping_all.sh dan examples.desktop benard
Para otras secuencias de formato válidas de estadísticas para archivos, consulte su página de manual:
$ man stat
Enumere los propietarios de archivos en un directorio usando el comando buscar
Un hallazgo es una herramienta de línea de comandos de Linux que se usa a menudo para buscar archivos en un directorio. Con algunas expresiones regulares y un comando de impresión, puede enumerar los propietarios de los archivos en un directorio
La sintaxis exacta del comando a utilizar es:
# find /dir -printf '%un'
Esto hará una búsqueda recursiva y una lista por defecto. Puede realizar un filtrado adicional, como imprimir nombres de usuario únicos para evitar duplicados. Para esto, canalice la salida al comando sort, con -u
opción:
# find /dir -printf '%un' | sort -t: -u
Para incluir la propiedad del grupo de archivos, agregue un %gramo opción en la función de impresión.
# find /dir -printf '%u:%gn' | sort -t: -u
El siguiente ejemplo imprimirá todos los nombres de usuario únicos que poseen archivos en el / var / directorio
Vea el siguiente ejemplo para nombres de usuario y grupos:
Usando el comando ls
También puede usar el comando ls para verificar el propietario de los archivos y directorios en Linux. El único problema es cómo manejar la propiedad recursiva.
# ls -lh /dir # ls -lhR /dir
Conclusión
Los tres comandos anteriores deberían ayudarlo a identificar a los propietarios de archivos y directorios en sus máquinas Linux. Si tiene otros comandos / script que cree que podemos actualizar en esta lista, no dude en compartirlos.