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

Plantilla

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

Linux és un sistema operatiu multiusuari que permet tenir múltiples usuaris treballant alhora al sistema. Sovint, cada usuari disposa d'una carpeta pròpia, la qual, normalment i segons l'estàndard FHS, es troba al directori /home. En aquesta carpeta, els usuaris tenen els fitxers propis però comparteixen amb la resta d'usuaris els serveis proporcionats pel sistema operatiu, les aplicacions, les impressores i altre maquinari, la xarxa, etc.

En aquest escenari, es fa necessari protegir certs arxius, i és aquí on entren en joc els permisos. La seguretat és un tema molt important en sistemes operatius multiusuari, i en el cas dels fitxers, els permisos són el mecanisme de control d'accés proporcionat per defecte en sistemes de fitxers Linux.

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

IMPORTANT: Cal que tingueu en compte, que els permisos són un mecanisme proporcionat pel sistema de fitxers. Alguns sistemes de fitxers com FAT32 o NTFS no suporten permisos de Linux, i l'accés que tinguem als fitxers d'aquest sistemes, dependrà de com hem muntat el sistema de fitxers. Consulteu l'objectiu LPI_104.1 (Crear particions i sistemes de fitxers), per tal d'obtenir més informació.

Un dels mecanismes de control d'accés més utilitzat és el sistema de permisos tradicionals de Unix. Tots els derivats de Unix (i sistemes compatibles amb POSIX) com Linux o Mac OS X suporten aquest sistema.

NOTA: Existeixen altres mecanismes de protecció de fitxers com les llistes de control d'accés. Aquest mecanismes són utilitzats en sistemes operatius com OpenVMS o sistemes Windows NT i derivats (Windows 2000, Windows XP...) i també es poden implementar a Linux. Altres sistemes operatius no suporten protecció de fitxers, com DOS i les seves variants (Windows 95, Windows 98, Windows Me...)[1]

Establir els permisos d'un fitxer permet determinar explícitament, qui té drets (i quin tipus de drets te) d’accés a aquest arxiu. Molt relacionat amb el concepte de permisos d'un fitxer, existeix el concepte de propietari d'un fitxer. La combinació de propietari i permisos d'un fitxer, estableix el que un usuari concret pot fer amb aquest fitxer. Tots dos conceptes estan molt lligats, ja que els permisos no tenen sentit sense propietaris i els propietaris no tenen sentit sense permisos.

Hi han dos nivells de propietat d'un fitxer:

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

Els mecanismes per assignar permisos a un propietari o a un grup són similars però no idèntics.

NOTA: Els drets d’accés a un arxiu s’anomena també “mode” en Unix.

Linux classifica als usuaris en tres tipus:

  • El propietari (owner): és l'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. Posteriorment l'usuari pot ser modificat amb l'ordre chown.
  • 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. Posteriorment el grup també es pot modificar amb l'ordre chown.
  • Tota 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).

NOTA: Aquest tipus també són coneguts com entitats

Per cadascuna de les entitats, podem assignar els següents permisos:

  • Permís de lectura (read): indicat pel caràcter r. Aquest permís permet obrir l’arxiu i veure el seu contingut. En el cas d'un directori, ens permet llistar el contingut del directori.
  • Permís d’escriptura (write): indicat per una w. Aquest permís permet modificar el fitxer (canviar el contingut). En el cas d'un directori, crear dintre del directori noves entrades, ja siguin fitxers o subdirectoris, eliminar-les o canviar els noms.
  • Permís d’execució (execution): indicat per una x. Aquest permís indica si un fitxer regular es pot executar. En el cas dels directoris indica que es pot accedir. Si intentem accedir a un directori sobre el qual no tenim permís d’execució obtindrem un missatge de permís denegat.

A aquests bits se'ls anomena també bits de permisos (permision bits).

Permisos de lectura

