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: 102 (torneu a la resta de temes)
Fitxers: LPI107.1_GestioUsuarisIGrups.pdf (LPI107.1_GestioUsuarisIGrups.odp), UD_8_13_gestio_usuaris.pdf,UD_8_11_admin_comptes.pdf (apunts Eva Dominguez)
Objectius: http://www.lpi.org/eng/certification/the_lpic_program/lpic_1/exam_102_detailed_objectives
Dipòsit SVN: https://svn.projectes.lafarga.cat/svn/lpi/Materials/Examen_102/107.1
Usuari: anonymous
Paraula de pas: qualsevol paraula de pas

Objectius del tema

107.1. Gestió d'usuaris i comptes de grup i els fitxers de sistema relacionats
Objective.jpg
  • Objectiu: Els candidats han de se capaços d'afegir, eliminar, suspendre o modificar comptes d'usuari.
  • Pes: 5
060317 Icon - Theory of Knowledge v01 pdc.jpg

Àrees Clau de Coneixement:

  • Afegir, modificar i eliminar usuaris i grups.
  • Gestionar la informació d'usuaris i grups a les bases de dades password i group.
  • Crear i gestionar comptes limitades de propòsit específic.
Icon list.jpg

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

Text-editor.svg

Apunts: LPI 107.1. Gestió d'usuaris i comptes de grup i els fitxers de sistema relacionats

Usuaris i autenticació a GNU/Linux

Introducció

  • Sistema Operatiu GNU/Linux
  • Característica rellevant: sistema multiusuari.
  • Cal disposar d’algun sistema que permeti distingir acada usuari de la resta.
  • A cada usuaris se li assigna un identificador únic dins del sistema conegut com el UID (User Identifier).
  • El UID no és suficient per establir uns requeriments mínims de seguretat i funcionalitat dins del sistema.
  • Cada usuari, a més de pel seu identificador propi, s’ha de caracteritzar per altres atributs fonamentals com ara la contrasenya d’accés al sistema, un directori propi, etc...

Comptes d'usuari

  • Estructura de dades administrativa que permet reunir totes les dades associades a un mateix usuari
  • El compte d’usuari engloba al conjunt d’atributs (fonamentals o no) que el caracteritzen i, per extensió, també a tots els fitxers i directoris associats a l’usuari.
  • Cal una base de dades per emmagatzemar els usuaris (pot ser un simple fitxer de text)
  • Nom de l’usuari (login): nom amb el qual l’usuari serà conegut dins del sistema. No poden existir dos noms iguals. S’assigna explícitament per l’administrador en el moment de la creació del compte.No es xifren ni s’oculten, qualsevol usuari del sistema pot conèixer, en principi, els noms de la resta d’usuaris.
  • Paraula de pas (password): és aconsellable que cada usuari introdueixi durant el login, a més del seu nom, una contrasenya per verificar la seva identitat. La contrasenya d’un usuari només hauria de ser coneguda per l’usuari, per això les contrasenyes sempre s’oculten per pantalla i es xifren en els fitxers on apareixen. Els usuaris haurien de canviar la contrasenya cada

certs temps en busca d’una major seguretat en l’accés al sistema. L’administrador pot obligar als usuaris a canviar la contrasenya cada cert temps imposant una data límit per al canvi

  • Directori d’entrada (directori home): directori on es situarà a l’usuari cada vegada que entri al sistema. Quan l’administrador crea el compte d’un nou usuari, pot indicar explícitament quin serà el seu directori d’entrada.
  • Identificador numèric (UID): és un identificador com el login però el UID serà sempre un número. Per norma general és un identificador únic. El propi sistema s’encarrega d’assignar automàticament el UID en el moment de la creació del compte d’usuari, encara que l’administrador pot establir-ho. Per conveni, es sol reservar un cert rang de valors (del 0 al 1000 per als comptes del sistema, del 1001 cap amunt per als usuaris externs al sistema o usuari normals)
