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ó

A part de l'usuari i la contrasenya, els usuaris tenen més dades importants.

Els usuaris s'identifiquen per UID.

El superusuari te el UID 0.


Comptes d'Usuaris

Es l'estructura de dades administrativa que permet reunir totes les dades associades a un mateix usuari.

Els comtes d'usuari contenen els directoris de cada usuari.

Cal una base de dades per a emmagatzemar els usuaris.

Camps d'un compte d'usuari

  • Nom de l'usuari (login); no en poden haver dos d'iguals.
  • Paraula de pas (password); hi ha polítiques de passwords a l'hora de gestionar els usuaris i la seguretat.
  • Directori d'entrada (home); es on es situa el directori principal de cada usuari.
  • Identificador numèric (UID); es un identificador com el login.
  • El UID 0 es el del superusuari.
  • Del 1 al 999 son del sistema.
  • El dels usuaris comença a partir del 1000.
[email protected]:~$ id 
uid=1000(alumne) gid=1000(alumne)  grups=4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare),1000(alumne)
 


Exemple d'usuaris i grups

Jerarquia dels usuaris

UID i GID

Noms d'usuari

Paraules de pas. Shadow suite

Esquemes d'autenticació

NSSwitch

PAM

Pluggable Authentication Modules) és un mecanisme flexible per l'autenticació d'usuaris

Caracteristiques

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

Aplicacions que necessiten autentificacio

[email protected]:/etc/pam.d$ ls
atd              common-session                 gnome-screensaver  ppp
chfn             common-session-noninteractive  login              samba
chpasswd         cron                           login.original     sshd
chsh             cups                           newusers           su
common-account   cvs                            other              sudo
common-auth      gdm                            passwd
common-password  gdm-autologin                  polkit-1
[email protected]:/etc$ cd pam.d
[email protected]:/etc/pam.d$ geany 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=3 default=ignore]	pam_unix.so obscure sha512
password	[success=2 default=ignore]	pam_winbind.so use_authtok try_first_pass
password	[success=1 user_unknown=ignore default=die]	pam_ldap.so use_authtok try_first_pass
# 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
Modulspam.png

Gestió d'usuaris i grups

Gestió d'usuaris

Gestió de comptes d'usuari personals sense ser administrador

passwd

passwd

Aquesta ordre serveis per:

  • Canviar-se la paraula de pas:
[email protected]:~$ passwd

O també per activar o desactivar un compte:

  • El desactivem:
[email protected]:~$ sudo passwd -l patricio
passwd: password expiry information changed.
  • L'activem:

[email protected]:~$ sudo passwd -u patricio pText en negretaasswd: password expiry information changed.

  • Consultar l'estat de totes les paraules de pas de tots els usuaris:
[email protected]:~$ sudo passwd -a -S
root P 01/10/2012 0 99999 7 -1
daemon L 08/16/2010 0 99999 7 -1
bin L 08/16/2010 0 99999 7 -1
sys L 08/16/2010 0 99999 7 -1
sync L 08/16/2010 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.
  • Expiració d'una paraula de pas
[email protected]:~$ sudo passwd -e patricio
passwd: password expiry information changed.


Practica

Trobar contrasenya amb el John The Ripper

  • Veiem que al fitxer shadow el hash comensa per $6$
[email protected]:~$ sudo cat /etc/shadow
root:$6$iWRVMwzI$oZIFK7LntGgCFUIpsp8tny53DNdyfexjPeqZwXn8PAqypPXHn1IbW6G/4W51aolop8AJ9HI.zUroaSbnj4Evp0:15349:0:99999:7:::
  • Modifiquem el PAM per a que els usuaris utilitzin el tipus de xifratge que suporta Jhon.
[email protected]:~$ sudo gedit /etc/pam.d/common-password
  • Modifiquem aquesta linea:
password	[success=3 default=ignore]	pam_unix.so obscure sha512
  • Per aquesta altra:
password	[success=3 default=ignore]	pam_unix.so obscure md5
  • Creem un nom usuari:


[email protected]:~$ sudo adduser pep
Adding user `pep' ...
Adding new group `pep' (1008) ...
Adding new user `pep' (1006) with group `pep' ...
Creating home directory `/home_local/pep' ...
Copying files from `/etc/skel' ...
Introduïu la nova contrasenya d'UNIX: 
Torneu a escriure la nova contrasenya d'UNIX: 
passwd: s'ha actualitzat la contrasenya satisfactòriament
S'està canviant la informació d'usuari per a pep
Introduïu el nou valor, o premeu ENTER per al predeterminat

