SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Permisos y derechos en Linux
Cuántos de nosotros hemos tenido la necesidad de “limitar el acceso” a los archivos contenidos en
determinado directorio/carpeta o simplemente necesitamos evitar que algunas personas vean,
eliminen o modifiquen el contenido de determinado archivo? Más de uno, verdad? Podremos
lograrlo en nuestro amado pingüino? La respuesta es: por supuesto que sí:D.
Introducción
Muchos de los que provenimos de Windows, estábamos acostumbrados a lidiar con esta
“problemática” de una manera muy diferente, para conseguir este objetivo teníamos que recurrir
a “técnicas” poco ortodoxas, como, ocultar el fichero por medio de sus atributos, mover nuestra
información al lugar más recóndito de nuestro equipo (dentro de 20,000 carpetas) para tratar de
disuadir a nuestro “enemigo” XD, cambiando o eliminando la extensión del archivo, o la más
“común” de las practicas, descargar un programa que nos permita “cerrar” nuestro directorio
detrás de un lindo cuadro de dialogo que nos pida una contraseña para acceder al mismo.
Teníamos otra alternativa mucho mejor? No.
Lo siento mucho por mis amigos “Windoleros” (lo digo con mucho cariño para que nadie se
ofenda, ok? ;)), pero hoy me toca ensañarme un poquito con Windows :P, ya que explicare el
porqué este SO no permite de manera nativa esta funcionalidad.
Cuántos de ustedes habrán notado que cuando nos sentamos detrás de un equipo “Windows”
(aunque no sea el nuestro) nos convertimos automáticamente en dueños de todo aquello que
contiene el ordenador (imágenes, documentos, programas, etc.)? A que me refiero? Bueno, a que
simplemente al tomar el “control de Windows”, podemos copiar, mover, eliminar, crear, abrir o
modificar carpetas y archivos a diestra y siniestra, independientemente si nosotros somos los
“dueños” de esta información o no. Esto refleja un gran fallo en la seguridad del sistema
operativo, verdad? Bueno, todo esto se debe a que los sistemas operativos de Microsoft no fueron
diseñados desde el inicio para ser multiusuario. Cuando se lanzaron las versiones de MS-DOS y
algunas versiones de Windows, confiaban plenamente en que el usuario final sería el responsable
de “custodiar” su respectivo equipo para que ningún otro usuario tuviera acceso a la información
almacenada en el mismo… vaya ingenuidad ¬¬. Ahora amigos WinUsers, ya saben el porquéha
este “misterio” :D.
A contrapartida, GNU/Linux, al ser un sistema diseñado fundamentalmente para trabajo en red, la
seguridad de la información que almacenemos en nuestros equipos (y no se diga en los servidores)
es fundamental, ya que muchos usuarios tendrán o podrán tener acceso a parte de los recursos de
software (tanto aplicaciones como información) y hardware que están gestionados en estos
ordenadores.
Ahora podemos ver porque la necesidad de un sistema de permisos? Adentrémonos en el tema ;).
En GNU/Linux, los permisos o derechos que los usuarios pueden tener sobre determinados
archivos contenidos en él se establecen en tres niveles claramente diferenciados. Estos tres
niveles son los siguientes:
<° Permisos del propietario.
<° Permisos del grupo.
<° Permisos del resto de usuarios (o también llamados “los otros”).
Para tener claros estos conceptos, en los sistemas en red (como lo es el pingüino) siempre existe la
figura del administrador, superusuario o root. Este administrador es el encargado de crear y dar de
baja a usuarios, así como también, de establecer los privilegios que cada uno de ellos tendrá en el
sistema. Estos privilegios se establecen tanto para el directorio HOME de cada usuario como para
los directorios y archivos a los que el administrador decida que el usuario pueda acceder.
Permisos del propietario
El propietario es aquel usuario que genera o crea un archivo/carpeta dentro de su directorio de
trabajo (HOME), o en algún otro directorio sobre el que tenga derechos. Cada usuario tiene la
potestad de crear, por defecto, los archivos que quiera dentro de su directorio de trabajo. En
principio, él y solamente él será el que tenga acceso a la información contenida en los archivos y
directorios que hay en su directorio HOME.
Permisos del grupo
Lo más normal es que cada usuario pertenezca a un grupo de trabajo. De esta forma, cuando se
gestiona un grupo, se gestionan todos los usuarios que pertenecen a éste. Es decir, es más fácil
integrar varios usuarios en un grupo al que se le conceden determinados privilegios en el sistema,
que asignar los privilegios de forma independiente a cada usuario.
Permisos del resto de usuarios
Por último, también los privilegios de los archivos contenidos en cualquier directorio, pueden
tenerlos otros usuarios que no pertenezcan al grupo de trabajo en el que está integrado el archivo
en cuestión. Es decir, a los usuarios que no pertenecen al grupo de trabajo en el que está el
archivo, pero que pertenecen a otros grupos de trabajo, se les denomina resto de usuarios del
sistema.
Muy lindo, pero como puedo identificar todo esto? Sencillo, abre una terminal y realiza lo
siguiente:
$ ls -l
Nota: son letras “L” minúsculas ;)
Nos aparecerá algo como lo siguiente:
Como podrán observar, este comando despliega o “lista” el contenido de mi HOME, lo que nos
ocupa son las líneas de color rojo y verde. El recuadro de color rojo, nos muestra quien es
propietario y el recuadro de color verde indica a qué grupo pertenece cada uno de los archivos y
carpetas anteriormente listadas. En este caso tanto el propietario y el grupo se llaman “perseo”,
pero bien pudieron haberse encontrado con un grupo distinto como pudiera ser “ventas”. Por lo
demás, no se preocupen por ahora, lo veremos más adelante :D.
Tipos de permisos en GNU/Linux
Antes de aprender cómo se establecen los permisos en GNU/Linux, debemos saber cómo se
pueden diferenciar los diferentes tipos de archivos que el sistema puede tener.
Cada archivo en GNU/Linux queda identificado por 10 caracteres mismos a los que se les
denomina máscara. De estos 10 caracteres, el primero (de izquierda a derecha) hace referencia al
tipo de archivo. Los 9 siguientes, de izquierda a derecha y en bloques de 3, hacen referencia a los
permisos que se le conceden, respectivamente, al propietario, al grupo y al resto u otros. Una
captura para demostrar todo este rollo:
El primer carácter de los archivos puede ser el siguiente:
Permiso