uiid
0 - 1000 usuaris del sistema
1001 - endavant usuaris normals
  • Intèrpret d'ordres (shell): indica quin intèrpret d'ordres d’entre els disponibles s’activarà quan l’usuari entri al sistema. Si l’administrador no indica un shell per a l’usuari el propi sistema li assignarà el shell que estigui configurat per defecte del sistema (normalment bash o sh). Per indicar un shell és necessari indicar el camí absolut d’on està ubicat
  • Nom real de l’usuari: es tracta del nom real de l’usuari, no és imprescindible però pot servir per recordar qui és la persona real propietària d’un compte d’usuari.
  • Grup d’entrada (GID): és el grup prioritari del compte d’usuari. La prioritat d’aquest grup s’utilitza per a la política de drets.
  • Grups addicionals: són tots aquells grups dels quals pot ser membre l’usuari, excepte el seu grup d’entrada. Qualsevol dels grups addicionals d’un usuari pot passar a ser el seu grup prioritari en qualsevol moment. No és imprescindible que un usuari sigui membre de grups addicionals, per defecte, aquesta llista estarà buida.
  • Caducitat del compte: es contempla la possibilitat d’imposar una data de caducitat dels comptes d’usuari. Això evitarà que existeixin en el sistema comptes “abandonades” o oblidades pels seus propietaris consumint recursos inútilment. La data de caducitat es pot indicar de forma absoluta o relativa
  • A més de poder afegir i eliminar usuaris, l’administrador del sistema té la capacitat de definir i desfer grups d’usuaris. Els grups d’usuaris són agrupacions merament administratives: la existència d’un grup no suposa una relació directa entre els comptes dels usuaris inclosos en el grup
  • Aquestes agrupacions resulten útils a l’hora de facilitar o restringir fàcilment certs permisos a usuaris de similar categoria o necessitats operatives.
  • De forma semblant als usuaris, els grups també es caracteritzen per un identificador únic (GID) i per una sèrie d'atributs

Exemple d'usuaris i grups

Jordiromerounix142.png
  • On Esteban, Gerard i Willy són del Servei Tècnic. Willy col·labora amb els formadors i Gerard col·labora amb el servei de Vendes. Nicolàs i Marta són formadors però també col·laboren amb el Servei Tècnic. Marta, a més, col·labora amb el servei de comptabilitat. Àlex és un comercial que a més col·labora amb el servei de comptabilitat. Silvia només pertany al servei de comptabilitat.

Jerarquia dels usuaris

  • 3 tipus de comptes d'usuari
  • Es poden distingir tres tipus de comptes en UNIX:
  • root: és el “superusuari” que s’encarrega de les tasques administratives del sistema. No està afectat pels drets d’accés als arxius i pot fer més o menys de tot al sistema. El seu UID és 0.
  • Usuaris de sistema (bin, daemon, sync, apache...) : existeixen una sèrie de comptes que no s’assignen a persones físiques. Aquests comptes serveixen per a facilitar l’administració dels drets d’accés de certes aplicacions i dimonis. Aquests comptes solen tenir com a UID un número entre el 1 i el 499. Ordres com useradd o groupadd tenen una opció (-r, --system) que permet crear usuaris o grups de sistema.
  • Usuaris: P. ex. josep, ana ... : la resta de comptes d’usuari s’associen a persones reals; la seva funció és permetre als usuaris estàndards connectar-se i utilitzar els recursos de l’equip. El UID d’un usuari és normalment un número superior a 999
  • 3 tipus de grup
  • root: El seu GID és 0. Grup principal de l’administrador.
  • Grups de sistema: P. ex. bin, daemon, sync, apache... Tenen la mateixa funció que els comptes del mateix nom i permeten donar els mateixos drets d’accés a una sèrie d’aplicacions.
  • Grups d'usuaris: Aquests grups representen a una sèrie de persones reals que han d’accedir als mateixos arxius. Típicament tenen un GID superior o igual a 500 o 1000.
  • Sistema configurable
[email protected]:~$ cat /etc/login.defs |grep ID
UID_MIN			 1000
UID_MAX			60000
#SYS_UID_MIN		  100
#SYS_UID_MAX		  999
GID_MIN			 1000
GID_MAX			60000
#SYS_GID_MIN		  100
#SYS_GID_MAX		  999

