4Jul

¿Cómo funcionan los permisos de archivos de Linux?

Si has estado usando Linux por algún tiempo( e incluso OS X) probablemente habrás encontrado un error de "permisos".Pero, ¿qué son exactamente, y por qué son necesarios o útiles? Echemos un vistazo adentro.

Permisos de usuario

Anteriormente, las computadoras eran máquinas enormes que eran increíblemente caras. Para aprovecharlos al máximo, se conectaron múltiples terminales de computadora que permitieron a muchos usuarios hacer sus negocios simultáneamente. El procesamiento de datos y el almacenamiento se realizaron en la máquina, mientras que los terminales en sí mismos eran poco más que un medio para ver e ingresar datos. Si lo piensas, es más o menos cómo accedemos a los datos en la "nube";mira el sistema Cloud MP3 de Amazon, Gmail y Dropbox, y notarás que aunque los cambios se pueden realizar localmente, todo se almacena de forma remota.

( Imagen: Zenith Z-19 terminal "tonto"; crédito: ajmexico)

Para que esto funcione, los usuarios individuales necesitan tener cuentas. Necesitan tener una sección del área de almacenamiento asignada a ellos, y necesitan poder ejecutar comandos y programas. Todos obtienen "permisos de usuario" específicos, que dictan lo que pueden y no pueden hacer, en qué lugar del sistema tienen o no tienen acceso, y qué archivos pueden y no pueden modificar. Cada usuario también se coloca en varios grupos, que otorgan o restringen el acceso posterior.

Acceso a archivos

En este extraño mundo multiusuario, ya hemos establecido límites en cuanto a lo que los usuarios pueden hacer. Pero, ¿qué pasa con lo que acceden? Bueno, cada archivo tiene un conjunto de permisos y un propietario. La designación de propietario, generalmente vinculada cuando se crea el archivo, declara a qué usuario pertenece, y solo ese usuario puede modificar sus permisos de acceso.

En el mundo de Linux, los permisos se dividen en tres categorías: leer, escribir y ejecutar. El acceso de "lectura" le permite a uno ver los contenidos de un archivo, el acceso de "escritura" le permite a uno modificar los contenidos de un archivo, y "ejecutar" le permite a uno ejecutar un conjunto de instrucciones, como un script o un programa. Cada una de estas categorías se aplica a diferentes clases: usuario, grupo y mundo."Usuario" significa el propietario, "grupo" significa cualquier usuario que está en el mismo grupo que el propietario, y "mundo" significa cualquiera y todos. Las carpetas

también se pueden restringir con estos permisos. Puede, por ejemplo, permitir que otras personas en su grupo vean directorios y archivos en su carpeta de inicio, pero no a nadie fuera de su grupo. Probablemente quiera limitar el acceso de "escritura" solo a usted, a menos que esté trabajando en un proyecto compartido de algún tipo. También puede crear un directorio compartido que permita a cualquier persona ver y modificar archivos en esa carpeta.

Cambiando Permisos en Ubuntu

GUI

Para cambiar los permisos de un archivo que posee en Ubuntu, simplemente haga clic derecho en el archivo y vaya a "Propiedades".

Puede cambiar si el Propietario, Grupo u Otros pueden leer y escribir,solo lectura, o no hacer nada. También puede marcar un cuadro para permitir la ejecución del archivo, y esto lo habilitará para el Propietario, Grupo y Otros simultáneamente.

Command-Line

También puede hacerlo a través de la línea de comandos. Vaya a un directorio que tenga archivos y escriba el siguiente comando para ver todos los archivos en una lista:

ls -al

Junto a cada archivo y directorio, verá una sección especial que describe los permisos que tiene. Se ve así:

-rwxrw-r-

r significa "leer", w significa "escribir" y x significa "ejecutar". Los directorios comenzarán con un "d "en lugar de a" - ".También notará que hay 10 espacios que tienen valor. Puede ignorar el primero, y luego hay 3 conjuntos de 3. El primer conjunto es para el propietario, el segundo conjunto es para el grupo y el último es para el mundo.

Para cambiar los permisos de un archivo o directorio, veamos la forma básica del comando chmod.

chmod [clase] [operador] [permiso] archivo

chmod [ugoa] [+ o -] [rwx] archivo