Nom complet []: Número d'habitació []: Telèfon de la feina []: Telèfon de casa []: Altre []:

Is the information correct? [Y/n] 


  • Tornem a mirar el document shadow
sudo cat /etc/shadow
pep:$1$KuJmEQeQ$SRVlkfVHyxq3JZjCNVmTl1:15462:0:99999:7:::
  • Executem i trobem la contrasenya:
[email protected]:~$ sudo john -i /etc/shadow
Loaded 2 password hashes with 2 different salts (FreeBSD MD5 [32/32])
1234             (ivan)

chfn

La seva funcio es canviar el nom complet de l'usuari.

Exemple

  • Si volem mirar el manual ho fem de la forma següent:
$ man chfn
DESCRIPTION
      The chfn command changes user fullname, office number, office
      extension, and home phone number information for a users account. This
      information is typically printed by finger(1) and similar programs. A
      normal user may only change the fields for her own account, subject to
      the restrictions in /etc/login.defs. (The default configuration is to
      prevent users from changing their fullname.) The superuser may change
      any field for any account. Additionally, only the superuser may use the
      -o option to change the undefined portions of the GECOS field.
  • Aqui veiem les caracteristiques:
[email protected]:~$ cat /etc/passwd | grep alumne
alumne:x:1000:1000:alumne,,,:/home_local/alumne:/bin/bash
  • Si en posem mes veurem que ens surten aqui:
alumne:x:1000:1000:alumne,Ies Ebre,977502136,682642375,:/home_local/alumne:/bin/bash


chsh

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

expiry

gpasswd

id

Mostra el UID de l’usuari, el GID del seu grup principal i els GID de tots els grups als quals pertany.

[email protected]:~$ id
uid=1000(alumne) gid=1000(alumne)  grups=4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),11 9(admin),122(sambashare),1000(alumne)

finger

La comanda finger és molt similar a la comanda who (mostra informació addicional sobre els usuaris).

[email protected]:~$ finger 
Login     Name       Tty      Idle  Login Time   Office       Office Phone
alumne    alumne     tty7       29  May  2 11:38 (:0)
alumne    alumne     pts/0          May  2 12:02 (:0.0)

who

Mostra els usuaris que hi ha al sistema

[email protected]:~$ who
alumne   tty7         2012-05-02 11:38 (:0)
alumne   pts/0        2012-05-02 12:02 (:0.0)

groups

[email protected]:~$ groups
alumne adm dialout cdrom plugdev lpadmin admin sambashare

whoami

[email protected]:~$ whoami alumne

Gestió de grups

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

Adduser: assistent disponible a Debian

  • Dos ordres amb la mateixa funcionalitat però amb diferències importants.
  • De fet podem dir que la majoria de distribucions tenen l'ordre useradd (proporcionada per shadow suite).
  • En canvi només algunes distribucions com Debian utilitzant adduser un guió de perl que utilitzant useradd facilita la creació d'usuaris (mitjançant un assistent que va preguntant les dades del nou usuari).
  • A altres distribucions adduser és un enllaç simbòlic a useradd.

Provem les dues formes de crear usuaris per veure les diferencies:


ADDUSER

[email protected]:~$ sudo adduser ferran
[sudo] password for alumne: 
Adding user `ferran' ...
Adding new group `ferran' (1009) ...
Adding new user `ferran' (1007) with group `ferran' ...
The home directory `/home_local/ferran' already exists.  Not copying from `/etc/skel'.
Introduïu la nova contrasenya d'UNIX: 
Torneu a escriure la nova contrasenya d'UNIX: 
passwd: s'ha actualitzat la contrasenya satisfactòriament
S'està canviant la informació d'usuari per a ferran
Introduïu el nou valor, o premeu ENTER per al predeterminat
 	Nom complet []: ferran 
	Número d'habitació []: 
	Telèfon de la feina []: 
	Telèfon de casa []: 
	Altre []: 
Is the information correct? [Y/n] 

USERADD

[email protected]:~$ sudo useradd ferran
[email protected]:~$ sudo passwd ferran
Introduïu la nova contrasenya d'UNIX: 
Torneu a escriure la nova contrasenya d'UNIX: 
passwd: s'ha actualitzat la contrasenya satisfactòriament