UID i GID

Noms d'usuari

  • GNU/Linux és força flexible amb els noms d'usuari.
  • L'ordre useradd no estableix gairebé cap restricció als noms d'usuari Linux, es poden utilitzar els següents caràcters (estàndard IEEE Std 1003.1-2001):
  • Lletres (minúscules i minúscules): tot i així no es recomana (i algunes aplicacions no deixen) utilitzar majúscules.
  • Números
  • Guions baixos (underscores o _ )
  • Punts (periods): De totes maneres no es recomana l'ús.
  • Arrobes (@),
  • Dol·lar ($) al final del nom: Per compatibilitat amb els noms de màquina de Samba.
  • Recomanacions i restriccions en aplicacions de gestió d'usuaris d'alt nivell
  • Distribucions com Debian (ordre adduser) proposen noms d'usuari amb les següents característiques:
  • Mida màxima de 256 caràcters: es pot configurar segons els paràmetre LOGIN_NAME_MAX i LOGNAME_MAX (getconf)
  • El primer caràcter ha de ser una lletra
  • El fitxer de configuració de l'ordre adduser (/etc/adduser.conf) amb NAME_REGEX permet establir restriccions addicionals
  • El dol·lar ($) al final del nom d'usuari es suportat per compatibilitat amb Samba (Samba Machine Accounts).
  • Els noms d'usuaris normals han de ser minúscules. Als noms d'usuari de sistema se'ls permet utilitzar majúscules.

Paraules de pas. Shadow suite

  • On s'amaguen les paraules de pas
  • Abans el fitxer /etc/passwd contenia la paraula de pas xifrada (s'utilitzava el xifratge crypt). Actualment aquest fitxer conté:
[email protected]:~$ cat /etc/passwd | grep jordi
jordi:x:1000:1000:Jordi Romero,,,:/home/jordi:/bin/bash
  • Les paraules de pas es guarden xifrades a /etc/shadow
  • El sistema de paraules de pas ocultes és el sistema per defecte utilitzat a totes les distribucions Linux modernes. De fet s'està aplicant des de principis dels 90 que va ser quan es va implementar.
[email protected]:~$ sudo cat /etc/shadow
[sudo] password for jordi: 
root:!:15448:0:99999:7:::
daemon:*:15259:0:99999:7:::
bin:*:15259:0:99999:7:::
sys:*:15259:0:99999:7:::
...
jordi:$6$iEZXxsU2$yUtZ226DyCv9Sy78OTDPz.UVGBPhUkNHXvgT/K5Q0yCoVGf/DGThkBUGOREswNn7PnIh5yfYiUABRkIk8/rtl.:15448:0:99999:7:::
  • Al conjunt d'eines que permeten convertir fitxer de passwords tradicionals de Unix al format shadow més als programes de gestió d'usuaris i grups i login se'ls anomena shadow suite o shadow-utils (utilitats shadow).
  • Base de dades de grup o farem amb la comanda
$ cat /etc/group |more
[email protected]:~$ cat /etc/group |more
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:jordi
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
...
plugdev:x:46:jordi
sambashare:x:124:jordi
vboxusers:x:125:jordi

Esquemes d'autenticació

  • Authentication Schemes
  • Un esquema d'autenticació defineix la forma en que un usuari determinara la seva identitat.
  • Quan paguem amb targeta de crèdit utilitzem un esquema d'autenticació basat en DNI.
  • El més comú en informàtica és la contrasenya, però hi ha altres (clau pública, Smartcards...)
  • L'esquema d'autenticació bàsic de Linux és la contrasenya
  • Terminologia
  • Servei: aplicació que utilitza un esquema d'autenticació

NSSwitch

  • Name Service Switch (NSS)
  • Permet reemplaçar fitxers basics de configuració de Unix (per exemple: /etc/passwd, /etc/group, /etc/hosts) per bases de dades centralitzades
  • Aquest sistema és configurable mitjançant el fitxer:
[email protected]:~$ cat /etc/nsswitch.conf 
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat
 
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
  • Modulable
  • Mitjançant paquets es poden suportat diferents bases de dades:
[email protected]:~$ sudo apt-get install libnss
libnss3            libnss-db          libnss-lwres       libnss-rainbow2
libnss3-1d         libnss-extrausers  libnss-mdns        libnss-rsbac2
libnss3-dbg        libnss-gw-name     libnss-myhostname  libnss-sss
libnss3-dev        libnss-ldap        libnss-mysql-bg    
libnss3-tools      libnss-ldapd       libnss-pgsql2

PAM

  • PAM (Pluggable Authentication Modules) és un mecanisme flexible per l'autenticació d'usuaris
  • Permet utilitzar sistemes d'autenticació diferents al sistema tradicional d'autenticació (fitxer /etc/passwords) sense necessitat de canviar les aplicacions
  • PAM permet desenvolupar programes amb independència de l'esquema d'autenticació
  • S'utilitzen mòduls d'autenticació en temps d'execució. No cal tornar a compilar per canviar l'esquema d'autenticació
  • PAM és un invent de SUN (especificació amb diferents implementacions)
  • Linux-PAM és la implementació de PAM a Linux.
  • Fitxers de la carpeta /etc/pam.d
  • Alguns sistemes poden tenir la configuració de PAM tota al fitxer /etc/pam.conf.
  • Cada fitxer és un servei/aplicació. Exemple:
  • /etc/pam.d/login: configura l'ús de PAM per l'aplicació login.
  • Contenen una llista ordenada de normes amb la següent sintaxi:
  • type control module-path module-arguments
  • "Types". Separen les normes en diferents àmbits:
  • auth: com determinem que l'usuari és qui diu que és. També s'encarrega de l'assignació de grups.
  • password: Proveïx els mecanismes per canviar l'autenticació de l'usuari (contrasenya).
  • session: realitza tasques abans i/o després de que l'usuari s'hagi autenticat.
  • account: Determina qüestions que no són purament de l'autenticació (la contrasenya ha expirat?, hora i data d'accés correctes?, etc.)
  • "control". Determina que cal fer un cop l'execució sigui correcta o incorrecta:
  • requisite: Si el modul falla, es denega l'accés a l'usuari immediatament.
  • required: denega l'autenticació però es continua l'execució de la resta de mòduls abans de tornar el control a l'aplicació.
  • sufficient: El resultat del modul és ignorat si falla. Si és un èxit només serà un èxit de tota la pila si cap mòdul required ha fallat.
  • optional: s'ignora el resultat del modul. Només és necessari per tal de que l'autenticació sigui un èxit quan no hi han altres mòduls associats al mateix servei i tipus
  • Contingut de la carpeta /etc/pam.d
  • inclou una llista dels programes que utilitzen PAM