Identifica

-

Archivo

d

Directorio

b

Archivo de bloques especiales (Archivos especiales de dispositivo)

c

Archivo de caracteres especiales (Dispositivo tty, impresora…)

l

Archivo de vinculo o enlace (soft/symbolic link)

p

Archivo especial de cauce (pipe o tubería)

Los siguientes nueve caracteres son los permisos que se les concede a los usuarios del sistema.
Cada tres caracteres, se referencian los permisos de propietario, grupo y resto de usuarios.
Los caracteres que definen estos permisos son los siguientes:
Permiso

Identifica

-

Sin permiso

r

Permiso de lectura

w

Permiso de escritura

x

Permiso de ejecución

Permisos para archivos
<° Lectura: permite, fundamentalmente, visualizar el contenido del archivo.
<° Escritura: permite modificar el contenido del archivo.
<° Ejecución: permite ejecutar el archivo como si de un programa ejecutable se tratase.
Permisos para directorios
<° Lectura: Permite saber qué archivos y directorios contiene el directorio que tiene este permiso.
<° Escritura: permite crear archivos en el directorio, bien sean archivos ordinarios o nuevos
directorios. Se pueden borrar directorios, copiar archivos en el directorio, mover, cambiar el
nombre, etc.
<° Ejecución: permite situarse sobre el directorio para poder examinar su contenido, copiar
archivos de o hacia él. Si además se dispone de los permisos de escritura y lectura, se podrán
realizar todas las operaciones posibles sobre archivos y directorios.
Nota: Si no se dispone del permiso de ejecución, no podremos acceder a dicho directorio (aunque
utilicemos el comando “cd”), ya que esta acción será denegada. También permite delimitar el uso
de un directorio como parte de una ruta (como cuando pasamos la ruta de un archivo que se
encuentra en dicho directorio como referencia. Supongamos que queremos copiar el archivo
“X.ogg” el cual se encuentra en la carpeta “/home/perseo/Z” -para lo cual la carpeta “Z” no tiene
permiso de ejecución-, haríamos lo siguiente:
$ cp /home/perseo/Z/X.ogg /home/perseo/Y/
obteniendo con esto un mensaje de error diciéndonos que no tenemos los permisos suficientes
para acceder al archivo :D). Si el permiso de ejecución de un directorio está desactivado, se podrá
ver su contenido (si se cuenta con permiso de lectura), pero no se podrá acceder a ninguno de los
objetos contenidos en él, pues para ello este directorio es parte del camino necesario para
resolver la ubicación de sus objetos.
Gestión de permisos en GNU/Linux
Hasta ahora, hemos visto para que nos sirven los permisos en GNU/Linux, a continuación veremos
cómo asignar o restar permisos o derechos.
Antes de comenzar, debemos de tener en cuenta que cuando damos de alta o creamos un usuario
en el sistema, le concedemos de forma automática unos privilegios. Estos privilegios, por
supuesto, no serán totales, es decir, los usuarios no dispondrán, normalmente, de los mismos
permisos y derechos del superusuario. Cuando el usuario se crea, el sistema genera por defecto
los privilegios del usuario para manejo de archivos y para manejo de directorios. Evidentemente,
éstos pueden ser modificados por el administrador, pero el sistema genera unos privilegios más o
menos válidos para la mayoría de las operaciones que cada usuario realizará sobre su directorio,
sus archivos y sobre los directorios y archivos del resto de usuarios. Por lo general, son los
siguientes permisos:
<° Para archivos: - rw- r-- r-<° Para directorios: - rwxrwxrwx
Nota: no son los mismos permisos para todas las distribuciones de GNU/Linux.
Estos privilegios nos permiten crear, copiar y borrar archivos, crear nuevos directorios, etc.
Veamos en la práctica todo esto :D:

Tomemos como ejemplo el archivo “CSS Avanzado.pdf”. Observemos que aparece de la siguiente
manera: -rw-r--r-- … CSS Avanzado.pdf. Miremos más a fondo.
Tipo

Usuario

Grupo

Resto de usuarios (otros)

Nombre del archivo

-

rw-

r--

r--

CSS Avanzado.pdf