Les següents propietats s'apliquen a un fitxer amb 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. Per amagar un fitxer cal posar-lo en una carpeta sense permisos de lectura.
  • No permet fer cap tipus de modificació, ni del nom del fitxer, ni dels continguts del fitxer, ni del PATH o camí del fitxer. És a dir el fitxer no es pot moure amb l'ordre mv.
  • El permís de lectura no determina si podem canviar o no els permisos o el propietari d'un fitxer. Només el propietari d'un fitxer o el superusuari poden canviar els permisos i el propietari d'un fitxer. A més cal tenir en compte que el propietari (a no ser que sigui el superusuari) no pot assignar el fitxer a un altre usuari ni a cap grup al que no pertanyi.
  • Es poden fer enllaços simbòlics i durs a un fitxer amb permisos de lectura però això no ens permet modificar el fitxer. Si que podem però eliminar l'enllaç (no elimina el fitxer original).
  • En el cas dels directoris, el permís de lectura determina si podem visualitzar els continguts del directori. El directori en si és visible (a no ser que estigui dins d'una carpeta a la qual no tenim permisos de lectura). Si no tenim permisos de lectura tampoc podrem fer que aquell directori sigui el nostre directori de treball (és a dir no podem utilitzar l'ordre cd).
$ cd
$ sudo mkdir -c carpeta/carpeta_oculta
$ chmod 700 carpeta
$ ls carpeta 
ls: no s’ha pogut obrir el directori carpeta: Permission denied
$ sudo ls carpeta
carpeta_oculta

Permisos d'escriptura

  • Permet modificar el contingut del fitxer.

Directoris:

  • El permís d'escriptura en directoris pot ser una mica confús. Cal tenir en compte que els directoris són un tipus especial de fitxers. Sí un usuari té permisos d'escriptura en un directori, aleshores pot escriure al directori, és a dir pot crear nous fitxers, esborrar fitxers o canviar el nom de fitxers encara que no sigui el propietari del fitxers, així com modificar sense tenir permisos en els fitxers concrets. Podem pensar la modificació com l'eliminació del fitxer, la creació d'un nou fitxer, amb el mateix nom, i finalment amb el contingut (modificació) que volem.
  • Es pot modificar el sticky bit per tal de controlar aquest perillós comportament.

Permisos d'execució

  • Els permisos d'execució tenen sentit en fitxers ordinaris o directoris, però no tenen cap sentit en altres tipus de fitxers, com per exemple els dispositius.
  • Que un fitxer tingui permisos d'execució 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:

  • El bit d'execució en un directori significa que es pot accedir al directori.

El superusuari i els permisos

Les restriccions d'accés no s'apliquen a l'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.

Però fins i tot el superusuari necessita també el bit d'execució per executar un programa:

$ su
# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1/ls.1posix.gz
# ls -l /bin/ls
-rwxr-xr-x 1 root root 96216 2008-06-27 02:31 /bin/ls
# chmod 644 /bin/ls
# ls
bash: /bin/ls: Permission denied
# chmod 755 /bin/ls

Cal tenir en compte però que el superusuari pot modificar els permisos de qualsevol fitxer amb chmod.

NOTA: Sí que 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

.

Notació simbòlica

Es basa en els caràcters:

  • r (read), w (write) i x (execution) per indicar els permisos.
  • 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.

Consulteu l'ordre chmod per saber com es poden canviar els permisos d'un fitxers utilitzant aquesta notació.

Notació binaria i notació octal

La notació binaria, és la codificació en 3 bits dels permisos de cada entitat. Posant el bit a 1 quan el permís corresponent està actiu i a 0 quan no ho està. Per exemple:

101 és la codificació dels permisos r-x

Un número de 3 bits pot codificar-se en una sola xifra de base octal:

Permisos (simbòlic) Notació binaria Notació octal
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7

Repetint això per a les 3 entitats, els permisos rwxr-xr-- pot traduir-se en notació octal per 754.

Per als permisos SUID, SGID i Sticky, s’afegeix a aquest número de base octal una xifra suplementària a l’esquerra, segons la relació:

Permisos (simbòlic) Notació binaria Notació 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

Per exemple la notació octal 2754 són els permisos rwxr-sr--.

Una altra forma ràpida de convertir els permisos de Unix a notació octal és sumar els valors 4, 2 i 1 per a cada conjunt de 3 permisos quan estan actius.