[email protected]:/etc/pam.d$ ls
atd             common-password                lightdm            polkit-1
chfn            common-session                 lightdm-autologin  ppp
chpasswd        common-session-noninteractive  login              samba
chsh            cron                           newusers           su
common-account  cups                           other              sudo
common-auth     gnome-screensaver              passwd
  • Contingut dels fitxers common
common-password  
#
# /etc/pam.d/common-password - password-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define the services to be
# used to change user passwords.  The default is pam_unix.
 
# Explanation of pam_unix options:
#
# The "sha512" option enables salted SHA512 passwords.  Without this option,
# the default is Unix crypt.  Prior releases used the option "md5".
#
# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
# login.defs.
#
# See the pam_unix manpage for other options. 

# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules.  See
# pam-auth-update(8) for details.
 
# here are the per-package modules (the "Primary" block)
password	[success=1 default=ignore]	pam_unix.so obscure sha512
# here's the fallback if no module succeeds
password	requisite			pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password	required			pam_permit.so
# and here are more per-package modules (the "Additional" block)
password	optional	pam_gnome_keyring.so 
# end of pam-auth-update config
common-session
#
# /etc/pam.d/common-session - session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive).
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules.  See
# pam-auth-update(8) for details. 
 
# here are the per-package modules (the "Primary" block)
session	[default=1]			pam_permit.so
# here's the fallback if no module succeeds
session	requisite			pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
session	required			pam_permit.so
# The pam_umask module will set the umask according to the system default in
# /etc/login.defs and user settings, solving the problem of different
# umask settings with different shells, display managers, remote sessions etc.
# See "man pam_umask".
session optional			pam_umask.so
# and here are more per-package modules (the "Additional" block)
session	required	pam_unix.so 
session	optional			pam_ck_connector.so nox11
# end of pam-auth-update config

  • Modules
  • module-path: el nom del modul (allotjat a la carpeta /lib/security) o el camí absolut.
  • module-arguments: Arguments per passar al mòdul.
  • Cada fitxer té les normes per un servei (aplicació) "PAM-aware".
  • Si l'aplicació utilitza PAM es pot canviar la autenticació sense modificar PAM
  • Cada norma executa un mòdul
  • Es poden combinar les normes per aconseguir autenticacions tan complexes com es desitgi.
  • Pam proporciona una sèrie de mòduls bàsics per treballar amb l'autenticació bàsica de Linux
  • Paquet libpam-modules
  • Es poden afegir mòduls addicionals per treballar amb altres autenticacions