Com veiem en la primera opcio ens demana mes dades i es mes complet, pero tardes mes en crear un usuari nou, en canvi, en la segona opcio nomes en posar el nom del usuari i ja esta, i quan ja s'ha creat amb la comanda que faig servir despres posem al contrasenya, ja que per defecte no s'hi crea.

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, login, sudo, su, sg

shadow-utils passwd

useradd

Els linux i les aplicacions que requereix inici amb usuaris diferents utilitzen aquesta funcio

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


Exemple de creacio d'usuaris

[email protected]:~$ sudo useradd -m -G alumne -c "Ferran  Pallares" ferran
[email protected]:~$ su ferran
Contrasenya: 
su: Error d'autenticació
[email protected]:~$ sudo passwd ferran
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 ferran
Contrasenya: 
$ 


  • Sinó s'indiquen algunes opcions s'apliquen les opcions per defecte
  • -D: ens permet veure i modificar els paràmetres per defecte de creació d’un compte d’usuari.
  • Si s'indiquen més opcions amb -D, aleshores modifiquem els valors per defecte
[email protected]:~$ useradd -D
GROUP=100
HOME=/home_local
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh 
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

Quan fem un 'useradd es crea un fitxer de configuracio com el següent:

[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_local
#
# The number of days after a password expires until the account 
# is permanently disabled
# INACTIVE=-1
#
# The default expire date
# EXPIRE=
#
# The SKEL variable specifies the directory containing  "skeletal" user 
# files; in other words, files such as a sample .profile that  will be
# copied to the new user's home directory when it is  created.
# SKEL=/etc/skel
#
# Defines whether the mail spool should be created while
# creating the account
# CREATE_MAIL_SPOOL=yes

Canviem la Shell i tornem a crear un usuari

  • Canviem la següent linea:
SHELL=/bin/sh
  • Per aquesta
SHELL=/bin/bash
  • Ara tornem a crear un altre usuari i veurem com la shell esta canviada.
[email protected]:~$ sudo useradd -m -G alumne -c "Ferran  Pallares" ferranpallares
useradd: avís: el directori personal ja existeix.
No s'hi copiarà cap fitxer del directori skel.
[email protected]:~$ sudo passwd ferranpallares
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 ferranpallares
Contrasenya: 
[email protected]:/home_local/alumne$ useradd -D
GROUP=100
HOME=/home_local
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

usermod

Permet modificar l'usuari, i ho fem amb la sintaxis següent:

sudo usermod [opcions] LOGIN

userdel

Per borrar o eliminar usuaris fem servir la ordre .

sudo userdel [usuari] 
sudo deluser [usuari]

Les dues es poden fer servir i funcionen correctament. Si incorporem la opcio -f ens permetra eliminar l'usuari tot i que tingui una sessio d'usuari oberta.

groupadd

groupmod

groupdel

passwd

chage

chfn

chsh

chpasswd

fer l'exemple que hi ha al pdf a l'apartat de chpasswd


[email protected]:~$ sudo useradd pep [email protected]:~$ sudo useradd maria [email protected]:~$ sudo useradd joan [email protected]:~$ sudo joe parauladepas Processing '/etc/joe/joerc'...Processing '/etc/joe/ftyperc'...done done

   IW   parauladepas                 Row 1    Col 1    1:28  Ctrl-K H for help

usuari:paraula_de_pas

chgpasswd

cppw

pwck

grpck

grpconv

grpunconv

newusers

shadowconfig

Debian

adduser

addgroup

core-utils

chgrp

  • Permet canviar només el grup
  • 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.
  • Sintaxi:
$ chgrp [-R] <grup> <arxiu ...> 
  • Per veure tots els grups del ordenador fem la següent comanda:
[email protected]:~$ groups
alumne adm dialout cdrom plugdev lpadmin admin sambashare
  • Creem un fitxer per modificar-lo:
[email protected]:~$ touch prova
  • comprovem que s'ha creat:
[email protected]:~$ ls -l | grep prova
-rw-r--r--   1 alumne alumne       0 2012-05-02 13:24 prova
  • Per canviar un fitxer fem:
[email protected]:~$ chgrp -R cdrom prova
  • Comprovem que s'ha canviat:
[email protected]:~$ ls -l | grep prova
-rw-r--r--   1 alumne cdrom        0 2012-05-02 13:24  prova

id

groups

who

whoami

/etc/passwd

/etc/shadow

/etc/group

/etc/gshadow

/etc/skel

/etc/adduser.conf

/etc/deluser.conf

/etc/login.defs

vi

vipw

vigrp