NotacioOctalPermisos.png

Bits especials de permisos

SUID

SUID ve de Set User ID. Aquesta opció s'utilitza conjuntament amb fitxers amb permisos d'execució i 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.

Per exemple 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. 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. Per exemple, l'ordre ping en alguns sistemes com Ubuntu:

# ls -l /bin/ping
-rwsr-xr-x 1 root root 30856 2007-12-10 18:33 /bin/ping

Té el SUID activat, per què la creació de paquets ICMP requereix accés de superusuari.

NOTA: Activar el SUID en un directori no té cap sentit ni utilitat

IMPORTANT: Per raons de seguretat, els permisos especials SUID i SGID funcionen únicament amb arxius binaris (codi compilat) i no amb els scripts (exceptuant els scripts Perl)

Cal tenir en compte que els fitxers que no són d'execució i tenen el SUID marcat, es mostren amb una S (s majúscula) en compte de s minúscula:

$ ls -la | grep prova
-rwSr--r--  1 sergi sergi     0 2009-11-14 11:53 prova_setuid
$ ./prova_setuid
bash: ./prova_setuid: Permission denied

Per afegir aquest bit amb chmod:

$ sudo chmod u+s nom_fitxer

per treure'l:

$ sudo chmod u+s nom_fitxer

SGID

SGID ve de Set Group ID. El que fa el SGID depèn de si es tracta d'un fitxer o de un directori:

  • Fitxer amb SGID: Aquesta opció é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.
  • Directori amb SGID: 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.

NOTA: Tant el SUID com el GUID són bits potencialment insegurs. Només cal utilitzar-los quan no hi ha un altre remei i cal que els programes que els utilitzin estiguin ben programats per tal d'evitar escalades de privilegis

Cal tenir en compte que els fitxers que no són d'execució per al grup i tenen el GID marcat, es mostren amb una S (s majúscula) en compte de s minúscula:

$ ls -la | grep prova
-rwxrwSr--  1 sergi sergi     0 2009-11-14 11:53 prova_gid

Per activar-lo amb chmod:

$ sudo chmod g+s nom_fitxer

Per desactivar-lo:

$ sudo chmod g-s nom_fitxer

Que passa si:

What if you:

  • Pugem un fitxer a una carpeta amb SGID?: El fitxer hereta el GID del directory on el col·loquem

mv a file into an SGID directory? -- It keeps its current GID.

cp a file into an SGID directory? -- It inherits the GID of the directory.

mkdir inside an SGID directory? -- It inherits the GID of the enclosing directory and is also marked SGID.

Sticky bit

L'Sticky bit ​o bit enganxifós, ha tingut diferents significats durant la història de Unix. En la majoria de sistemes operatius moderns, aquest bit especial 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.

El bit enganxifós s'indica amb una t al bit d'execució de l'entitat altres.

NOTA: En un fitxer, l'sticky bit històricament feia que l'executable seguis en memòria fent més ràpida la seva execució. Actualment Linux ignora aquest bit en fitxers

Cal tenir en compte que els fitxers o directoris que no són d'execució per a la resta d'usuaris i tenen el sticky bit marcat, es mostren amb una T (t majúscula) en compte de t minúscula:

$ ls -la | grep prova
drwxrwxrwT  1 sergi sergi     0 2009-11-14 11:53 prova_setuid

Per modificar l'sticky bit amb chmod:

Afegir:

$ chmod o+t directori

Treure:

$ chmod o-t directori

Recursos:

Carpeta /tmp

Els drets estàndard de Unix fan que tot usuari amb els permisos rwx sobre un directori pugui crear arxius en ell, però també esborrar tots els que es troben en ell. 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:

$ ls –ld /tmp
  drwxrwxrwt 5 root root 4096 jun 3 02:32 /tmp/
$ touch /tmp/arxiudewilly
$ ls –l /tmp
  total 0
 -rw-r--r-- 1 nicolas curs 0 jun 2 02:32 arxiudenicolas
 -rw-r--r-- 1 willy      tecnic 0 jun 3 02:32 arxiudewilly
