GNU/Linux >> Tutoriales Linux >  >> Linux

Preguntas de la entrevista de Linux:permisos básicos de archivos y directorios

¿Qué son los permisos básicos de archivos de Linux?

Linux, como UNIX, es un sistema multiusuario y los permisos de archivo son una forma en que el sistema protege contra la manipulación maliciosa. Una forma de obtener acceso cuando se le niega el permiso es usar su para rootear. Tenga en cuenta que quien conoce la contraseña de root tiene acceso completo. Pero cambiar al superusuario no siempre es conveniente o recomendable, ya que es fácil cometer errores y alterar archivos de configuración importantes como superusuario. Todos los archivos y directorios son "propiedad" de la persona que los creó. Por ejemplo, en el listado:

-rw-rw-r--    1 john   sap      150 Mar 19 08:08 file1.txt

El archivo file1.txt pertenece o es propiedad de john. Eso significa que puede especificar quién puede leer el archivo, escribir en el archivo o (si se trata de una aplicación en lugar de un archivo de texto) quién puede ejecutar el archivo. También puede controlar el acceso a los directorios de manera similar.

Leer, escribir y ejecutar son las tres configuraciones principales en los permisos. Dado que los usuarios se colocan en un grupo cuando se crean sus cuentas, también puede especificar si ciertos grupos pueden leer, escribir o ejecutar un archivo. Usando el ejemplo anterior de file1.txt, puede ver que se proporcionan muchos detalles. Puede ver quién puede leer (r) y escribir en (w) el archivo, así como quién creó el archivo (john) y a qué grupo pertenece el propietario (sap). Sin embargo, recuerda que, de forma predeterminada, el nombre de tu grupo es el mismo que tu nombre de inicio de sesión.

Otra información a la derecha del grupo incluye el tamaño del archivo, la fecha y la hora de creación del archivo y el nombre del archivo. La primera columna muestra los permisos actuales; tiene diez ranuras. La primera ranura representa el tipo de archivo. Los nueve espacios restantes son en realidad tres conjuntos de permisos para tres categorías diferentes de usuarios. Por ejemplo:

-rw-rw-r--

Esos tres conjuntos son el propietario del archivo, el grupo al que pertenece el archivo y "otros", es decir, todos los demás usuarios.

 -    (rw-)   (rw-)   (r--) 1 john sap
|      |       |       |
type  owner  group   others

El primer elemento, que especifica el tipo de archivo, normalmente muestra uno de los siguientes:

  • d - un directorio
  • – (guión) — un archivo normal (en lugar de un directorio o enlace)
  • l — un enlace simbólico a otro programa o archivo en otra parte del sistema

Más allá del primer elemento, en cada uno de los siguientes tres conjuntos, verá uno de los siguientes:

  • r — el archivo se puede leer
  • w — el archivo se puede escribir en
  • x — el archivo se puede ejecutar (si es un programa)

Cuando vea un guión en propietario, grupo u otros, significa que no se ha otorgado ese permiso en particular. Vuelva a mirar la primera columna de file1.txt e identifique sus permisos.

# ls -l file1.txt
-rw-rw-r--    1 john sap     150 Mar 19 08:08 file1.txt

El propietario del archivo (en este caso, john) tiene permiso para leer y escribir en el archivo. El grupo, sap, también tiene permiso para leer y escribir en file1.txt. No es un programa, por lo que ni el propietario ni el grupo tienen permiso para ejecutarlo. Todos los demás usuarios solo pueden leer el archivo.

¿Cómo se corresponden los bits de permisos de archivo con los valores proporcionados a chmod?

Los bits de permisos aplicados a un objeto del sistema de archivos corresponden directamente a los valores que se pueden especificar en la tupla de 4 dígitos proporcionada a la utilidad chmod en el siguiente comando:

chmod abcd [file system object]

Cada valor en el conjunto de dígitos abcd se compone de la suma de los valores 1, 2 y 4. Al sumar estos valores para cada dígito, se puede generar un valor para configurar todos los atributos del objeto de archivo:

  • un – Este dígito controla la configuración de atributos especiales. el valor 1 establece el bit setuid, el valor 2 establece el bit setgid y el valor 4 establece el bit sticky en el objeto
  • b , c y d – Estos dígitos controlan los permisos de lectura, escritura y ejecución para el propietario del archivo, el grupo principal de propietarios del archivo y todos los demás usuarios. El valor 4 habilita el permiso de lectura, el valor 2 habilita el permiso de escritura y el valor 1 habilita el permiso de ejecución.

Ejemplos

Para configurar un archivo para que sea fijo, legible y escribible por el propietario, legible por su grupo principal e inaccesible por todos los demás:

# chmod 4610 filename

Para dar todos los permisos a todos en el sistema:

# chmod 0777 filename

Para obtener más información sobre chmod, consulte la página del manual de chmod.

¿Cómo establecer permisos de archivos y directorios usando chown y chmod?

Usa el chown comando para cambiar el propietario y/o el grupo del archivo. La sintaxis es simple. Simplemente escriba chown, seguido del usuario propietario del archivo, luego, opcionalmente, dos puntos (":") y el nombre del grupo. Tenga en cuenta que los nombres de usuario y/o grupo deben existir en el sistema. Por ejemplo:

# chown john:sap file1.txt
# ls -l file1.txt
-rw-rw-r--    1 john sap     150 Mar 19 08:08 file1.txt

da como resultado que el usuario john sea el propietario del archivo. El propietario del grupo del archivo también se establece en el grupo de john, que es sap.

Utilice el comando chmod para cambiar los permisos. Este ejemplo muestra cómo cambiar los permisos en file1.txt con el comando chmod. Si es el propietario del archivo o ha iniciado sesión en la cuenta raíz, puede cambiar los permisos para el propietario, el grupo y otros. En este momento, el propietario y el grupo pueden leer y escribir en el archivo. Cualquier persona fuera del grupo solo puede leer el archivo (r–).

