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

Plantilla per prendre apunts

Usuaris i autenticació a GNU/Linux

Introducció

Sistema Operatiu GNU/Linux

  • Característica rellevant: sistema multiusuari.
  • Cal disposar d’algun sistema que permeti distingir a cada usuari de la resta.
  • A cada usuari 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).

Camps d'un compte d'usuari:

  • 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 499 per als comptes del sistema, del 500 cap amunt per als usuaris externs al sistema o usuari 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


Exemple d'usuaris i grups

Jerarquia dels usuaris

UID i GID

Noms d'usuari

Paraules de pas. Shadow suite

Esquemes d'autenticació

NSSwitch

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.

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.

Gestió d'usuaris i grups

Gestió d'usuaris

Gestió de comptes d'usuari personals sense ser administrador

finger

[email protected]:~$ finger
Login     Name          Tty      Idle  Login Time  Office     Office Phone
jordi     Jordi Pujol   tty7       23  May  2 11:45 (:0)
jordi     Jordi Pujol   pts/0          May  2 11:55 (:0)

who

[email protected]:~$ who
jordi    tty7         2012-05-02 11:45 (:0)
jordi    pts/0        2012-05-02 11:55 (:0)

passwd

Serveix per canviar la contrasenya:

$ passwd

Per canviar la contrasenya d'un altre usuari:

$ passwd nomusuari

Per consultar l'estat de totes les contrasenyes de tots els usuaris:

$ sudo passwd -a -S

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.

chfn

Serveix per canviar el nom complet d'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 Pujol
Número d'habitació [Aula 20.3]: 
Telèfon de la feina []: 664265582
Telèfon de casa [664265582]: 

GECOS: Ubicació, telèfon i telèfon particular.

chsh

Permet modificar el shell:

[email protected]:~$ chsh
Contrasenya: 
S'està canviant l'intèrpret d'accés per a jordi
Introduïu el nou valor, o premeu ENTER per al predeterminat
Intèrpret d'accés [/bin/bash]:

expiry

gpasswd

id

groups

whoami

Els usuaris que estan actualment connectats al sistema.

[email protected]:~$ whoami
jordi

Gestió de grups

Permet canviar només el grup:

$ chgrp
[email protected]:~$ groups
jordi adm dialout cdrom plugdev lpadmin admin sambashare
[email protected]:~$ touch jordi
[email protected]:~$ chgrp -R jordi jordi

Gestió de paraules de pas

Expiració de paraules de pas

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

shadow-utils passwd

useradd

Serveix per afegir usuaris.

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.

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

[email protected]:~$ sudo useradd -m -G jordi -c "usuarinou" usuarinou
[sudo] password for jordi: 
[email protected]:~$ sudo passwd usuarinou
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 usuarinou
Contrasenya: 
$
Usuarinou JordiPujol.png

Fitxer de configuració per defecte:

[email protected]:~$ cat /etc/default/useradd | more
# 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
#
# The default group for users
# 100=users on Debian systems
# Same as USERS_GID in adduser
# This argument is used when the -n flag is specified.
# The default behavior (when -n and -g are not specified) is to create a
# primary user group with the same name as the user being added to the
# system.
# GROUP=100
#
# The default home directory. Same as DHOME for adduser
# HOME=/home
#
# The number of days after a password expires until the account 
# is permanently disabled

usermod

Permet modificar un usuari.

Sintaxi:

$$ sudo usermod [opcions] LOGIN

Les opcions són molt similars a les de useradd

# Exemple de creació d'usuari a Ubuntu
$ sudo useradd -m usuari
$ sudo usermod -a -G adm,dialout,cdrom,plugdev,lpadmin,admin,sambashare usuari

userdel

Permet eliminar 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

chfn

chsh

chpasswd

chgpasswd

cppw

pwck

grpck

grpconv

grpunconv

newusers

shadowconfig

Debian

adduser

addgroup

core-utils

chgrp

id

groups

who

whoami

/etc/passwd

/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:

## cat /etc/default/useradd || grep skel
## The SKEL variable specifies the directory
containing "skeletal" user
## SKEL=/etc/skel

NOTA: 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