Esto significa que:
<° Tipo: Archivo
<° El usuario puede: Leer (visualizar el contenido) y escribir (modificar) el archivo.
<° El grupo al que pertenece el usuario puede: Leer (únicamente) el archivo.
<° Otros usuarios pueden: Leer (únicamente) el archivo.
Para aquellos curiosos que se están preguntando en estos momentos a que se refieren los otros
campos del listado obtenido por ls -l, aquí la respuesta:
Si desean saber más acerca de los hard y soft/symbolic links, aquí la explicación y susdiferencias.
Bueno amigos, llegamos a la parte más interesante y pesada del tema en cuestión…
Asignación de permisos
El comando chmod (“changemode”) permite modificar la máscara para que se puedan realizar
más o menos operaciones sobre archivos o directorios, dicho de otra forma, con chmod puedes
quitar o eliminar derechos a cada tipo de usuarios. Si no se especifica el tipo de usuario al que
queremos quitar, poner o asignar privilegios, lo que sucederá al realizar la operación es afectar a
todos los usuarios simultáneamente.
Lo básico que hay que recordar es que le demos dar o quitar permisos en estos niveles:
Parámetro

Nivel

Descripción

u

dueño

dueño del archivo o directorio

g

grupo

grupo al que pertenece el archivo

o

otros

todos los demás usuarios que no son el dueño ni del grupo

Tipos de permiso:
Permiso

Identifica
r

Permiso de lectura

w

Permiso de escritura

x

Permiso de ejecución

Dar permiso de ejecución al dueño:
$ chmodu+x komodo.sh
Quitar permiso de ejecución a todos los usuarios:
$ chmod -x komodo.sh
Dar permiso de lectura y escritura a los demás usuarios:
$ chmodo+r+w komodo.sh
Dejar solo permiso de lectura al grupo al que pertenece el archivo:
$ chmodg+r-w-x komodo.sh
Permisos en formato numérico octal
Hay otra forma de utilizar el comando chmod que, para muchos usuarios, resulta “más cómoda”,
aunque a priori sea algo más compleja de entender ¬¬.
La combinación de valores de cada grupo de los usuarios forma un número octal, el bit “x” es 20 es
decir 1, el bit w es 21 es decir 2, el bit r es 22 es decir 4, tenemos entonces:
<° r = 4
<° w = 2
<° x = 1
La combinación de bits encendidos o apagados en cada grupo da ocho posibles combinaciones de
valores, es decir la suma de los bits encendidos:
Permiso

Valor Octal

Descripción

---

0

no se tiene ningún permiso
--x

1

solo permiso de ejecución

-w-

2

solo permiso de escritura

-wx

3

permisos de escritura y ejecución

r--

4

solo permiso de lectura

r-x

5

permisos de lectura y ejecución

rw-

6

permisos de lectura y escritura

rwx

7

todos los permisos establecidos, lectura, escritura y ejecución

Cuando se combinan los permisos del usuario, grupo y otros, se obtienen un número de tres cifras
que conforman los permisos del archivo o del directorio. Ejemplos:
Permiso

Valor

Descripción

rw- --- -–

600

El propietario tiene permisos de lectura y escritura

rwx --x --x

711

El propietario lectura, escritura y ejecución, el grupo y otros solo ejecución

rwx r-x r-x

755

El propietario lectura, escritura y ejecución, el grupo y otros pueden leer y ejecutar
el archivo

rwxrwxrwx

777

El archivo puede ser leído, escrito y ejecutado por quien sea

r-- --- -–

400

Solo el propietario puede leer el archivo, pero ni el mismo puede modificarlo o
ejecutarlo y por supuesto ni el grupo ni otros pueden hacer nada en el
rw- r-- ---

640

El usuario propietario puede leer y escribir, el grupo puede leer el archivo y otros
no pueden hacer nada

Permisos especiales
Aún hay otro tipo de permisos que hay que considerar. Se trata del bit de permisos SUID (Set User
ID), el bit de permisos SGID (Set Group ID) y el bit de permisos de persistencia (sticky bit).
setuid
El bit setuid es asignable a ficheros ejecutables, y permite que cuando un usuario ejecute dicho
fichero, el proceso adquiera los permisos del propietario del fichero ejecutado. El ejemplo más
claro de fichero ejecutable y con el bit setuid es:
$ su
Podemos ver que el bit está asignado como “s” en la siguiente captura:

Para asignar este bit a un fichero seria:
$ chmodu+s /bin/su
Y para quitarlo:
$ chmod u-s /bin/su
Nota: Debemos utilizar este bit con extremo cuidado ya que puede provocar una escalada de
privilegios en nuestro sistema ¬¬.
setgid
El bit setid permite adquirir los privilegios del grupo asignado al fichero, también es asignable a
directorios. Esto será muy útil cuando varios usuarios de un mismo grupo necesiten trabajar con
recursos dentro de un mismo directorio.
Para asignar este bit hacemos lo siguiente:
$ chmodg+s /carpeta_compartida
Y para quitarlo:
$ chmod g-s /carpeta_compartida
sticky
Este bit suele asignarse en directorios a los que todos los usuarios tienen acceso, y permite evitar
que un usuario pueda borrar ficheros/directorios de otro usuario dentro de ese directorio, ya que
todos tienen permiso de escritura.
Podemos ver que el bit está asignado como “t” en la siguiente captura:
Para asignar este bit hacemos lo siguiente:
$ chmodo+t /tmp
Y para quitarlo:
$ chmod o-t /tmp
Bueno amigos, ahora ya saben cómo proteger de mejor manera su información, con esto espero
que dejen de buscar alternativas para Folder Lock o Folder Guard que en GNU/Linux no los
necesitamos para nada XD.

Weitere ähnliche Inhalte

Was ist angesagt?

Capitulo 4 de windows 7 (2010 2011) web
Capitulo 4 de windows 7  (2010 2011) webCapitulo 4 de windows 7  (2010 2011) web
Capitulo 4 de windows 7 (2010 2011) webALECOXSDB
 