$ rm /tmp/arxiudenicolas
  rm:borrar un archivo protegido en escritura archivo normal vacío ‘/tmp/arxiudenicolas’? S
  rm:no se puede borrar ‘/tmp/arxiudenicolas’: Operation not permitted

Enllaços simbòlics i permisos

NOTA: Els enllaços simbòlics sempre apareixen a la sortida de ls amb tots els permisos: $ ls -l /etc/rc3.d/S16ssh lrwxrwxrwx 1 root root 13 2009-06-22 21:13 /etc/rc3.d/S16ssh -> ../init.d/ssh En cap cas però, un enllaç simbòlic ens permetrà accedir a un fitxer al que no teníem accessos. Sempre podem crear un enllaç simbòlic a un fitxer que ens sigui visible en una carpeta en la que tinguem permisos d'escriptura. En canvi, les operacions de lectura i de modificació de l'enllaç són operacions de lectura i modificació al fitxer enllaçat i s'apliquen les restriccions del fitxer enllaçat. L'operació d'eliminació d'un enllaç, només pot ser realitzada pel propietari de l'enllaç.

Taula resum

Permís Símbol (en notació simbòlica) Símbol (en notació octal) Permisos sobre fitxers Permisos sobre directoris
Read r 4 Examinar els continguts, copiar el fitxer (ordre cp). Llistar el contingut del directori
Write w 2 Modificar els continguts, modificar el nom o el camí (ordre mv) o eliminar el fitxer (ordre rm). Crear i esborrar fitxers dins del directori.
Execute x w Executar fitxers Llegir i escriure fitxers ja existents al directori.

Usuaris (propietaris)

L'examen 101 no compte cap tema de gestió d'usuaris. Aquest tema es veu a l'examen 102.

Consulteu 107.1_Gestionar_comptes_d'usuaris_i_grups_i_els_fitxers_de_sistema_relacionats#Usuaris.

Grups

Consulteu 107.1_Gestionar_comptes_d'usuaris_i_grups_i_els_fitxers_de_sistema_relacionats#Grups

Consultar els permisos d'un fitxer