PRECAUCIÓN :Recuerde que los permisos de archivo son una función de seguridad. Cada vez que permite que otra persona lea, escriba y ejecute archivos, aumenta el riesgo de que los archivos sean manipulados, alterados o eliminados. Como regla general, solo debe otorgar permisos de lectura y escritura a aquellos que realmente los necesitan.

¿Cómo cambiar los permisos de archivo/directorio usando notaciones abreviadas?

En el siguiente ejemplo, desea permitir que todos escriban en el archivo, para que puedan leerlo, escribir notas en él y guardarlo. Eso significa que tendrá que cambiar la sección "otros" de los permisos del archivo. Eche un vistazo al archivo primero. En el indicador de shell, escribiría:

# ls -l file1.txt
-rw-rw-r--    1 john sap     150 Mar 19 08:08 file1.txt

Ahora, escribiría lo siguiente:

# chmod o+w file1.txt

El comando anterior le dice al sistema que desea otorgar a otros permiso de escritura en el archivo file1.txt. Para verificar los resultados, vuelva a enumerar los detalles del archivo. Ahora, el archivo se ve así:

-rw-rw-rw-    1 john sap     150 Mar 19 08:08 file1.txt

Ahora, todos pueden leer y escribir en el archivo. Para eliminar los permisos de lectura y escritura de file1.txt, use el comando chmod para eliminar los permisos de lectura y escritura.

# chmod go-rw file1.txt

Al escribir go-rw , le está diciendo al sistema que elimine los permisos de lectura y escritura para el grupo y para otros del archivo file1.txt.

El resultado se verá así:

-rw-------    1 john sap    150 Mar 19 08:08 file1.txt

Piense en esta configuración como una especie de abreviatura cuando desee cambiar los permisos con chmod, porque todo lo que tiene que hacer es recordar algunos símbolos y letras con el comando chmod. Aquí hay una lista de lo que representa la abreviatura:

Identidades

u - the user who owns the file (that is, the owner)
g - the group to which the user belongs
o - others (not the owner or the owner's group)
a - everyone or all (u, g, and o)

Permisos

r - read access
w — write access
x — execute access

Acciones

+ — adds the permission
- — removes the permission
= — makes it the only permission

Estos son algunos ejemplos comunes de configuraciones que se pueden usar con chmod:

g+w - adds write access for the group
o-rwx - removes all permissions for others
u+x - allows the file owner to execute the file
a+rw - allows everyone to read and write to the file
ug+r - allows the owner and group to read the file
g=rx - allows only the group to read and execute (not write)

¿Cómo eliminar todos los permisos para todos los usuarios que usan notaciones abreviadas?

¿Quieres poner a prueba tus habilidades de permisos? Elimina todos los permisos de file1.txt — para todos.

# chmod a-rwx file1.txt

Ahora, vea si puede leer el archivo con el comando cat file1.txt, que debería devolver lo siguiente:

cat: file1.txt: Permission denied

Al eliminar todos los permisos, incluido el suyo, se bloqueó correctamente el archivo. Pero como el archivo te pertenece, siempre puedes volver a cambiar sus permisos con el siguiente comando:

# chmod u+rw file1.txt

¿Cómo enumerar los permisos de archivos en formato octal?

Para enumerar los permisos de archivo en formato octal, use stat comando proporcionado por coreutils paquete. Para obtener permisos octales de todos los archivos y directorios en el directorio de trabajo actual, ejecute el siguiente comando:

$ stat -c "%a %n" *

Para obtener permisos octales de contenido en un directorio en particular, diga /usr/share, ejecute el siguiente comando:

$ stat -c "%a %n" /usr/share/*
755 /usr/share/aclocal
755 /usr/share/alsa
755 /usr/share/anaconda
755 /usr/share/appdata
...

Para obtener permisos octales solo para el directorio, diga /usr/share, y no el contenido dentro de él, ejecute el siguiente comando:

$ stat -c "%a %n" /usr/share/
755 /usr/share/

¿Cómo restablecer todos los permisos de archivos del sistema a los valores predeterminados en caso de que todos los permisos de archivos cambien a 777?

Accidentalmente ejecutó el siguiente comando.

# chmod -R 777 /

¿Hay alguna forma de volver a los permisos originales?

Ejecute el siguiente comando para volver a los permisos originales.

# rpm -a --setperms

Esto mostrará algunos errores, pero uno puede ignorarlos.

¿Cómo copiar los archivos con permiso específico a través de la red?

Para lograr copiar archivos con permisos específicos, se puede usar la utilidad rsync:

# rsync --chmod=u+rwx,g+rx,o+rx  testfile [email protected]:/tmp/

Esto copiará el archivo de prueba en el directorio de inicio del usuario y los permisos para el archivo copiado serían 755.


Linux
  1. Las 25 preguntas y respuestas principales de la entrevista de Linux

  2. Conceptos básicos de los permisos de archivos de Linux

  3. Linux:¿cómo establecer permisos de archivo predeterminados para todas las carpetas/archivos en un directorio?

  4. ¿Precedencia del propietario del usuario y del grupo en los permisos de archivo?

  5. UNIX/Linux:Guía para principiantes sobre permisos de archivos y directorios (umask, chmod, lectura, escritura, ejecución)

Comprender los permisos de archivos de Linux

Cómo copiar archivos y directorios en Linux

Permisos básicos de directorio de Linux y cómo verificarlos

Administre directorios y permisos de archivos con chmod Recursive

Comprender los permisos básicos de archivos y la propiedad en Linux

Preguntas de la entrevista del sistema de archivos de red de Linux (NFS)