Jordiromerounix143.png

Gestió d'usuaris i grups

Gestió d'usuaris

  • L'administrador del sistema disposa de les següents ordres per gestionar els usuaris del sistema:
  • useradd: Permet afegir usuaris a la base de dades d'usuaris (fitxer /etc/passwd i /etc/groups)
  • usermod: Permet modificar un usuari que ja existeix a la base de dades.
  • userdel: Permet eliminar usuaris
  • passwd: permet modificar les paraules de pas
  • chage: Permet modificar les dades d'expiració de les paraules de pas dels usuaris.
  • També es pot editar directament els fitxers /etc/passwd i /etc/shadow
  • No és recomanable ja que qualsevol error pot implicar que el sistema deixi de funcionar correctament.
  • En tot cas si s'han d'editar els fitxers directament utilitzeu vipw i vigrp.
  • A vegades cal editar directament els fitxer per què estem accedint al sistema des d'un LIVE-CD o qualsevol altre mitjà de recuperació del sistema.
  • Podeu utilitzar chroot per tal de poder utilitzar les ordres useradd i similars

Gestió de comptes d'usuari personals sense ser administrador

  • chgpr
  • Permet canviar només el grup
  • Sintaxi
$chgrp [-R ] <grup> <arxiu ... >
  • -R aplicar l'ordre de forma recursiva
  • El propietari pot cedir l'arxiu a qualsevol grup al qual pertanyi
  • 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
  • chfn
  • chsh
  • finger, who i whoami
  • passwd
  • expiry
  • gpasswd
  • id i groups
  • Mostren informació dels usuaris i grups
[email protected]:~$ groups
jordi adm dialout cdrom plugdev lpadmin admin sambashare vboxusers
[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),125(vboxusers)

finger

  • Quins usuaris estan connectats en un moment donat al sistema
[email protected]:~$ finger
Login     Name           Tty      Idle  Login Time   Office     Office Phone
jordi     Jordi Romero   pts/0          May  2 12:06 (:0)

who

  • Quins usuaris estan connectats en un moment donat al sistema
[email protected]:~$ who
jordi    pts/0        2012-05-02 12:06 (:0)

passwd

  • Permet modificar les contrasenyes dels usuaris
  • Per bloquejar un usuari o farem amb la comanda
$sudo passwd -l bob
[email protected]:~$ sudo passwd -l bob
passwd: password expiry information changed.

Comprovem el funcionament

[email protected]:~$ su bob Contrasenya: su: Error d'autenticació

  • Activar el compte
$sudo passwd -u bob
  • Forçar el canvi de paraula de pas
$sudo passwd -e bob
  • Exemple
