Comandos de Unix — Cambiar permisos

Generalidades

Este artículo muestra cómo cambiar los permisos de un archivo o directorio usando SSH o FTP. Para ver las generalidades de los permisos, vé el siguiente artículo:

Cambiar permisos vía SSH

Si has iniciado sesión en tu servidor vía SSH, puedes cambiar los permisos corriendo el comando chmod. Hay dos maneras de establecer permisos usando chmod.

  • Modo numérico
  • Modo nombrado

El modo numérico es más fácil de entender pues solo debes agregar los valores.

Modo Numérico

Usar el modo numérico, puedes asignar números a casa permiso. Por ejemplo:

4 = r (leer)
2 = w (escribir)
1 = x (ejecutar)

Luego, agregarás los tres al tiempo para cada dueño para cada que cada dueño tenga su valor completo. La siguiente tabla ilustra los diferentes permisos que cada dueño posiblemente pueda tener.

7 leer, escribir y ejecutar ("rwx") 4 + 2 + 1 = 7
6 Leer y escribir ("rw-") 4 + 2 = 6
5 Leer y ejecutar ("r-x") 4 + 0 + 1 = 5
4 Solo leer ("r--") 4 + 0 + 0 = 4
3 Escribir y ejecutar (raro) ("-wx") 0 + 2 + 1 = 3
2 Solo escribir (raro) ("-w-") 0 + 2 + 0 = 2
1 Solo ejecutar (raro) ("--x") 0 + 0 + 1 = 1
0 Sin permisos ("---") 0 + 0 + 0 = 0

Recuerda, hay tres clases de combinaciones de dueños de un archivo o directorio:

  • Usuario
  • Grupo
  • Público

Todos tres tienen sus propios permisos, Así, todos tres tienen ahora que ser agregados juntos para obtener un valor completo.

Ejemplos

Command Permissions
[server]$ chmod 600 file.txt

-rw-------

  • Solo el Usuario lee y escribe permisos.
[server]$ chmod 700 dir

drwx------

  • Solo el Dueño tiene permisos de leer, escribir y ejecutar.
[server]$ chmod 755 file.txt

-rwx-wx-wx

  • El Usuario tiene permisos de leer, escribir y ejecutar.
  • El Grupo solo tiene permisos de escribir y ejecutar.
  • Todos los demás tienen permisos de escribir y ejecutar.
[server]$ chmod 644 file.txt

-rw-r--r--

  • El Usuario tiene permisos de leer y escribir
  • El Grupo tiene permisos de leer.
  • Otros tienen permisos de leer.
[server]$ chmod 664 file.txt

-rw-rw-r--

  • El Usuario tiene permisos de leer y escribir.
  • El Grupo tiene permisos de leer y escribir.
  • Otros tiene permisos solo de leer.

Mientras que los comandos de arriba sobre chmod son útiles, puede ser entendido si un usuario no quiere tener que iniciar sesión vía SSH solo para cambiar permisos en un archivo. Afortunadamente, muchos clientes FTP como FileZilla tienen la habilidad de cambiar permisos directamente con el cliente.

Modo Nombrado

Hay dos grupos de permisos a asignar cuando se usa el 'Modo Nombrado', los cuales son el 'quién' y el 'que' de los permisos. Por ejemplo:

Permisos de quién

u Cambia los bits del usuario
g Cambia los bits del grupo
o Cambia los bits de los Otros
a Cambia los bits para todos

Permisos de qué

r Da acceso a leer
w Da acceso a escribir
x Da acceso a ejecutar
s Pone un sticky bit

Usar ("+") y ("-") con la información de arriba, te permite combinar permisos de los grupos 'quién' y 'qué' para asignar los permisos exactos que deseas.

Ejemplos

El formato para usar chmod en los siguientes comandos es:

[server]$ chmod “groups”+”access” file.example

Permite a todo el mundo leer file.txt. En el siguiente ejemplo, 'a' es un bit para 'todos' y el permiso de 'r' (leer) es agregado:

[server]$ chmod a+r file.txt

Elimina todos los permisos de todos, excepto por el dueño que retiene cualquier permiso formal. En el siguiente ejemplo, 'g' es un bit de grupo, 'o' es el bit para 'otros usuarios' y el signo ("-") elimina todos los permisos (rwx):

[server]$ chmod go-rwx file.txt

El archivo llamado script.cgi ahora es ejecutable por un usuario y un grupo. En el siguiente ejemplo, 'u' es el bit de usuario, 'g' es el bit de 'grupo', y el permiso 'x' es agregado a ambos:

[server]$ chmod ug+x script.cgi

Todos los archivos creados en el directorio somrdir son propiedad del grupo que posea somedir. En el siguiente ejemplo, 'g' es el bit de grupo y la banderilla 's' es agregada a él.

[server]$ chmod g+s somedir

Permisos especiales

Los permisos especiales pueden ser agregados lo cual te permite la habilidad especial de cambiar usuarios o grupo, o especificar un directorio como directorio "temporal".

La banderilla 's'

Una 's' puede ser agregada al dueño o grupo con permisos de 'leer'. Esto indica el permiso setuid/setgid.

  • Si configuras el grupo con el permiso de leer, el configura el bit de setgid. Esto quiere decir que cualquier usuario que cambie en el directorio de plataformas repentinamente todas las acciones como si los dueños del grupo fueran los del grupo por defecto. Esto puede ser útil si quieres que todos los archivos en ese directorio puedan crear/ser propietarios de ese grupo dueño.
  • Si configuras los dueños con permisos de lectura, éste configura el bit de setuid. Esta no es normalmente una buena idea, entonces no lo hagas a menos que sepas realmente lo que estás haciendo.

La banderilla 't'

La banderilla 't' es básicamente la misma cosa que la 's' para un usuario o grupo, pero es usada cuando aplica para todos los otros. Aquí, el significado es un poco diferente. Quiere decir que cualquiera puede crear un archivo en el directorio, pero solo el propietario es capaz de eliminar ese archivo, no importan los permisos asignados. Este es el permiso al directorio "temporal" y deberá también ser ignorado a menos que sepas lo que estás haciendo.

Cambiar permisos en un cliente FTP

Si das click derecho a un archivo en un cliente FTP, podrás ver sus permisos. Por ejemplo:

Como se discutió arriba, este formato usa el Modo Numérico para configurar permisos. Solo necesitas agregar los valores para cambiarlo.

Este ejemplo usa Filezilla. Puedes dar click en las cajas, o escribir en el valor Numérico de los permisos que necesitas cambiar.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.