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, revisa 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
Comando | Permisos |
---|---|
[server]$ chmod 600 file.txt |
-rw-------
|
[server]$ chmod 700 dir |
drwx------
|
[server]$ chmod 755 file.txt |
-rwxr-xr-x
|
[server]$ chmod 644 file.txt |
-rw-r--r--
|
[server]$ chmod 664 file.txt |
-rw-rw-r--
|
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 de 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 clic 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 clic en las casillas, o escribir en el valor Numérico de los permisos que necesitas cambiar.