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 del tema

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
  • Múltiples usuaris treballant alhora al sistema
  • Cada usuari disposa d'una carpeta propia amb fitxers propis. La carpeta, segons FHS, és /home
  • Mecanisme de control d'accés als fitxers
  • Cal controlar l'accés als fitxers:sistema de permisos
  • Seguretat alguns fitxers contenen informació confidencial o informació confidencial o informació essencial pel correcte funcionament
  • El control d'accés depen del sitema de fitxers que tenim instal·lat

Permisos tradicionals de Unix

  • Sistema de permisos de fitxers Unix-like (POSIX)
  • També conegut com sistema de permisos tradicional de Unix
  • És el sistema utilitzat per defecte a Linux i altres sistemes operatius com MAC OS X
  • Existeixen altres mecanismes com les ACL (llistes de control d'accés). Es pot implementar també en Linux
  • Els permisos són un mecanisme proporcionat pel sistema de fitxers (ext2, ext3, reiser, xfs...). Alguns sistemes de fitxers com FAT32 o NTFS no suporten aquest sistema

IMPORTANT: 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 sistam 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
  • Hi han dos nivells de propietat
  • El propietari en si (owner)
  • El grup propietari (group o group owner)
  • Linux calssifica als usuaris en tres tipus(entitats)
  • El propietari (owner): usuari del sistema al que pertany el fitxer
  • El grup al que pertany el fitxer els fitxers han de pertanyer a un usuari i a un grup al crear el fitxer si li aplica com a grup de l'usuari que l'ha creat
  • La resta d'usuaris i grups (others) qualsevol grup o usuari que no sigui ni el propietari el grup del mateix. També coneguts com resta del món
  • Definicions
  • Mode: Els drets d’accés a un arxiu s’anomenen també mode en Unix.
$chmod
  • Entitat cadascun dels tipus d'usuaris especificats a l'apartat anterior és conegut com entitat
  • Bit de permís determina el tipu de permís
  • Cada entitat pot tenir 3 tipus (bit) de permís:
  • Permís de lectura (read): indicat pel caràcter r. Aquest permís permet obrir l’arxiu i veure el seu contingut.
  • Permís d’escriptura (write): indicat per una w. Aquest permís permet modificar el fitxer
  • Permís d’execució (execution): indicat per una x. Aquest permís indica si un fitxer es pot executar.

Permisos de lectura

  • Propietats
  • 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.
  • El permís de lectura no determina si podem canviar els permisos o el propietari d'un fitxer.Només el usuari superusuari pot modificar els permisos d'un fitxer
  • Es poden fer enllaços a fitxers amb permisos de lectura, no permet modificar l'arxiu però si l'enllaç que em creat
  • Directoris només permet llegir els noms dels fitxers dins d'aquest directori. No podem consultar cap altra informació
  • Exemple
[email protected]:~/Escriptori$ 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

  • Propietats
  • 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
  • Directoris
  • Els directoris són un tipus especial de fitxers
  • L'usuari amb accessos d'escriptura en un directori pot fer:
  • Crear nous fitxers
  • Esborrar fitxers (rm) o canviar el nom/moure (mv) els fitxers, encara que no sigui el propetari del fitxers a modificar i no tenir permisos d'escriptura
  • Es pot modificar el sticky bit per tal de modificar aquest comportament
  • Exemple
[email protected]:~$ cd 
[email protected]:~$ chmod u=rw directori/
[email protected]:~$ cd directori/
bash: cd: directori/: S’ha denegat el permís
[email protected]:~$ mkdir directori/c
mkdir: no s’ha pogut crear el directori «directori/c»: 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'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
  • Directoris
  • Els directoris NO s'executen. S'utilitza el permís amb altres objectius
  • Permet establir el directori com a directori de treball, és a dir, podem entrar-hi amb l'ordre cd
  • Es necessiten permissos d'execució per accedir a la informació dels inodes dels fitxers del directoris

IMPORTANT: Per poder accedir a un subcarpeta tenim que tenir permissos d'execució a totes les carpetes de l'arbre de directoris

  • Exemple


El superusuari i els permisos

  • Superpoders (poders de supervaca ;-))
  • Les restriccions d'accés no s'apliquen al usuari root. Aquest usuari pot llegir o modificar qualsevol fitxer, fins i tot aquells als que no té permisos, per exemple un fitxer amb permisos 000.
  • Excepcions
  • Es possible que el superusuari no pugui modificar un sistema de fitxers muntat com a només lectura. Cal però, fer notar que root podria tornar a muntar el sistema amb uns altres permisos
  • Fins i tot el superusuari necessita també el bit d'execució per executar un programa (el pot assignar si cal)

Consultar els permisos d'un fitxer

  • ls amb l'opció long list (-l)