Esto puede parecer complicado al principio, pero créanme, es bastante fácil. Primero, veamos las clases:

  • u: Esto es para el propietario.
  • g: Esto es para el grupo.
  • o: Esto es para todos los demás.
  • a: Esto cambiará los permisos para todo lo anterior.

A continuación, los operadores:

  • +: el signo más agregará los permisos que siguen.
  • -: el signo menos eliminará los permisos que siguen.

¿Todavía estoy conmigo? Y la última sección es la misma que cuando verificamos los permisos de un archivo:

  • r: Permite el acceso de lectura.
  • w: permite el acceso de escritura.
  • x: permite la ejecución.

Ahora, vamos a armarlo. Digamos que tenemos un archivo llamado "todo.txt" que tiene los siguientes permisos:

-rw-rw-r-

Es decir, el propietario y el grupo pueden leer y escribir, y el mundo solo puede leer. Queremos cambiar los permisos a estos:

-rwxr--

Es decir, el propietario tiene todos los permisos y el grupo puede leer. Podemos hacer esto en 3 pasos. Primero, agregaremos el permiso de ejecución para el usuario.

chmod u + x todo.txt

Luego, eliminaremos el permiso de escritura para el grupo.

chmod g-w todo.txt

Por último, eliminaremos los permisos de lectura para todos los demás usuarios.

chmod o-r todo.txt

También podemos combinarlos en un solo comando, como sigue:

chmod u + x, g-w, o-r todo.txt

Puede ver que cada sección está separada por comas y no hay espacios.

Aquí hay algunos permisos útiles:

  • -rwxr-xr-x: el propietario tiene permisos completos, el grupo y otros usuarios pueden leer el contenido del archivo y ejecutarlo.
  • -rwxr-r-: el propietario tiene permisos completos, el grupo y otros usuarios solo pueden leer el archivo( útil si no le importa que otros vean sus archivos.
  • -rwx--: el propietario tiene permisos completos, los demás no tienen ninguno( útilpara scripts personales)
  • -rw-rw--: Propietario y grupo pueden leer y escribir( útil para la colaboración con miembros del grupo).
  • -rw-r-r-: El propietario puede leer y escribir, el grupo y otros usuarios solo puedenarchivo de lectura( útil para almacenar archivos personales en una red compartida).
  • -rw ---: el propietario puede leer y escribir, todos los demás no tienen ninguno( útil para almacenar archivos personales).

Hay algunas otras cosas que puede hacer conchmod - como setuid y setgid - pero son un poco profundos y la mayoría de los usuarios no necesitarán usarlos de todos modos.

La raíz o superusuario y los archivos de sistema

Hoy en día, no siempre ejecutamos sistemas quetener múltiples usuarios. ¿Por qué deberíamos preocuparnos por los permisos?

Bueno, Unix ysus derivados, Linux, OS X, entre otros, también distinguen entre las cosas que ejecuta el usuario, las cosas que ejecuta un administrador o con privilegios de administrador, y las cosas que ejecuta el propio sistema. Como tal, las cosas que son integrales para el sistema necesitan privilegios de administrador para ser modificado o acceder. De esta forma, no estropees nada por accidente.

En Ubuntu, para realizar cambios en los archivos del sistema, utiliza "sudo" o "gksudo" para obtener el equivalente de los privilegios de administrador. En otras distribuciones, cambia a "raíz" o el "superusuario", que efectivamente hace lo mismo hasta que cierra la sesión.

Tenga en cuenta que, en estas dos circunstancias, cambiar los permisos de archivos puede hacer que los programas no funcionen, cambiando involuntariamente la propiedad del archivo al usuario raíz( en lugar del propietario) y haciendo que el sistema sea menos seguro( otorgando más permisos).Como tal, se recomienda que no cambie los permisos para los archivos, especialmente los archivos del sistema, a menos que sea necesario o que sepa lo que está haciendo.

Los permisos de archivo están implementados para proporcionar un sistema básico de seguridad entre los usuarios. Aprender cómo funcionan puede ayudarlo a configurar el uso compartido básico en un entorno multiusuario, proteger archivos "públicos" y darle una pista sobre cuándo algo falla con la propiedad del archivo del sistema.

¿Crees que puedes explicar las cosas más fácilmente?¿Tienes una corrección?¿Quieres recordar los viejos tiempos? Tómese un descanso y reflexione en los comentarios.