Home > RHEL/Centos > Cum sa adaugam un user pe linux

Cum sa adaugam un user pe linux

Linux usersUnul din primele lucruri pe care trebuie sa le facem dupa instalarea unui sistem de operare este sa adaugam utilizatorii care vor avea acces pe sistem iar astazi vom invata cum sa facem acest lucru.

Sa vedem cum putem clasifica acesti utilizatori, acesti utilizatori pot fi:

  • persoane reale (persoane care administreaza sistemul de operare sau aplicatiile care ruleaza pe sistem)
  • utilizatori logici (utilizatori folositi de catre diferite aplicatii, avem utilizatori precum apache, named, postfix, ntp, dovecot)

Dupa cum ati observat fiecare user are asociat un UID (User ID) si un GID (Group ID), identificarea utilizatorului se face dupa acest UID si GID si nu dupa numele acestuia.

Adaugarea utilizatorilor pe sistemele linux & unix se face doar de catre userul root. O parte mare din acesti utilizatori logici sunt adaugati automat la instalarea sistemului de operare.

Pentru adaugarea unui user se foloseste comanda useradd. Doar un singur nume poate fi adaugat in momentul in care se executa comenda iar acest nume trebuie sa fie unic.

useradd [optiuni] utilizator

Sa luam un exemplu concret, de exemplu dorim sa adaugam userul Daniel pe un sistem linux, pentru acest lucru trebuie doar sa executam doar o simpla comanda.

useradd daniel

Sa vedem acum cateva dintre cele mai importante optiuni pentru aceasta comanda

  • -c comentariu – un scurt comentariu despre utilizator
  • -d director home – directorul home pentru utilizator
  • -e data – data la care sa expire contul (YYYY-MM-DD)
  • -f zile – nr. de zile dupa ce parola a expirat pana cand contul este dezactivat, daca -0 este specificat atunci contul va fi dezactivat imediat dupa ce parola a expirat, daca -1 este specificat atunci contul nu va fi dezactivat dupa expirarea parolei.
  • -g nume grup – numele grupului principal (grupul trebuie sa existe pe sistem)
  • -G lista grup – lista aditionala de grupuri din care sa faca parte utilizatorul, grupurile sunt separate de o virgula
  • -m – adauga si directorul home daca acesta nu exista
  • -M – fara directorul home
  • -n – fara grup privat pentru utilizator
  • -r – contul creat sa fie un cont de sistem (UID < 500)
  • -p – setarea parolei in format criptat
  • -s – shell-ul folosit de utilizator (/bin/bash default)
  • -u – UID-ul asignat utilizatorului

In momentul in care adaugam un user pe un sistem linux automat se adauga o intrare si in fisierul /etc/passwd. Acest fisier in care sunt stocate informatiile despre utilizatori este structurat pe 7 coloane.

Sintaxa acestui fisier

nume : parola : UID : GID : informatii gecos: director home : shell

Sa le luam pe rand pe fiecare dintre aceste coloane sa vedem ce semnificatie au.

  1. nume – contine numele utilizatorului
  2. parola – in acest camp gasim doar un x semnificand faptul ca parola este criptata si localizata in alt fisier (/etc/shadow)
  3. UID – identificatorul utilizatorului
  4. GID – este identificatorul grupului principal din care face parte acest utilizator, am precizat cuvantul principal pentru ca un user poate face parte din mai multe grupuri de utilizatori
  5. informatii gecos: acest camp contine informatii despre numele real al utilizatorului, biroul in care se afla sau chiar si numarul de telefon al utilizatorului.
  6. director home – acesta reprezinta directorul home al userului unde isi poate stoca fisierele, implicit pe sistemele RedHat/Centos acesta are forma /home/nume utilizator.
  7. shell – reprezinta interpretorul de comenzi folosit de catre user, implicit acesta este /bin/bash dar poate fi schimbat cu alte interpretoare de comenzi precum sh, csh, zsh, etc.

Daca ati observat bine, in momentul in care am adaugat userul daniel nu am facut altceva decat sa execut comanda useradd daniel doar ca in fisierul /etc/passwd se regasesc mai multe informatii decat cele pe care le-am adaugat noi. Pe langa userul propriu-zis pe care l-am adaugat se regasesc informatii precum UID-ul, GID-ul, directorul home sau shell-ul implicit.

