Permisos básicos de ficheiros e carpetas

De Manuais Informática - IES San Clemente.
Revisión del 22:31 18 mar 2015 de Antonio (discusión | contribs.)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

Moitas veces precísase restrinxir o acceso a unha carpeta ou ficheiro a unha serie de usuarios ou grupos. Nesta sección veremos como facelo.

Introdución aos permisos

Lémbrense os usuarios creados en pasos previos.

Nome		Nome real		Grupo primario	Grupo secundario 	Perfil

administrador 	administrador 	        administrador	sudo, ...		Administrador 
carlos		Carlos Carrión		g-profes	g-usuarios, ...		Estándar (Usuario de escritorio)
noa		Profe- Noa Pin Pin 	g-profes 	g-usuarios, sudo, ...	Administrador
roi 		Roi Paz Paz 	        g-alum 		g-usuarios, ...		Estándar (Usuario de escritorio)

Con respecto ao que se fixo en pasos previos, modificouse o usuario carlos: establecendo como grupo primario g-profes, e como grupo secundario g-usuarios.

Noa e Carlos parécense en que pertencen ao grupo g-profes, pero noa pode administrar o sistema e carlos non. Nese senso o usuario profesor carlos e o usuario alumno roi, teñen os mesmos poucos privilexios.

A usuaria noa pode administrar o sistema ao igual que o usuario chamado administrador, pero este último non pertence nin ao grupo g-profes nin g-usuarios.

Ao grupo g-usuarios só pertencen os usuarios: carlos, noa e roi.

Usuario e grupo propietario

Toda carpeta e todo ficheiro teñen un usuario propietario e un grupo propietario do mesmo:

Plat sl 12 perm 01.jpg

Entrouse no sistema como a usuaria noa. Esta usuaria accedeu á carpeta do usuario administrador. Usa a visualización en formato lista, engade as columnas: propietario, grupo e permisos e súbeos para enriba na lista. (véxase unha sección anterior para mirar como configurar nautilus con esta visualización).

Na imaxe obsérvase que o usuario propietario de cada carpeta e arquivo é o usuario administrador.

O grupo propietario é o grupo chamado administrador.

Cando un usuario crea unha carpeta/ficheiro:

  • Quen é o usuario propietario?: O usuario que a creou
  • Quen é o grupo propietario?: O grupo principal ao que pertence ese usuario.

Aínda así, o grupo propietario pódese cambiar despois a calquera outro grupo, aínda que o usuario non teña nada que ver con el.

Permisos básicos

Os permisos básicos en GNU/Linux son moi sinxelos, e por tanto presentan como veremos algunhas limitacións. Nesta sección estudarase o xusto para que se entenda o seu funcionamento.

A unha carpeta ou ficheiro pódenselle adxudicar permisos a tres tipos de usuarios:

  • Usuario propietario (U).
  • Grupo propietario (G), que non ten porque ser grupo principal do usuario propietario.
  • Outros (O), que non sexa o usuario propietario nin ningún usuario que pertenza ao grupo propietario.

Os permisos seguen un patrón coñecido como UGO: usuario, grupo e outros.


Existen tres permisos independentes:

Permiso			Ficheiro			Carpeta
r  (Read)		Ver contido			Ver o contido
w (Write)		Escribir/modificar		Crear/modificar obxectos
x  (eXecute)		Executar			Acceder á carpeta (sen ver  o contido).

A cada tipo de usuario pódeselle asignar unha combinación dos tres permisos anteriores. Por exemplo para o usuario propietario, sobre un ficheiro, poderíanse asignar calquera das combinacións seguintes:

- - -	Ningún permiso. O usuario non pode facer nada co arquivo.
- - x	Pode executar o ficheiro, se é executable. Non pode modificalo nin ver o seu contido.
- w -	Pode modificar o arquivo (engadirlle/extraerlle contido). Non pode executalo nin velo.
- w x	Pode executar e modificar o ficheiro pero non pode velo.
r - -	Pode ver o contido do ficheiro, pero non modificalo nin executalo.
r – x	Pode ver o contido e executar o ficheiro. Non pode modificalo.
r w -	Pode ver o contido e modificalo ficheiro. Non pode executalo.
r w x	O usuario pode, ver o contido do ficheiro, modificalo e executalo se é un arquivo executable.

A alguén asaltaralle a dúbida de como poder modificar un ficheiro sen poder ver o seu contido. Pois si se pode, existen comandos para iso, pero escápanse aos obxectivos que se perseguen neste material.


Aprende.png
TAMÉN PODES VER...


Neste enlace podes afondar máis no coñecemento dos permisos básicos en GNU/Linux