Sistema de archivos mafe
Sistema de archivos mafeSistema de archivos mafe
Sistema de archivos mafeMafe2408
 
4 file ownerships and permissions
4 file ownerships and permissions4 file ownerships and permissions
4 file ownerships and permissionscyberleon95
 
Sistema de archivos
Sistema de archivosSistema de archivos
Sistema de archivosadrii_roa
 
Administracion del sistema de archivos
Administracion del sistema de archivosAdministracion del sistema de archivos
Administracion del sistema de archivosFranke Boy
 
Llamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficherosLlamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficherosCamilo Pacheco
 
Controladoras de perifericos ana
Controladoras de perifericos anaControladoras de perifericos ana
Controladoras de perifericos anaanabelffffff
 
Administracion de archivos
Administracion de archivosAdministracion de archivos
Administracion de archivosAehp666
 
A D M I N I S T R A D O R D E A R C H I V O S
A D M I N I S T R A D O R  D E  A R C H I V O SA D M I N I S T R A D O R  D E  A R C H I V O S
A D M I N I S T R A D O R D E A R C H I V O Smartin
 

Was ist angesagt? (17)

Capitulo 4 de windows 7 (2010 2011) web
Capitulo 4 de windows 7  (2010 2011) webCapitulo 4 de windows 7  (2010 2011) web
Capitulo 4 de windows 7 (2010 2011) web
 
Sistema de archivos mafe
Sistema de archivos mafeSistema de archivos mafe
Sistema de archivos mafe
 
4 file ownerships and permissions
4 file ownerships and permissions4 file ownerships and permissions
4 file ownerships and permissions
 
Trabajo
Trabajo Trabajo
Trabajo
 
Sistema de archivos
Sistema de archivosSistema de archivos
Sistema de archivos
 
Yayis 10 a [1].
Yayis 10 a [1].Yayis 10 a [1].
Yayis 10 a [1].
 
Administracion del sistema de archivos
Administracion del sistema de archivosAdministracion del sistema de archivos
Administracion del sistema de archivos
 
Redes Locales 6
Redes Locales 6Redes Locales 6
Redes Locales 6
 
Clase 1 b
Clase 1 bClase 1 b
Clase 1 b
 
Llamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficherosLlamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficheros
 
Sistema de archivos
Sistema de archivosSistema de archivos
Sistema de archivos
 
Consola 2
Consola 2Consola 2
Consola 2
 
Controladoras de perifericos ana
Controladoras de perifericos anaControladoras de perifericos ana
Controladoras de perifericos ana
 
Administracion de archivos
Administracion de archivosAdministracion de archivos
Administracion de archivos
 
Administrar archivos y permisos ntfs
Administrar archivos y permisos ntfsAdministrar archivos y permisos ntfs
Administrar archivos y permisos ntfs
 
Permisos ntfs
Permisos ntfsPermisos ntfs
Permisos ntfs
 
A D M I N I S T R A D O R D E A R C H I V O S
A D M I N I S T R A D O R  D E  A R C H I V O SA D M I N I S T R A D O R  D E  A R C H I V O S
A D M I N I S T R A D O R D E A R C H I V O S
 

Andere mochten auch

Permisos De Archivos Linux
Permisos De Archivos LinuxPermisos De Archivos Linux
Permisos De Archivos Linuxmonica523
 
Taller Para Linux User Permisos
Taller Para Linux User PermisosTaller Para Linux User Permisos
Taller Para Linux User PermisosEdgar Sandoval
 
Permisos linux
Permisos linuxPermisos linux
Permisos linuxSaregune
 
Permisos de linux
Permisos de linuxPermisos de linux
Permisos de linuxbat1820
 
Integrando Centos4.4 Con Active Directory
Integrando Centos4.4 Con Active DirectoryIntegrando Centos4.4 Con Active Directory
Integrando Centos4.4 Con Active DirectoryITSanchez
 
Permisos basicos linux
Permisos basicos linuxPermisos basicos linux
Permisos basicos linuxeclipsotol
 
Comandos permisos linux centos
Comandos permisos linux centosComandos permisos linux centos
Comandos permisos linux centosche_carlitos
 
Permisos y ficheros en linux
Permisos y ficheros en linuxPermisos y ficheros en linux
Permisos y ficheros en linuxelkinvillasz
 
Taller permisos de archivos y directorios ubuntu
Taller permisos de archivos y directorios ubuntuTaller permisos de archivos y directorios ubuntu
Taller permisos de archivos y directorios ubuntuJose Diaz Silva
 

Andere mochten auch (13)

Permisos De Archivos Linux
Permisos De Archivos LinuxPermisos De Archivos Linux
Permisos De Archivos Linux
 
Taller Para Linux User Permisos
Taller Para Linux User PermisosTaller Para Linux User Permisos
Taller Para Linux User Permisos
 
Permisos linux
Permisos linuxPermisos linux
Permisos linux
 
Java util
Java utilJava util
Java util
 
Permisos de linux
Permisos de linuxPermisos de linux
Permisos de linux
 
Integrando Centos4.4 Con Active Directory
Integrando Centos4.4 Con Active DirectoryIntegrando Centos4.4 Con Active Directory
Integrando Centos4.4 Con Active Directory
 
18 permisos linuxasoitsonp
18 permisos linuxasoitsonp18 permisos linuxasoitsonp
18 permisos linuxasoitsonp
 
