IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Linux Professional Institute Certificate. LPIC-1

Lpic1 large.gif
Certificat LPIC-1
Examen: 101 (torneu a la resta de temes)
Fitxers: LPI104.5_Administrar_permisos_i_propietaris_de_fitxers.pdf (LPI104.5_Administrar_permisos_i_propietaris_de_fitxers.odp), UD_8_6_permisos_arxius.pdf
Objectius: http://www.lpi.org/eng/certification/the_lpic_program/lpic_1/exam_101_detailed_objectives
Dipòsit SVN: https://svn.projectes.lafarga.cat/svn/lpi/Materials/Examen_101/104.5
Usuari: anonymous
Paraula de pas: qualsevol paraula de pas

Objectius

104.5. Administrar permisos i propietaris de fitxers
Objective.jpg
  • Objectiu: Els candidats han de ser capaços de controlar l'accés a fitxers mitjançant el correcte ús dels permisos i propietaris dels fitxers.
  • Pes: 3
060317 Icon - Theory of Knowledge v01 pdc.jpg

Àrees Clau de Coneixement:

Icon list.jpg

La següent és una llista parcial de fitxers, termes i utilitats utilitzades:

Text-editor.svg

Apunts: LPI 104.5. Administrar permisos i propietaris de fitxers

Control d'accés als fitxers. Permisos tradicionals de Unix

Linux: sistema operatiu multiusuari real.

En Linux cada usuari disposa d'una carpeta pròpia amb fitxers propis. La carpeta, segons FHS, és /home.

El sistema de control no depén tant del sistema operatiu com del sistema de fitxers.

Sistema de permisos de fitxers Unix-like (POSIX).

També es coneix com sistema de permisos tradicional de Unix.

És el sistema utilitzat per defecte a Linux i altres sistemes operatius com MAC OS X.


NOTA: Recordeu que a Linux, tot són fitxers (dispositius de maquinari, enllaços, endolls, conductes etc...). Per tant, un sistema de control d'accés als fitxers és un sistema de control a tot.

Concepte de propietari d'un fitxer Establir els permisos d'un fitxer permet determinar explícitament, qui té drets (i quin tipus de drets té) d’accés a aquest arxiu. La combinació de propietari i permisos d'un fitxer, estableix el que un usuari concret pot fer amb aquest fitxer.

Hi han dos nivells de propietat d'un fitxer:

  • El propietari en si (owner).
  • El grup propietari (group o group owner).

Linux classifica als usuaris en tres tipus (entitats):

El propietari (owner): usuari del sistema al que pertany el fitxer. Al crear un fitxer s'assigna com a usuari el nom d'usuari (login name) de l'usuari que l'ha creat.

El grup al que pertany el fitxer (group o group owner): els fitxers, a més de pertànyer a un usuari, també pertanyen a un grup. Al crear un fitxer s'assigna com a grup el grup principal de l'usuari que l'ha creat.

La resta d'usuaris i grups (others): qualsevol usuari o grup que no sigui el propietari o el grup del fitxer. També es coneixen com els permisos per a la resta del mon (world permisions).

Definicions

Mode: Els drets d’accés a un arxiu s’anomenen també “mode” en Unix. Es definir els modes d'un fitxer.

Entitat: Cadascun dels tipus d'usuaris especificats a l'apartat anterior és conegut com entitat.

Bit de permís: Determina el tipus de permís. O es que no tinc un permís i 1 que si que el tinc. Cada entitat pot tenir 3 tipus (bits): El de lectura, escriptura i execució.

Permisos de lectura

Els fitxers amb permisos de lectura poden ser copiats amb l'ordre cp a un lloc on l'usuari tingui permisos d'escriptura. Les còpies si es poden modificar, però mai l'original.

En cap cas, el fet que un fitxer estigui marcat com a fitxer sense permisos de lectura, impedeix que el nom del fitxer sigui vist per altres usuaris. Es pot fer amb els permisos dels directoris.

No permet fer cap tipus de modificació, ni del nom del fitxer, ni del PATH (ordre mv) ni dels continguts del fitxer.

Els permisos que té un fitxer no tenen res a veure amb el propietari d'un fitxer, el propietari del fitxer només el pot canviar el superusuari.