Volvamos sobre a imaxe anterior:

Plat sl 12 perm 01.jpg


Na columna permisos vese que a secuencia comeza cunha letra ou un guión:

  • l:link, enlace, acceso a un directorio
  • d:directory, directorio, carpeta
  • -: arquivo, ficheiro


A continuación séguelle tres grupos de permisos. Véxase por exemplo a carpeta Música:

  • drwxr-xr-x:
    • d:indica que é unha carpeta (directorio).
    • rwx: os 3 primeiros permisos corresponden ao usuario propietario (U) (administrador). Este pode facer de todo.
    • r-x: os 3 segundos permisos corresponden ao grupo propietario (G) (administrador). Calquera usuario que pertenza a este grupo pode ver o contido e acceder á carpeta Música.
    • r-x: os 3 últimos permisos corresponden a todos os demais usuarios, outros (O): (roi, noa, carlos). Neste exemplo en Música poden ver o seu contido e acceder a ela.

Por hoxe, xa está ben de texto e comecemos co modo gráfico.

A imaxe seguinte amosa os permisos da carpeta Música en modo gráfico (botón dereito sobre ela e seleccionar Propiedades):

Plat sl 12 perm 02.png

Como se pode observar, noa (lémbrese que é noa quen está fozando nas intimidades do usuario administrador), non pode realizar ningún cambio, pois ela non é a dona da carpeta. Só dous usuarios poden cambiar os permisos dunha carpeta/ficheiro: o creador e o usuario root, como se verá máis adiante.

Finalmente, observar os permisos dun arquivo. Noa segue sen poder facer nada, pois non é a dona do arquivo.

Plat sl 12 perm 03.png

Modificar os permisos

Noa volve á súa carpeta.

Plat sl 12 perm 04.jpg

Notar que o grupo propietario en cada un dos obxectos é g-profes, e o usuario carlos tamén pertence a el.


Abrir como administrador (root)

Ós únicos que poden cambiar os permisos dun ficheiro/carpeta son o seu dono e o usuario root. E o único que pode cambiar as propiedades dun ficheiro/carpeta é o usuario root.

Así que se noa quere cambiar os permisos de ficheiros ou carpetas das que non é dona, o que pode facer é iniciar o explorador de ficheiros Nautilus como usuario root (Lémbrese que nun apartado anterior explicamos como executar comandos como root usando o comando sudo)


Afinar permisos nunha estrutura de carpetas

Crear toda unha árbore de carpetas, nas que os profes poidan facer unhas cousas, os alumnos outras, etc, etc, é materia dun manual de administración. Pero aínda así, imos ver unha estrutura simple na que os profes poidan intercambiar información cos seus alumnos.

Introdución: pensar

Como sempre, aplicaremos a regra baseada no Principio de Pareto e moi usado polo americanos 80% think, 20% do (80% pensar, 20% facer).

Preténdese:

  • 1º.- Que ás carpetas home de cada alumno poidan entrar os profesores para ver o seu contido.
  • 2º.- Que só o alumno en cuestión poida escribir/modificar na súa propia home.
  • 3º.- Que á carpeta home de cada profesor só poida acceder o profesor en cuestión.
  • 4º.- Que haxa un espazo comun nos que os profesores que accedan poidan crear cousas propias de profes. Que só poidan acceder os profes.
  • 5º.- Que haxa un espazo común onde os profes poidan deixar material para o alumnado, e que este poida acceder e recollelo, pero non modificalo nin escribir.


Lémbrense os usuarios que existen e os grupos aos que pertencen

Nome		Nome real		Grupo primario	Grupo secundario 	Perfil

administrador 	administrador 	        administrador	sudo, ...		Administrador 
carlos		Carlos Carrión		g-profes	g-usuarios, ...		Estándar (Usuario de escritorio)
noa		Profe- Noa Pin Pin 	g-profes 	g-usuarios, sudo, ...	Administrador
roi 		Roi Paz Paz 	        g-alum 		g-usuarios, ...		Estándar (Usuario de escritorio)

O grupo g-usuarios ten como membros a: carlos, noa, roi.

O grupo g-profes ten como membros a: carlos, noa.

O grupo g-alum ten como membros a: roi.

O usuario administrador non pertence a ningún dos tres grupos anteriores.

Véxase graficamente o que se pretende. Isto non ten moito senso se se trata de 20 ordenadores e en todos se realiza o mesmo. O bo sería que logo isto estivese compartido para usar dende outro equipo. Verase na seguinte sección.