[email protected]:~$ ls -l
total 88
drwxrwxr-x  3 jordi jordi  4096 2012-04-19 09:09 alumne
drwxr-xr-x  2 jordi jordi  4096 2012-04-18 12:09 Baixades
drwxr-xr-x  3 jordi jordi  4096 2012-04-19 08:16 Documents
drwxr-xr-x  2 jordi jordi  4096 2012-04-19 11:50 Escriptori
-rw-r--r--  1 jordi jordi   179 2012-04-18 13:06 examples.desktop
...
  • Cadena de caràcters de la primera columna
  • Notació simbòlica
  • 4 seccions
  • Primer caràcter: tipus de fitxer
  • 3 grups de 3 caràcters:
  • Permisos de cada entitat
  • En notació simbòlica
Jordiromerounix140.png


Notació simbòlica

  • Es basa en els caracters
  • 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.
  • Veurem més exemples quan consultem l'ordre chmod

Notació binaria i notació octal

Permisos(simbòlic) Notació binaria Notacio octal
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
r-w 110 6
rwx 111 7
  • S'utilitza molt la notació octal
  • Exemples habituals:
  • 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

  • Notació
Permisos(simbòlic) Notació binaria Notacio octal
--- 000 0
--t 001 1
-s- 010 2
-st 011 3
s-- 100 4
s-t 101 5
st- 110 6
stt 111 7
  • Exemple
Jordiromerounix141.png

SUID

  • 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)
  • Exemple
  • Per exemple, l'ordre ping en alguns sistemes com Ubuntu:
[email protected]:~$ ls -l /bin/ping
-rwsr-xr-x 1 root root 34740 2011-05-03 12:38 /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

  • 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.

IMPORTANT: Tant el SUID com el GUID són bits potencialment insegurs. Només s'utilitzen quan no hi ha un altre remei. Cal que els programes que els utilitzin estiguin ben programats per tal d'evitar escalades de privilegi

Sticky bit

  • Sticky bit ​(bit enganxifós)
  • Ha tingut diferents significats durant la història de Unix.
  • A la majoria de sistemes operatius moderns (com Linux) s'utilitza per evitar que certs fitxers siguin esborrats per persones que no siguin propietàries del fitxer.
  • Quan aquest bit està present en un directori, els fitxers del directori només poden ser eliminats pels seus propietaris o pel superusuari.
  • S'indica amb una t al bit d'execució de l'entitat altres.
  • S'ignora en els fitxers. Històricament feia que l'executable seguis en memòria fen més ràpida a seva execució

Carpeta /tmp

  • Exemple de carpeta amb sticky bit
  • El directori temporal /tmp permet a qualsevol usuari emmagatzemar els seus propis arxius, però per evitar que esborri els arxius d’altres, s’ha d’activar el permís Sticky:
[email protected]:~$ ls -ld /tmp
drwxrwxrwt 14 root root 4096 2012-04-19 12:57 /tmp
  • Notació

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

find . -type f -exec chmod 644 {} \;

Canviar recursivament els permissos de només els directoris

$sudo find . -type d -exec chmod 755 {} \;

Ordres

chmod

  • chmod (change mode)
  • Recordeu: mode és un sinònim de permís
  • Sintaxi
$chmod [-R] <permisos <arxiu>
  • -R: indica a la comanda que apliqui el canvi de forma recursiva (només aplicable a directoris).
  • permisos: en notació simbòlica o en notació octal.
  • arxiu ... : el camí al arxiu o arxius que es volen modificar.
  • Notació simbolica
  • r (read), w (write) i x (execution) per indicar els permisos.
  • El simbol - 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.
  • Permet modificar els permisos d'un fitxer
  • Suporta tant la notació octal com la simbòlica
  • Només el propietari de l’arxiu i l’administrador del sistema (root) poden utilitzar-lo
  • Cal tenir en compte que el propietari no podrà assignar el fitxer a un altre usuari (només pot canviar el grup i sempre que sigui a un grup al qual pertany).

umask

chown

  • Chown (change owner)
  • Permet canviar el propietari d'un fitxer.
  • Només pot canviar el propietari d'un fitxer el superusuari del sistema (però el propietari d'un fitxer pot canviar el grup d'un fitxer sempre que assigni un

grup al qual pertany).

  • sintaxi:
$chown [ opcio ] ... [ propietari ] [: [grup ] ] arxiu ...
  • Exemple
  • Establir propietari i grup d'un fitxer
$sudo chown usuari:grup fitxer
  • Establir propietari d'un fitxer
$sudo chown owner fitxer
  • Establir només el grup d'un fitxer
$sudo chown :grup fitxer
  • Establir propietari de forma recursiva
$sudo chown -R usuari:grup carpeta
  • Hi han opcions com les habituals verbose (v) i com tractar els enllaços

chgrp

id

  • Mostren informació de usuaris i grups
  • sintaxi:
$id
[email protected]:~$ id
uid=1000(jordi) gid=1000(jordi)  grups=1000(jordi),4(adm),20(dialout),24(cdrom),46(plugdev),116(lpadmin),118(admin),124(sambashare)

groups

  • Mostren informació del usuaris i grups
  • Sintaxi
$groups
[email protected]:~$ groups
jordi adm dialout cdrom plugdev lpadmin admin sambashare

whoami