Usuarios grupospermisos
Usuarios grupospermisosUsuarios grupospermisos
Usuarios grupospermisos
 
Los permisos en linux
Los permisos en linuxLos permisos en linux
Los permisos en linux
 
Permisos basicos linux
Permisos basicos linuxPermisos basicos linux
Permisos basicos linux
 
Comandos permisos linux centos
Comandos permisos linux centosComandos permisos linux centos
Comandos permisos linux centos
 
Permisos y ficheros en linux
Permisos y ficheros en linuxPermisos y ficheros en linux
Permisos y ficheros en linux
 
Taller permisos de archivos y directorios ubuntu
Taller permisos de archivos y directorios ubuntuTaller permisos de archivos y directorios ubuntu
Taller permisos de archivos y directorios ubuntu
 

Ähnlich wie Permisos y derechos en Linux: guía completa

Administración de usuarios y permisos de archivos en ubuntu
Administración de usuarios y permisos de archivos en ubuntuAdministración de usuarios y permisos de archivos en ubuntu
Administración de usuarios y permisos de archivos en ubunturiveravega12
 
Apuntes de-linux-8-nov-16-3
Apuntes de-linux-8-nov-16-3Apuntes de-linux-8-nov-16-3
Apuntes de-linux-8-nov-16-3Steffany Sanchez
 
Apuntes de linux 8 nov 16 1
Apuntes de linux  8 nov 16 1Apuntes de linux  8 nov 16 1
Apuntes de linux 8 nov 16 1Angel Rene
 
Guía G GT1. Administración de Archivos.
Guía G GT1. Administración de Archivos. Guía G GT1. Administración de Archivos.
Guía G GT1. Administración de Archivos. Juan Rodriguez
 
330884555 apuntes-de-linux-8-nov-16
330884555 apuntes-de-linux-8-nov-16330884555 apuntes-de-linux-8-nov-16
330884555 apuntes-de-linux-8-nov-16Kevin Owen Tajia
 
Conceptos y comandos básicos de linux
Conceptos y comandos básicos de linuxConceptos y comandos básicos de linux
Conceptos y comandos básicos de linuxTicsUtr
 
Sistema de archivo. rober cardenas, fabio montejo
Sistema de archivo. rober cardenas, fabio montejoSistema de archivo. rober cardenas, fabio montejo
Sistema de archivo. rober cardenas, fabio montejoLeo10219
 
Guia #1 sistema de archivos barrera avendaño
Guia #1 sistema de archivos barrera avendañoGuia #1 sistema de archivos barrera avendaño
Guia #1 sistema de archivos barrera avendañoNatalia Barrera A
 
Chuleta-comandos-Linux-para-no-perderse.pdf
Chuleta-comandos-Linux-para-no-perderse.pdfChuleta-comandos-Linux-para-no-perderse.pdf
Chuleta-comandos-Linux-para-no-perderse.pdfGabrielLv2
 
Practica 1 unidad 5
Practica 1 unidad 5Practica 1 unidad 5
Practica 1 unidad 5Juan Lopez
 
Sistema de archivo
Sistema de archivoSistema de archivo
Sistema de archivomayerliroa
 

Ähnlich wie Permisos y derechos en Linux: guía completa (20)

Siller
SillerSiller
Siller
 
SISTEMAS OPERATIVOS INFORME 4
SISTEMAS OPERATIVOS INFORME 4SISTEMAS OPERATIVOS INFORME 4
SISTEMAS OPERATIVOS INFORME 4
 
Administración de usuarios y permisos de archivos en ubuntu
Administración de usuarios y permisos de archivos en ubuntuAdministración de usuarios y permisos de archivos en ubuntu
Administración de usuarios y permisos de archivos en ubuntu
 
Apuntes de-linux-8-nov-16-3
Apuntes de-linux-8-nov-16-3Apuntes de-linux-8-nov-16-3
Apuntes de-linux-8-nov-16-3
 
Apuntes de linux 8 nov 16 1
Apuntes de linux  8 nov 16 1Apuntes de linux  8 nov 16 1
Apuntes de linux 8 nov 16 1
 
Guía G GT1. Administración de Archivos.
Guía G GT1. Administración de Archivos. Guía G GT1. Administración de Archivos.
Guía G GT1. Administración de Archivos.
 
330884555 apuntes-de-linux-8-nov-16
330884555 apuntes-de-linux-8-nov-16330884555 apuntes-de-linux-8-nov-16
330884555 apuntes-de-linux-8-nov-16
 
Gilipollas
GilipollasGilipollas
Gilipollas
 
Apuntes de linux
Apuntes de linux Apuntes de linux
Apuntes de linux
 
Redes locales Windows
Redes locales Windows Redes locales Windows
Redes locales Windows
 
Sistema de archivos
Sistema de archivosSistema de archivos
Sistema de archivos
 
Redes locales 6
Redes locales 6Redes locales 6
Redes locales 6
 
Conceptos y comandos básicos de linux
Conceptos y comandos básicos de linuxConceptos y comandos básicos de linux
Conceptos y comandos básicos de linux
 
Sistema de archivo. rober cardenas, fabio montejo
Sistema de archivo. rober cardenas, fabio montejoSistema de archivo. rober cardenas, fabio montejo
Sistema de archivo. rober cardenas, fabio montejo
 
Presentación linux
Presentación linuxPresentación linux
Presentación linux
 
Guia #1 sistema de archivos barrera avendaño
Guia #1 sistema de archivos barrera avendañoGuia #1 sistema de archivos barrera avendaño
Guia #1 sistema de archivos barrera avendaño
 