Un pouco enrevesado, verdade?. Pois si, porque estes son os permisos básicos, nun curso de administración poderíanse ver ferramentas de afine máis precisas como as ACL (Listas de Control de Acceso) e a súa flexibilidade, como se comentará despois.


Xa se fixo o 80% (think, pensar), pásese ó 20% (do, facer)

Crear a estrutura de carpetas: facer

Vaise comezar por crear /home/comun e súa estrutura.

A imaxe é unha maqueta/plano do que se pretende:

Platega U810 Permisos 01B.jpg


Afinar permisos das carpetas home dos usuarios: facer

Continúase coas carpetas home do alumnado.


Platega U810 Permisos 01A.jpg


Conclusión

Os permisos básicos son moi simples, pero pola contra moi pouco flexibles. Problemas que presenta o anterior:

  • Como roi é dono da súa carpeta pode cambiar os permisos e non deixar entrar aos profes, ou deixar entrar a todos os demais usuarios á súa carpeta. Home, sempre queda abrirlle un expediente ao alumno, pero cando un se dea conta ao mellor xa é tarde.
  • Se mañá se dan de alta conserxes que pertenzan ao grupo g-usuarios, aínda que sexa como secundario, van poder entrar na carpeta /home/comun/alumnos, cando aí non deberían entrar. Poden entrar porque outros poden acceder a esa carpeta.

Ao ter só tres tipos de usuarios, UGO (user, group, other) aos que asignarlle permisos a anterior configuración vese moi limitada. Sería interesante dispor de Listas de Control de Acceso (ACL, Access Control List), nas que poder afinar moito máis os permisos.

Listas de control de acceso: ACL

As Listas de Control de Acceso (ACL: Access Control List) veñen a suplir as eivas mencionadas anteriormente. Nunha ACL pódese especificar explicitamente quen pode facer que cousas e quen non non pode facer outras.

A imaxe amosa un exemplo de ACLs xestionadas co programa Eiciel feito por Roger Ferrer Ibáñez.

Plat sl 12 perm 36.jpg


Aprende.png
TAMÉN PODES VER...


O uso de ACLs e a creación dunha estrutura máis complexa de carpetas que albergase os datos do alumnado, organizado por cursos e materias e do profesorado, dividido en departamentos, etc, que albergase a información de todos os usuarios dunha rede é algo complexo e escápase aos obxectivos deste manual, sería materia dun manual de administración de redes con Linux. Pódese seguir unha mostra do que se pode chegar a facer en: Servizos de rede e deseño dunha infraestrutura de dominio con GNU/Linux


Instalar Eiciel e activar as ACLs

ACL é un paquete, que en Ubuntu xa ben instalado por defecto, pero hai que indicar sobre que partición (teñen que ter formato ext3 ou ext4) se desexa aplicar.

Afinar os permisos con ACL

Neste exemplo vaise poñer explicitamente que na carpeta /home/comun/alumnos os membros de g-alumnos poidan entrar e ver o seu contido pero non outros.

As ACL só poden ser editadas/cambiadas polo dono da carpeta/ficheiro ou polo usuario root. O mesmo que sucedía cos permisos básicos.

Comandos para a configuración dos permisos

Como xa se pode imaxinar, este método de configuración dos permisos antóllase pouco práctico para sistemas con moitos usuarios e moitas carpetas. Pódensenos quedar usuarios atrás (como o caso de carlos), ou confundirse nun permiso dunha carpeta. Hai que ser moi sistemático e revisalo con moita tranquilidade. Isto pódese realizar en modo gráfico se o número de usuarios é manexable (20 – 40).

Cando se está falando de moitos usuarios o aconsellable é usar scripts ou guións (programas pequenos) que conteñan comandos que cambian propietarios e permisos en carpetas e ficheiros. Deste xeito o administrador pode realizar un programiña que faga todo ese traballo por el, se se equivoca o programa equivócase en todos, haberá que corrixilo para que o faga ben en todos os casos. Os comandos a usar en cada caso son:

  • chown: (change owner, cambiar propietario). Para cambiar o usuario e grupo propietario.
  • chmod: (change mode, cambiar modo). Para cambiar os permisos.

Permisos dunha unidade Windows

Se se editan os permisos dalgunha carpeta dentro de win-linux, carpeta na que está montada unha partición formatada en fat, non se pode cambiar ningún permiso. Os permisos anteriores non son aplicables para unidades FAT / NTFS de MS Windows.

Plat sl 12 perm 38.png

Como se pode ver na imaxe, pódese probar a facer cambios nos propietarios e permisos dentro da carpeta win-linux... Non deixa facer ningún cambio.


-- Antonio de Andrés Lema e Carlos Carrión Álvarez