[email protected]:~$ sudo passwd -e bob
passwd: password expiry information changed.
[email protected]jordi:~$ su bob
Contrasenya: 
Heu de canviar la contrasenya immediatament (us hi obliga l'administrador)
S'està canviant la contrasenya de bob.
contrasenya (actual) d'UNIX: 
Introduïu la nova contrasenya d'UNIX: 
Torneu a escriure la nova contrasenya d'UNIX: 
[email protected]:/home/jordi$ 
  • Consultar l'estat de totes les paraules de pas
[email protected]:~$ sudo passwd -a -S
root L 04/18/2012 0 99999 7 -1
daemon L 10/12/2011 0 99999 7 -1
...
jordi P 04/18/2012 0 99999 7 -1
sshd L 04/27/2012 0 99999 7 -1
bob P 05/02/2012 0 99999 7 -1
alicia P 05/02/2012 0 99999 7 -1
  • On hi ha 7 camps
  • Nom usuari
  • Estat: locked password (L), no password (NP), usable password (P).
  • Data de l'últim canvi de paraula de pas
  • Minimum age: temps mínim en dies que ha de transcórrer entre canvis de paraules de pas.
  • Maximum age: màxim número de dies de validesa de la paraula de pas
  • Warning period: dies abans de que caduqui la paraula de pas en que es rep un avís que està a punt de caducar.
  • Inactivity period: màxim temps en dies que pot estar inactiva la compte
  • Obtenció del password d'un usuari amb el programa John the Ripper
  • Instal·lem el programa amb la comanda
$sudo apt-get install john
  • Modifiquem el PAM per a poder fer la pràctica
$sudo nano /etc/pam.d/common-password
  • Busquem la linia
password        [success=1 default=ignore]      pam_unix.so obscure sha-512
  • I la modifiquem per
 password        [success=1 default=ignore]      pam_unix.so obscure md5
  • Creem l'usuari pep
$sudo adduser pep
  • Consultem el fitxer /etc/shadows
[email protected]:~$ cat /etc/shadow
...
pep:$1$XMppbYgO$m1GyX9jyQkwVHSzLJzIZy/:15462:0:99999:7:::
  • Executem el John the Ripper i comprovem el resultat
[email protected]:~$ sudo john -single /etc/shadow
Created directory: /root/.john
Loaded 4 password hashes with 4 different salts (generic crypt(3) [?/32])
pep              (pep)
guesses: 1  time: 0:00:03:33 100%  c/s: 38.64  trying: bob999991903 - 999991900
Use the "--show" option to display all of the cracked passwords reliably

chfn

  • Modifica el nom real de l'usuari
[email protected]:~$ chfn
Contrasenya: 
S'està canviant la informació d'usuari per a jordi
Introduïu el nou valor, o premeu ENTER per al predeterminat
	Nom complet: Jordi Romero
	Número d'habitació [aula20.3]:  
	Telèfon de la feina []: 977444444
	Telèfon de casa []: 

chsh

  • Modificar la shell
  • Podem veure les sells que podem utilitzar en el nostre sistema
[email protected]:~$ cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash

expiry

gpasswd

id

groups

whoami

  • Podem saber quin usuari sóc en un moment determinat
[email protected]:~$ whoami
jordi

Gestió de grups

  • chgrp
  • permet només canviar només el grup
  • Sintaxi
$chgrp [ -R] <grup> <arxiu...>
  • -R aplica l'ordre de forma recursiva
  • el propietari pot cedir l'arxiu a qualsevol grup que pertanyi
  • 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 gpasswd és l'encarregada de gestionar els grups
  • La informació dels grups es guarda als fitxers /etc/group i /etc/gshadow.
  • Els grups Linux poden tenir:
  • Administradors: Poden fer canvis al grup amb l'ordre gpasswd. L'usuari root sempre pot gestionar qualsevol grup. També pode canviar la paraula de pas
  • Membres: Usuaris que formen part del grup
  • Paraula de pas: la paraula de pas permet accedir al grup a qualsevol usuari sigui o no membre del grup
  • Afegir un grup
$sudo groupadd nom_del_grup
[email protected]:~$ sudo groupadd classe
[sudo] password for jordi: 
  • Comprovem la creació del grup
[email protected]:~$ cat /etc/group
...
classe:x:1003:
  • Només el superusuari pot crear grups
  • Hi ha grups que es generen automàticament, per exemple al crear un nou usuari se l'afegeix automàticament a un grup anomenat User Private Group (UPG) al qual només pertany aquest usuari

Gestió de paraules de pas

  • Ordres
  • passwd: gestió de paraules de pas d'usuaris
  • gpasswd: gestió de paraules de pas de grups
  • Fitxers
  • /etc/passwd i /etc/shadow
  • Bloquejar/activar un compte
$ sudo passwd -l 4prova
$ sudo passwd -u usuari

Expiració de paraules de pas

  • Es pot força la expiració d'una paraula de pas:
$ sudo passwd -e usuari

I es poden establir els valors de mínim de dies entre canvi de paraules de pas i màxim de dies de validesa d'una paraula de pas amb l'ordre chage.

  • Es pot consultar l'estat de totes les paraules de pas de tots els usuaris amb:
$sudo passwd -a -S
[email protected]:~$ sudo passwd -a -S
root L 04/18/2012 0 99999 7 -1
daemon L 10/12/2011 0 99999 7 -1
...
  • On hi ha 7 camps
  • Nom usuari
  • Estat locked password (L), no password (NP), usable password (P).
  • Data de l'últim canvi de paraula de pas
  • Minimum age: temps mínim en dies que ha de transcórrer entre canvis de paraules de pas.
  • Maximum age: màxim número de dies de validesa de la paraula de pas
  • Warning period: dies abans de que caduqui la paraula de pas en que es rep un avís que està a punt de caducar.
  • Inactivity period: màxim temps en dies que pot estar inactiva la compte.

Gestió d'usuari per lots i scripts

Afegir usuaris per lots (batch)

Scripts

Variables d'entorn

Variable d'entorn UID

USERNAME

LOGNAME

USER

Ordres

adduser versus useradd

Shadow-utils login

newgrp

  • Permet iniciar un nou interpret d'ordres amb un grup diferent
  • Útil per crear carpetes o fitxers que siguin propietat d'un grup diferent al nostre grup per defecte
  • Per tornar al grup per defecte només cal sortir del nou interpret d'ordres.
  • Relacionada amb les ordres de login, sudo, su, sg

shadow-utils passwd

useradd

  • Opcions
  • -c: Una descripció de l'usuari. Camp lliure sense cap mena de funció, més enllà de la funció informativa.
  • -d: Indica el camí absolut (PATH) a la HOME de l'usuari
  • -s: Indica el camí absolut (PATH) a l'interpret d'ordres per defecte de l'usuari.
  • -g: Indica el grup principal de l'usuari
  • -G: Indica la resta de grups dels quals es membre l'usuari.
  • -m: crea el compte d’usuari i el directori de treball: home del usuari
  • -r: crea un compte del sistema. Tindrà un UID dins del rang reservat als comptes del sistema i no es crearà un directori d’entrada per a aquest compte
  • Exemple
[email protected]:~$ sudo useradd -m -G users,sudo -c "alumne" alumne
  • Si no li instal·lem els password l'usuari es crea bloquejat,
[email protected]:~$ su alumne
Contrasenya: 
su: Error d'autenticació
  • Per tant crearem una contrasenya per al usuari alumne
[email protected]:~$ sudo passwd alumne
Introduïu la nova contrasenya d'UNIX: 
Torneu a escriure la nova contrasenya d'UNIX: 
passwd: s'ha actualitzat la contrasenya satisfactòriament
[email protected]:~$ su alumne
Contrasenya: 
$ 
  • Comprovacions
  • Per saber si un usuari s'ha creat correctament es pot mirar al fitxer /etc/passwd
[email protected]:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...
jordi:x:1000:1000:Jordi Romero,,,:/home/jordi:/bin/bash
  • També es pot utilitzar la comanda pwck que controla si el fitxer és correcte.
[email protected]:~$ sudo pwck
[sudo] password for jordi: 
user 'lp': directory '/var/spool/lpd' does not exist
user 'news': directory '/var/spool/news' does not exist
user 'uucp': directory '/var/spool/uucp' does not exist
user 'www-data': directory '/var/www' does not exist
user 'list': directory '/var/list' does not exist
user 'irc': directory '/var/run/ircd' does not exist
user 'gnats': directory '/var/lib/gnats' does not exist
user 'nobody': directory '/nonexistent' does not exist
user 'syslog': directory '/home/syslog' does not exist
user 'usbmux': directory '/home/usbmux' does not exist
user 'pulse': directory '/var/run/pulse' does not exist
user 'speech-dispatcher': directory '/var/run/speech-dispatcher' does not exist
user 'hplip': directory '/var/run/hplip' does not exist
user 'saned': directory '/home/saned' does not exist
pwck: no hi ha canvis


  • Opcions per defecte
  • Ho comprovem amb la comanda:
[email protected]:~$ useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no


  • Fitxer de configuració: /etc/default/useradd
[email protected]:~$ cat /etc/default/useradd
# Default values for useradd(8)
#
# The SHELL variable specifies the default login shell on your
# system.
# Similar to DHSELL in adduser. However, we use "sh" here because
# useradd is a low level utility and should be as general
# as possible
SHELL=/bin/sh
...


usermod

  • Permet modificar un usuari
  • sintaxis
$sudo usermod [opcions] LOGIN
  • Les opcions són molt similars a les de useradd

userdel

  • Permet eliminiar un usuari
$sudo userdel [opcions] LOGIN
  • L'opció -f permet eliminar l'usuari tot i que tingui una sessió d'usuari oberta

groupadd

groupmod

groupdel

passwd

chage

  • Change Age
  • Permet gestionar l'expiració de les paraules de pas. Un usuari pot consultar les dades d'expiració associades a la seva paraula de pas amb:
  • Del nostre usuari
[email protected]:~$ sudo chage -l jordi
Últim canvi de contrasenya				: abr 18, 2012
La contrasenya caduca					: mai
Contrasenya inactiva					: mai
El compte caduca					: mai
Número mínim de dies entre canvi de contrasenya		: 0
Número màxim de dies entre canvi de contrasenya		: 99999
Número de dies d'avís abans que la contrasenya expiri	: 7


  • Establir els períodes de vigència de les paraules de pas amb. Les opcions més utilitzades són:
  • estableix la data de l’últim canvi de la contrasenya.
$chage -d ul_dia nom_usuari
  • número de dies que han de passar per canviar la contrasenya
$chage -m min_dies nom_usuari
  • número de dies màxim que pot estar amb la mateixa contrasenya sense canviar-la.
$chage -M max_dies nom_usuari
  • indica quants dies abans s’avisarà a l’usuari de que la contrasenya expirarà i que ha de canviar-la.
$chage -W warn_dies nom_usuari
  • número de dies que han de passar després de que la contrasenya expiri per a que el compte es deshabiliti de forma automàtica si la contrasenya no ha estat canviada.
$chage -I inac_dies nom_usuari
  • número de dies per a que expiri el compte i es deshabiliti de forma automàtica.
$chage -E exp_dies nom_usuari

chfn

chsh

chpasswd

chgpasswd

cppw

pwck

grpck

grpconv

grpunconv

newusers

shadowconfig

Debian

adduser

addgroup

core-utils

chgrp

id

groups

who

whoami

/etc/passwd

  • Conté la base de dades local d'usuaris.
  • Fixeu-vos que parlem de base de dades local, és a dir que també hi ha la possibilitat d'utilitzar bases de dades d'usuaris remote, p. ex. LDAP, NIS, etc...
[email protected]:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
...

/etc/shadow

/etc/group

/etc/gshadow

/etc/skel

  • Carpeta HOME per defecte
  • Utilitzada per ordres com useradd (useradd -m) o adduser
  • Si s'utilitzin altres ordres com adduser (només en sistemes de la família Debian) es crea automàticament la carpeta home també a partir d'skel
  • Tingueu en compte que es pot configurar useradd per tal d'utilitzar un altre carpeta:
[email protected]:~$ cat /etc/default/useradd |grep skel
# The SKEL variable specifies the directory containing "skeletal" user
# SKEL=/etc/skel
  • Cal tenir en compte que qualsevol canvi que feu a la carpeta /etc/skel no s'aplicarà als usuaris ja existents

/etc/adduser.conf

/etc/deluser.conf

/etc/login.defs

vi

vipw

vigrp