A un fitxer que tenim permisos de lectura li podem fer un enllaç simbòlic o dur, però no ens deixa modificar el fitxer, l'enllaç el podem eliminar, el fitxer original no.

Quan diem que una carpeta té permisos de lectura l'únic que podem fer es veure els noms dels fitxers que hi ha dins, els directoris normalment tenen el permís d'execució.

[email protected]:~$ cd
[email protected]:~$ mkdir directori
[email protected]:~$ touch directori/a
[email protected]:~$ touch directori/b
[email protected]:~$ chmod u=r directori
[email protected]:~$ ls -l directori/
ls: no s’ha pogut accedir a directori/b: S’ha denegat el  permís
ls: no s’ha pogut accedir a directori/a: S’ha denegat el permís
total 0
-????????? ? ? ? ?                ? a
-????????? ? ? ? ?                ? b
[email protected]:~$ cd directori/
bash: cd: directori/: S’ha denegat el permís
[email protected]:~$ touch directori/c
touch: no s’han pogut canviar les dates de «directori/c»: S’ha denegat el permís

Permisos d'escriptura

Permeten fer operacions de modificació un fitxer:

  • Eliminar el fitxer amb l'ordre rm.
  • Modificar els continguts del fitxer.
  • Canviar el nom o moure'l a un altre carpeta amb l'ordre mv.
  • Tingueu en compte l'sticky bit i el comportament per defecte amb directoris amb permisos d'escriptura.

Metadades

  • Es poden modificar les marques de temps.
  • No es poden modificar els permisos (excepte propietari o root).
  • No es pot modificar el propietari (excepte usuari root).
  • El propietari pot modificar el grup, si el grup escollit és un dels grups als que pertany l'usuari.

Els directoris són un tipus especial de fitxers.

L'usuari amb accessos d'escriptura en un directori pot:

  • Crear nous fitxers dins del directori.
  • Esborrar fitxers (rm) o canviar el nom/moure (mv) els fitxers, encara que no sigui el propietari del fitxers a modificar i/o no tingui permisos d'escriptura.
  • Es pot modificar el sticky bit per tal de modificar aquest comportament.

Permisos d'execució

Propietats

  • Només tenen tenen sentit en fitxers ordinaris o directoris. S'ignoren en altre tipus de fitxers com per exemple els dispositius.
  • No implica que sigui un executable! p. ex. es pot tenir un fitxer de configuració en text pla amb permisos d'execució, però cal evitar-ho per no dur a confusions.
[email protected]:~$ cd
[email protected]:~$ sudo mkdir -p carpeta/carpeta_oculta
[sudo] password for jordi: 
[email protected]:~$ sudo chmod 700 carpeta
[email protected]:~$ ls carpeta
ls: no s’ha pogut obrir el directori carpeta: S’ha denegat el permís
[email protected]:~$ sudo ls carpeta
carpeta_oculta
[email protected]:~$ cd carpeta/
bash: cd: carpeta/: S’ha denegat el permís
[email protected]:~$ rm -r carpeta/
rm: voleu descendir al directori protegit contra escriptura «carpeta»? 
[email protected]:~$ ls -la
total 1525676
drwxr-xr-x 70 jordi jordi      4096 2012-04-16 13:21 .
drwxr-xr-x  4 root  root       4096 2011-09-29 12:30 ..
...
drwx------  3 root  root       4096 2012-04-16 13:21 carpeta

El superusuari i els permisos

Permisosjordipujol.png

Notació simbòlica

Es basa en els caràcters:

  • r (read), w (write) i x (execution) per indicar els permisos (modes).
  • El símbol - indica que el permís d'aquella posició no està activat.
  • u (user), g (group) i o(others) per indicar les entitats afectades.
  • El caràcter a equival a ugo i representa les tres entitats.

Notació binaria i notació octal

Notaciobinaria jordipujol.png