Toate aceste informatii care se adauga implicit se regasesc in fisierul /etc/default/useradd, putem folosi comanda cat sau comanda useradd –D pentru a vedea continutul acestui fisier.

[root@localhost ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

In acest fisier putem observa informatii utile precum GID-ul implicit asignat la crearea unui nou grup (acest grup este creat pentru un utilizator doar daca folosim argumentul –r ), calea catre directorul home al fiecarui utilizator, shell-ul alocat implicit, fisierele de baza care trebuie sa existe in orice director home (alocate din /etc/skel) iar ultima linie arata ca automat se creaza si o casuta de mail pentru orice utilizator adaugat.

Daca dorim sa modificam aceste setari implicite o putem face fie prin editarea fisierului /etc/default/useradd fie prin folosirea comenzii useradd –D.

Sa vedem acum cateva exemple folosind comanda useradd -D

Pentru modificarea shell-ului default

useradd -D -s /bin/csh

Pentru modificarea directorului home

useradd -D -b /var/home

Dezactivarea conturilor la o anumita data (sfarsitului anului)

useradd -D -e 2010-12-31

Am spus la inceput acestui articol ca utilizatorii pot fi persoane reale sau logici. In momentul in care adaugam un nou user cu comanda useradd acesta va avea UID > 500 deci implicit se considera ca ar fi o persoana reala,  mai multe detalii se pot vedea in fisierul/etc/login.defs

#
# Min/max values for automatic uid selection in useradd
#
UID_MIN                   500
UID_MAX                 60000

#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN                   500
GID_MAX                 60000

Daca dorim sa cream un nou cont administrativ (pentru o anumita aplicatie) putem folosi argumentul –r, noul utilizator va primi urmatorul UID liber (un ID intre 101-499). Implicit acest cont nu va avea un director home pentru stocarea fisierelor personale.

useradd –r daniel

Tot in acest fisier putem modifica setarile ce tin de managementul de parole, unde se afla mailbox-ului pentru utilizatori, permisiunile pentru directorul home al utilizatorilor de pe sistem, modul de criptare al parolelor MD5 sau DES (pe RedHat/Centos implicit este MD5)

Sa trecem la treaba si sa luam niste exemple concrete

Nu intotdeauna dar cateodata exista o logica dupa cum se asigneaza aceste UID-uri/GID-uri pe un sistem linux  (se pot aloca in functie de departamentul din care face parte utilizatorul)

useradd -u 305 -g 900 daniel

In cadrul unei firme pot exista mai multe persoane cu numele de Daniel, iar un scurt comentariu cu numele real al utilizatorului e foarte util in acest caz.

useradd -c “Daniel Corneschi” daniel

Adaugarea unor grupuri suplimentare din care sa faca parte utilizatorul, fiecare grup este separat de o virgula

useradd -G support,sales daniel

Implicit directorul home creat este /home/daniel, insa putem schimba acest lucru folosind parametrul –d

useradd –d /var/home/daniel daniel

Setarea unei limite in formatul YYYY-MM-DD pentru dezactivarea unui cont temporar (sa fim siguri ca nu uitam sa facem acest lucru), in acest exemplu contul va expira la 1 Mai 2010

useradd -e 2010-05-01 daniel

Utilizatorul poate avea o alta preferinta pentru shell, nu-i nici o problema, avem de unde sa alegem

useradd -s /bin/csh daniel

Sunt cazuri in care utilizatorul nu are nevoie de directorul home sau de shell, contul este folosit pentru adresa de mail sau pentru alte scopuri

useradd –M -s /sbin/nologin daniel

Pot exista cazuri in care avem nevoie de acelasi UID pentru mai multi utilizatori iar optiunea –o ne poate fi de mare ajutor in acest caz

useradd –u 512 –o daniel

O alta metoda de a seta o parola pentru un utilizator

useradd –p parola criptata

Una din comenzile pe care le folosesc foarte frecvent arata ceva de genul acesta

useradd -u 510 -g 100 –c “Daniel Corneschi” -m –d /home/daniel –s /bin/bash daniel

Pentru mai multe detalii despre aceasta comanda vizitati man useradd

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Categories: RHEL/Centos Tags: , ,
  1. No comments yet.
  1. No trackbacks yet.