Chuleta-comandos-Linux-para-no-perderse.pdf
Chuleta-comandos-Linux-para-no-perderse.pdfChuleta-comandos-Linux-para-no-perderse.pdf
Chuleta-comandos-Linux-para-no-perderse.pdf
 
Practica 1 unidad 5
Practica 1 unidad 5Practica 1 unidad 5
Practica 1 unidad 5
 
Sistema de archivo
Sistema de archivoSistema de archivo
Sistema de archivo
 
Sistema de archivos
Sistema de archivosSistema de archivos
Sistema de archivos
 

Permisos y derechos en Linux: guía completa

  • 1. Permisos y derechos en Linux Cuántos de nosotros hemos tenido la necesidad de “limitar el acceso” a los archivos contenidos en determinado directorio/carpeta o simplemente necesitamos evitar que algunas personas vean, eliminen o modifiquen el contenido de determinado archivo? Más de uno, verdad? Podremos lograrlo en nuestro amado pingüino? La respuesta es: por supuesto que sí:D. Introducción Muchos de los que provenimos de Windows, estábamos acostumbrados a lidiar con esta “problemática” de una manera muy diferente, para conseguir este objetivo teníamos que recurrir a “técnicas” poco ortodoxas, como, ocultar el fichero por medio de sus atributos, mover nuestra información al lugar más recóndito de nuestro equipo (dentro de 20,000 carpetas) para tratar de disuadir a nuestro “enemigo” XD, cambiando o eliminando la extensión del archivo, o la más “común” de las practicas, descargar un programa que nos permita “cerrar” nuestro directorio detrás de un lindo cuadro de dialogo que nos pida una contraseña para acceder al mismo. Teníamos otra alternativa mucho mejor? No. Lo siento mucho por mis amigos “Windoleros” (lo digo con mucho cariño para que nadie se ofenda, ok? ;)), pero hoy me toca ensañarme un poquito con Windows :P, ya que explicare el porqué este SO no permite de manera nativa esta funcionalidad. Cuántos de ustedes habrán notado que cuando nos sentamos detrás de un equipo “Windows” (aunque no sea el nuestro) nos convertimos automáticamente en dueños de todo aquello que contiene el ordenador (imágenes, documentos, programas, etc.)? A que me refiero? Bueno, a que simplemente al tomar el “control de Windows”, podemos copiar, mover, eliminar, crear, abrir o modificar carpetas y archivos a diestra y siniestra, independientemente si nosotros somos los “dueños” de esta información o no. Esto refleja un gran fallo en la seguridad del sistema operativo, verdad? Bueno, todo esto se debe a que los sistemas operativos de Microsoft no fueron diseñados desde el inicio para ser multiusuario. Cuando se lanzaron las versiones de MS-DOS y algunas versiones de Windows, confiaban plenamente en que el usuario final sería el responsable de “custodiar” su respectivo equipo para que ningún otro usuario tuviera acceso a la información almacenada en el mismo… vaya ingenuidad ¬¬. Ahora amigos WinUsers, ya saben el porquéha este “misterio” :D. A contrapartida, GNU/Linux, al ser un sistema diseñado fundamentalmente para trabajo en red, la seguridad de la información que almacenemos en nuestros equipos (y no se diga en los servidores) es fundamental, ya que muchos usuarios tendrán o podrán tener acceso a parte de los recursos de software (tanto aplicaciones como información) y hardware que están gestionados en estos ordenadores. Ahora podemos ver porque la necesidad de un sistema de permisos? Adentrémonos en el tema ;).
  • 2. En GNU/Linux, los permisos o derechos que los usuarios pueden tener sobre determinados archivos contenidos en él se establecen en tres niveles claramente diferenciados. Estos tres niveles son los siguientes: <° Permisos del propietario. <° Permisos del grupo. <° Permisos del resto de usuarios (o también llamados “los otros”). Para tener claros estos conceptos, en los sistemas en red (como lo es el pingüino) siempre existe la figura del administrador, superusuario o root. Este administrador es el encargado de crear y dar de baja a usuarios, así como también, de establecer los privilegios que cada uno de ellos tendrá en el sistema. Estos privilegios se establecen tanto para el directorio HOME de cada usuario como para los directorios y archivos a los que el administrador decida que el usuario pueda acceder. Permisos del propietario El propietario es aquel usuario que genera o crea un archivo/carpeta dentro de su directorio de trabajo (HOME), o en algún otro directorio sobre el que tenga derechos. Cada usuario tiene la potestad de crear, por defecto, los archivos que quiera dentro de su directorio de trabajo. En principio, él y solamente él será el que tenga acceso a la información contenida en los archivos y directorios que hay en su directorio HOME. Permisos del grupo Lo más normal es que cada usuario pertenezca a un grupo de trabajo. De esta forma, cuando se gestiona un grupo, se gestionan todos los usuarios que pertenecen a éste. Es decir, es más fácil integrar varios usuarios en un grupo al que se le conceden determinados privilegios en el sistema, que asignar los privilegios de forma independiente a cada usuario. Permisos del resto de usuarios Por último, también los privilegios de los archivos contenidos en cualquier directorio, pueden tenerlos otros usuarios que no pertenezcan al grupo de trabajo en el que está integrado el archivo en cuestión. Es decir, a los usuarios que no pertenecen al grupo de trabajo en el que está el archivo, pero que pertenecen a otros grupos de trabajo, se les denomina resto de usuarios del sistema. Muy lindo, pero como puedo identificar todo esto? Sencillo, abre una terminal y realiza lo siguiente: $ ls -l Nota: son letras “L” minúsculas ;) Nos aparecerá algo como lo siguiente:
  • 3. Como podrán observar, este comando despliega o “lista” el contenido de mi HOME, lo que nos ocupa son las líneas de color rojo y verde. El recuadro de color rojo, nos muestra quien es propietario y el recuadro de color verde indica a qué grupo pertenece cada uno de los archivos y carpetas anteriormente listadas. En este caso tanto el propietario y el grupo se llaman “perseo”, pero bien pudieron haberse encontrado con un grupo distinto como pudiera ser “ventas”. Por lo demás, no se preocupen por ahora, lo veremos más adelante :D. Tipos de permisos en GNU/Linux Antes de aprender cómo se establecen los permisos en GNU/Linux, debemos saber cómo se pueden diferenciar los diferentes tipos de archivos que el sistema puede tener. Cada archivo en GNU/Linux queda identificado por 10 caracteres mismos a los que se les denomina máscara. De estos 10 caracteres, el primero (de izquierda a derecha) hace referencia al tipo de archivo. Los 9 siguientes, de izquierda a derecha y en bloques de 3, hacen referencia a los permisos que se le conceden, respectivamente, al propietario, al grupo y al resto u otros. Una captura para demostrar todo este rollo:
  • 4. El primer carácter de los archivos puede ser el siguiente: Permiso Identifica - Archivo d Directorio b Archivo de bloques especiales (Archivos especiales de dispositivo) c Archivo de caracteres especiales (Dispositivo tty, impresora…) l Archivo de vinculo o enlace (soft/symbolic link) p Archivo especial de cauce (pipe o tubería) Los siguientes nueve caracteres son los permisos que se les concede a los usuarios del sistema. Cada tres caracteres, se referencian los permisos de propietario, grupo y resto de usuarios. Los caracteres que definen estos permisos son los siguientes: Permiso Identifica - Sin permiso r Permiso de lectura w Permiso de escritura x Permiso de ejecución Permisos para archivos
  • 5. <° Lectura: permite, fundamentalmente, visualizar el contenido del archivo. <° Escritura: permite modificar el contenido del archivo. <° Ejecución: permite ejecutar el archivo como si de un programa ejecutable se tratase. Permisos para directorios <° Lectura: Permite saber qué archivos y directorios contiene el directorio que tiene este permiso. <° Escritura: permite crear archivos en el directorio, bien sean archivos ordinarios o nuevos directorios. Se pueden borrar directorios, copiar archivos en el directorio, mover, cambiar el nombre, etc. <° Ejecución: permite situarse sobre el directorio para poder examinar su contenido, copiar archivos de o hacia él. Si además se dispone de los permisos de escritura y lectura, se podrán realizar todas las operaciones posibles sobre archivos y directorios. Nota: Si no se dispone del permiso de ejecución, no podremos acceder a dicho directorio (aunque utilicemos el comando “cd”), ya que esta acción será denegada. También permite delimitar el uso de un directorio como parte de una ruta (como cuando pasamos la ruta de un archivo que se encuentra en dicho directorio como referencia. Supongamos que queremos copiar el archivo “X.ogg” el cual se encuentra en la carpeta “/home/perseo/Z” -para lo cual la carpeta “Z” no tiene permiso de ejecución-, haríamos lo siguiente: $ cp /home/perseo/Z/X.ogg /home/perseo/Y/ obteniendo con esto un mensaje de error diciéndonos que no tenemos los permisos suficientes para acceder al archivo :D). Si el permiso de ejecución de un directorio está desactivado, se podrá ver su contenido (si se cuenta con permiso de lectura), pero no se podrá acceder a ninguno de los objetos contenidos en él, pues para ello este directorio es parte del camino necesario para resolver la ubicación de sus objetos. Gestión de permisos en GNU/Linux Hasta ahora, hemos visto para que nos sirven los permisos en GNU/Linux, a continuación veremos cómo asignar o restar permisos o derechos. Antes de comenzar, debemos de tener en cuenta que cuando damos de alta o creamos un usuario en el sistema, le concedemos de forma automática unos privilegios. Estos privilegios, por supuesto, no serán totales, es decir, los usuarios no dispondrán, normalmente, de los mismos permisos y derechos del superusuario. Cuando el usuario se crea, el sistema genera por defecto los privilegios del usuario para manejo de archivos y para manejo de directorios. Evidentemente, éstos pueden ser modificados por el administrador, pero el sistema genera unos privilegios más o menos válidos para la mayoría de las operaciones que cada usuario realizará sobre su directorio, sus archivos y sobre los directorios y archivos del resto de usuarios. Por lo general, son los siguientes permisos:
  • 6. <° Para archivos: - rw- r-- r-<° Para directorios: - rwxrwxrwx Nota: no son los mismos permisos para todas las distribuciones de GNU/Linux. Estos privilegios nos permiten crear, copiar y borrar archivos, crear nuevos directorios, etc. Veamos en la práctica todo esto :D: Tomemos como ejemplo el archivo “CSS Avanzado.pdf”. Observemos que aparece de la siguiente manera: -rw-r--r-- … CSS Avanzado.pdf. Miremos más a fondo. Tipo Usuario Grupo Resto de usuarios (otros) Nombre del archivo - rw- r-- r-- CSS Avanzado.pdf Esto significa que: <° Tipo: Archivo <° El usuario puede: Leer (visualizar el contenido) y escribir (modificar) el archivo. <° El grupo al que pertenece el usuario puede: Leer (únicamente) el archivo. <° Otros usuarios pueden: Leer (únicamente) el archivo. Para aquellos curiosos que se están preguntando en estos momentos a que se refieren los otros campos del listado obtenido por ls -l, aquí la respuesta:
  • 7. Si desean saber más acerca de los hard y soft/symbolic links, aquí la explicación y susdiferencias. Bueno amigos, llegamos a la parte más interesante y pesada del tema en cuestión… Asignación de permisos El comando chmod (“changemode”) permite modificar la máscara para que se puedan realizar más o menos operaciones sobre archivos o directorios, dicho de otra forma, con chmod puedes quitar o eliminar derechos a cada tipo de usuarios. Si no se especifica el tipo de usuario al que queremos quitar, poner o asignar privilegios, lo que sucederá al realizar la operación es afectar a todos los usuarios simultáneamente. Lo básico que hay que recordar es que le demos dar o quitar permisos en estos niveles: Parámetro Nivel Descripción u dueño dueño del archivo o directorio g grupo grupo al que pertenece el archivo o otros todos los demás usuarios que no son el dueño ni del grupo Tipos de permiso: Permiso Identifica
  • 8. r Permiso de lectura w Permiso de escritura x Permiso de ejecución Dar permiso de ejecución al dueño: $ chmodu+x komodo.sh Quitar permiso de ejecución a todos los usuarios: $ chmod -x komodo.sh Dar permiso de lectura y escritura a los demás usuarios: $ chmodo+r+w komodo.sh Dejar solo permiso de lectura al grupo al que pertenece el archivo: $ chmodg+r-w-x komodo.sh Permisos en formato numérico octal Hay otra forma de utilizar el comando chmod que, para muchos usuarios, resulta “más cómoda”, aunque a priori sea algo más compleja de entender ¬¬. La combinación de valores de cada grupo de los usuarios forma un número octal, el bit “x” es 20 es decir 1, el bit w es 21 es decir 2, el bit r es 22 es decir 4, tenemos entonces: <° r = 4 <° w = 2 <° x = 1 La combinación de bits encendidos o apagados en cada grupo da ocho posibles combinaciones de valores, es decir la suma de los bits encendidos: Permiso Valor Octal Descripción --- 0 no se tiene ningún permiso
  • 9. --x 1 solo permiso de ejecución -w- 2 solo permiso de escritura -wx 3 permisos de escritura y ejecución r-- 4 solo permiso de lectura r-x 5 permisos de lectura y ejecución rw- 6 permisos de lectura y escritura rwx 7 todos los permisos establecidos, lectura, escritura y ejecución Cuando se combinan los permisos del usuario, grupo y otros, se obtienen un número de tres cifras que conforman los permisos del archivo o del directorio. Ejemplos: Permiso Valor Descripción rw- --- -– 600 El propietario tiene permisos de lectura y escritura rwx --x --x 711 El propietario lectura, escritura y ejecución, el grupo y otros solo ejecución rwx r-x r-x 755 El propietario lectura, escritura y ejecución, el grupo y otros pueden leer y ejecutar el archivo rwxrwxrwx 777 El archivo puede ser leído, escrito y ejecutado por quien sea r-- --- -– 400 Solo el propietario puede leer el archivo, pero ni el mismo puede modificarlo o ejecutarlo y por supuesto ni el grupo ni otros pueden hacer nada en el
  • 10. rw- r-- --- 640 El usuario propietario puede leer y escribir, el grupo puede leer el archivo y otros no pueden hacer nada Permisos especiales Aún hay otro tipo de permisos que hay que considerar. Se trata del bit de permisos SUID (Set User ID), el bit de permisos SGID (Set Group ID) y el bit de permisos de persistencia (sticky bit). setuid El bit setuid es asignable a ficheros ejecutables, y permite que cuando un usuario ejecute dicho fichero, el proceso adquiera los permisos del propietario del fichero ejecutado. El ejemplo más claro de fichero ejecutable y con el bit setuid es: $ su Podemos ver que el bit está asignado como “s” en la siguiente captura: Para asignar este bit a un fichero seria: $ chmodu+s /bin/su
  • 11. Y para quitarlo: $ chmod u-s /bin/su Nota: Debemos utilizar este bit con extremo cuidado ya que puede provocar una escalada de privilegios en nuestro sistema ¬¬. setgid El bit setid permite adquirir los privilegios del grupo asignado al fichero, también es asignable a directorios. Esto será muy útil cuando varios usuarios de un mismo grupo necesiten trabajar con recursos dentro de un mismo directorio. Para asignar este bit hacemos lo siguiente: $ chmodg+s /carpeta_compartida Y para quitarlo: $ chmod g-s /carpeta_compartida sticky Este bit suele asignarse en directorios a los que todos los usuarios tienen acceso, y permite evitar que un usuario pueda borrar ficheros/directorios de otro usuario dentro de ese directorio, ya que todos tienen permiso de escritura. Podemos ver que el bit está asignado como “t” en la siguiente captura:
  • 12. Para asignar este bit hacemos lo siguiente: $ chmodo+t /tmp Y para quitarlo: $ chmod o-t /tmp Bueno amigos, ahora ya saben cómo proteger de mejor manera su información, con esto espero que dejen de buscar alternativas para Folder Lock o Folder Guard que en GNU/Linux no los necesitamos para nada XD.