Notació octal:

  • 755 (rwxr-xr-x): El propietari ho pot fer tot i la resta llegir i executar. Permís habitual de les carpetes
  • 644 (rw-r—r--): El propietari pot llegir i modificar i la resta només llegir. Permís habitual de les carpetes.
  • 777 (rwxrwxrwx): tots els permisos. No és segur.
  • 000 (---------): Cap permís.
  • 700 (rwx------): Tots els permisos només per al propietari.

Bits especials de permisos

SUID

Set User ID:

  • S'utilitza conjuntament amb fitxers amb permisos d'execució.
  • Indica al sistema operatiu que el programa s'ha d'executar amb els permisos del propietari del fitxer i no pas amb els permisos de l'usuari que executa el fitxer.
  • Es pot utilitzar per tal d'executar fitxers com a superusuari sense ser root. El fitxer ha de pertànyer al superusuari, ser executable i tenir el bit especial d'execució SUID.
  • Aquesta opció es força utilitzada en alguns serveis i programes.
  • Els programes que s'executen d'aquesta forma són anomenats SUID root.
  • Els fitxers amb aquest permís s'indiquen amb una s al bit d'execució del propietari. (o S majúscula si no és executable).
  • Per exemple, l'ordre ping en alguns sistemes com Ubuntu:
[email protected]:~$ ls -l /bin/ping
-rwsr-xr-x 1 root root 34716 2010-11-15 09:08 /bin/ping
  • La creació de paquets ICMP (protocol de ping) requereix accés de superusuari.
  • Activar el SUID en un directori no té cap sentit ni utilitat (s'ignora).
  • Per seguretat, només funciona amb fitxers executables binaris (no guions de llenguatges interpretats).

SGID

Set Group ID

  • És similar a SUID però estableix que el grup del programa executable és el grup del fitxer i no pas el grup de l'usuari que executa el fitxer.
  • S'indica amb una s al bit d'execució del grup.
  • Directoris: Quan el bit SGID s'estableix en un directori, els fitxers nous o directoris creats en aquest directori heretaran el grup del directori i no pas el grup de l'usuari que crea el directori o fitxer.

Sticky bit

Carpeta /tmp

Enllaços simbòlics i permisos

Taula resum

Usuaris (propietaris)

5 Grups

Consultar els permisos d'un fitxer

Gestionar els propietaris d'un fitxer. Ordre chown

Gestionar els permisos d'un fitxer. Ordre chmod

ordre find

Canviar recursivament els permissos de només els fitxers

Canviar recursivament els permissos de només els directoris

Ordres

chmod

  • Amb el chmod pots cambiar el mode de permisos dels fitxers, en ubuntu hi ha 9 tipus diferents de modes.
$ chmod [-R] <permisos> <arxiu ...>
  • Suporta la notacio octal i la simbolica.
  • Nomes pot modificar el permis el superususari o el propietari d'aquest.

Per afegir o treure permisos s'utilitzen els següent simbols:

+: indica que s’ha d’activar el permís.

: indica que s’ha de treure el permís.

=: permet definir els tres permisos en una sola etapa per a l’entitat indicada.

Sintaxi: <entitat(s)>[+-=] <permís(os)>

Notació octal

$ su
$ chmod xyz fitxer ...

On:

X es refereix els permisos del propietari octal.

Y son els permisos del grup octal.

Z son els permisos d'altres octals.


Exemples

  • u+x: afegeix (+) el permís d’execució (x) per al propietari (u).
  • g-w: suprimeix (-) el permís de modificació (w) per al grup (g).
  • o-rw: suprimeix (-) els permisos de lectura (r) i de modificació (w) per als altres (o).
  • ug-x: suprimeix (-) el permís d’execució (x) per al propietari (u) i el grup (g).
  • a+r: afegeix (+) el permís de lectura (r) per a totes les entitats (a).
  • u=rw: estableix (=) els permisos de lectura (r) i de modificació (w) i suprimeix el permís d’execució (x) per al propietari (u).

Canviar permisos de forma massiva

$ sudo chmod -R 644 carpeta

També tenim la comanda find per canviar els permisos dels fitxers o directoris.

  • Per als fitxers es fa:
$ find . -type f -exec chmod 644 {} \;
  • Per als directoris es fa:
$ sudo find . -type d -exec chmod 755 {} \;

umask

chown

chgrp

id

groups

whoami