Com ja hem comentat al tema LPI_103.1 (Treballar a la línia d'ordres), l'ordre que ens permet consultar els permisos d'un fitxer és ls (també podem utilitzar stat) amb l'opció -l (long list format):

$ ls -l
total 4948900
-rw-r--r-- 1 vlino vlino     644666 2009-09-11 08:03 des-Per.pdf

On els permisos són la cadena de caràcters de la primera columna de sortida. A l'exemple:

-rw-r--r--

Els permisos estan dividits en quatre seccions:

La primera secció (el primer caràcter), descriu el tipus d’arxiu. Ens podem trobar, entre d'altres, les següents possibilitats:

d: directori
-: fitxer
b: Dispositiu de blocs ( Per exemple un disc)
c: Dispositiu de caràcters ( Per exemple un teclat)
l: Enllaç simbòlic
s: socket

Les següents tres seccions estan formades per tres caràcters cadascuna, i mostren els permisos per a les tres categories d’usuaris o entitats:

Permisos.png
Permisos1.png

Gestionar els propietaris d'un fitxer. Ordre chown

Consulteu chown. També es poden utilitzar eines gràfiques com Nautilus o Konqueror per tal de gestionar els permisos d'un fitxer

Gestionar els permisos d'un fitxer. Ordre chmod

Consulteu chmod. També es poden utilitzar eines gràfiques com Nautilus o Konqueror per tal de gestionar els permisos d'un fitxer

ordre find

Consulteu també 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

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

Ordres

chmod

Chmod vol dir Change Mode (canviar el mode). Com ja us hem comentat abans, el mode es un altre forma de referir-se als permisos d'un fitxer. Per tant, chmod permet canviar els permisos (o “mode”) dels arxius. Només el propietari de l’arxiu i l’administrador del sistema (root) poden utilitzar-lo, però 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).

La sintaxi és:

$ chmod [-R] <permisos> <arxiu ...>

On:

  • -R: indica a la comanda que apliqui el canvi de forma recursiva.
  • permisos: Hi ha dos maneres d’indicar els permisos d’accés a un arxiu en Unix: en notació simbòlica i en notació octal.
  • arxiu ...: el camí al arxiu o arxius que es volen modificar.

Vegem primer alguns exemples de modificació de permisos amb notació simbòlica. Es basa en els caràcters:

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

Per afegir o treure permisos podem utilitzar els símbols:

  • +: 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.
  • <entitat(s)>[+-=] <permís(os)>: Per exemple, u+x afegeix (+) el permís d’execució (x) per al propietari (u).

Vegem alguns exemples:

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

La resta de permisos (bits de permisos especials) s’activen amb:

  • La lletra s i la entitat u per al SUID
  • La lletra s i la entitat g per al SGID
  • La lletra t i la entitat o per a l'Sticky bit.

Exemples:

  • u+s: afegeix (+) el bit SUID (s i u).
  • g+s: afegeix (+) el bit SGID (s i g).
  • o+t: afegeix (+) el bit Sticky (t i o).

Vegem ara la notació octal. La sintaxi és:

$ sudo chmod xyz fitxer

on:

  • x: Són els permisos del propietari
  • y: Són els permisos del grup
  • z: Són els permisos d'altres

I on xyz són un número que es calcula de la forma següent. Cada x,y o z serà la suma de:

  • Lectura: val 4
  • Escriptura: val 2
  • Execució: val 1

Per tant un valor entre 0 i 7 on:

  • 7: tots els permissos
  • 6: lectura/escriptura
  • 5: lectura/execució
  • 4: només lectura
  • 3: Escriptura i execució
  • 2: Només escriptura
  • 1: Només execució
  • 0: cap permís

Alguns exemples:

Establir tots els permisos per a tothom':

$ sudo chmod 777 fitxer

Establir tots els permisos per al propietari:

$ sudo chmod 700 fitxer

Permisos per defecte (sinó es modifica umask) de fitxers:

644

Permisos per defecte (sinó es modifica umask) de carpetes:

755

Establir permisos d'execució per a tothom:

$ sudo chmod +x fitxer_executable

Establir permisos de forma recursiva:

$ sudo chmod -R 644 carpeta

NOTA: Atenció! Executar aquesta comanda pot tenir repercussions imprevistes segons com i on es faci. Per exemple segurament no volem aplicar els mateixos permisos a carpetes que a fitxers! Consulteu la comanda find per canviar permisos només a fitxers o només a directoris:

Recursos:

umask

Vegeu: sftp umask

Els permisos d’accés predeterminats dels fitxers acabats de crear, es defineixen pel valor d’una màscara ("file mode creation mask") que s’aplica al conjunt de permisos estàndard. Els sistemes operatius moderns Linux, permeten indicar la màscara de dos maneres:

NOTA: Umask pot ser un valor confús ja que les dos opcions que hi ha són antagòniques. Una estableix en positiu i l'altre en negatiu! A més veure que hi ha dos valors de referència, segons parlem de fitxers o directoris

L'ordre umask (user mask), per defecte, mostra el valor de la màscara en notació octal:

$ umask
0022

NOTA: El primer 0 només indica que la notació és octal

També podem consultar el valor de la màscara en notació simbòlica:

$ umask -S
u=rwx,g=rx,o=rx

Que és el valor per defecte dels fitxers.

Com podeu veure el valor habitual de la màscara és 0002 en notació octal, que seria en notació simbòlica -------w-. Però com la notació simbòlic indica el que volem no el que no volem cal restar dels valors de referència. Hi ha dos valors de referència, segons es tracti d'un fitxer o directori:

  • Fitxers: octal -> 0666 simbòlica -> rw-rw-rw-
  • Directoris: octal -> 0777 simbòlica -> rwxrwxrwx

Així els permisos per defecte són:

Directoris
Valor de referència                                --> 0777
Màscara (umask)                                    --> 0022
Permisos per defecte dels fitxers acabats de crear --> 0755 --> rwxr-x-r-x
Fitxers:
Valor de referència                                --> 0666
Màscara (umask)                                    --> 0022
Permisos per defecte dels fitxers acabats de crear --> 0644 --> rwxr-x-r-x

Tal com podeu comprovar si executeu:

$ mkdir umask; cd umask
$ mkdir directori
$ mkdir fitxer
$ ls -l
total 8
drwxr-xr-x 2 sergi sergi 4096 2009-11-01 18:12 directori
drwxr-xr-x 2 sergi sergi 4096 2009-11-01 18:12 fitxer

L'ordre umask també permet modificar el valor de la màscara. Per exemple:

$ umask u=rwx,g=rwx,o=
$ mkdir fu
$ touch bar
$ ls -l
drwxrwx--- 2 dave dave 512 Sep  1 20:59 fu
-rw-rw---- 1 dave dave   0 Sep  1 20:59 bar

El valor de la màscara s'aplica només durant la duració de la sessió i per a l'usuari que ha modificat la màscara, és a dir, es torna a restaurar el valor per defecte al finalitzar una sessió o obrir una nova terminal. Tot els processos executats des de una terminal a la que se li ha canviat el valor de la màscara, hereten la nova màscara.

Per establir per defecte una nova màscara, caldria modificar la configuració de la shell (p. ex. el fitxer ~/.bashrc a nivell d'usuari o /etc/profile a nivell de sistema).

NOTA: Si el valor de la màscara supera el valor per defecte (en el cas dels fitxers) el resultat és 0. Per exemple, una màscara 027 si es resta al valor per defecte 666 queda com a resultat 640 i no pas 64-1

Opcio umask de mount

Consulteu mount, per veure com es pot establir la màscara per defecte d'alguns sistemes de fitxers (fat, hfs, hpfs, ntfs) en el moment de muntar-los.

chown

Aquesta comanda ens 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 que és seu). Exemples:

Establir propietari i grup d'un fitxer:

$ sudo chown usuari:grup fitxer

Establir propietari d'un fitxer:

$ sudo chown usuari:grup fitxer

Establir grup d'un fitxer:

$ sudo chown :grup fitxer

O si ets els propietari:

$ chown usuari:grup fitxer

Establir propietari de forma recursiva:

$ chown -R usuari:grup carpeta
NOTA: Atenció! Executar aquesta comanda pot tenir repercussions imprevistes segons com i on es faci. 

Consulteu el manual per a obtenir una referència de totes les opcions possibles:

$ man chown

Podeu consultar també el manual a Internet:

També podeu utilitzar info:

$ info coreutils 'chown invocation'

chgrp

chgrp ve de change Group. El grup per defecte assignat als nous arxius és el grup principal de l’usuari que l’ha creat, a menys que estigui habilitat el permís SGID en el directori on es crea el fitxer. L'ordre chgrp permet canviar aquest grup; l’usuari pot cedir l’arxiu a qualsevol grup al qual pertanyi:

$ chgrp [-R] <grup> <arxiu ...> 

on -R indica a la comanda que apliqui el canvi de forma recursiva (és a dir, a tots els arxius i subdirectoris del directori indicat com a paràmetre)

$ id
uid=506(alex) gid=502(vendes) grupos=502(vendes),503(compta)
$ touch arxiu
$ ls -l arxiu
  -rw-r--r-- 1 alex vendes 0 jun 3 03:58 arxiu
$ chgrp comptabilitat arxiu
  -rw-r--r-- 1 alex compta 0 jun 3 03:58 arxiu

L'ordre chown (“change owner”) també permet canviar el propietari d’un arxiu però només l’administrador té els permisos necessaris per executar aquesta ordre.

id

Mostra els groups d'un usuari i a més els seus identificadors (uid i gid)

$ id
uid=1000(sergi) gid=1000(sergi) grups=4(adm),20(dialout),24(cdrom),46(plugdev),106(lpadmin),121(admin),122(sambashare),1000(sergi)

groups

Permet consultar els grups d'un usuari. Sense opcions mostra els grups de l'usuari que executa l'ordre:

$ groups
sergi adm dialout cdrom plugdev lpadmin admin sambashare

Però també podem consultar els grups als que pertany un altre usuari:

$ groups root
root : root

Vegeu també l'ordre id.

whoami

Consulteu whoami

Vegeu també

Enllaços externs