Eszközök a webhelyen


oktatas:linux:felhasználókezelés

< Linux

Felhasználókezelés

  • Szerző: Sallai András
  • Copyright © Sallai András, 2012, 2013, 2017
  • Licenc: GNU Free Documentation License 1.3

Bevezetés

Lesz néhány parancs, amely csak a Debian GNU/Linux rendszerben létezik. Ilyen az adduser vagy addgroup parancs. Ezek könnyebbé teszik egy átlagos felhasználó felvételét, azonban néha speciális felhasználókat kell felvenni (például egy démonhoz tartozó háttérfelhasználó, akinek a nevében fut majd a szolgáltatás), vagy éppen én szeretném a felhasználót speciális módon létrehozni, vagy egyszerűen csak scriptet írok.

A felhasználók adatai

A felhasználók és csoportok adatai három helyen tárolódnak:

  • /etc/passwd
  • /etc/shadow
  • /etc/group

A passwd fájlban kerül tárolásra a felhasználó neve és GECOS adatok. A GECOS mezőben a következő tulajdonságokat tárolhatjuk:

  • teljes név
  • szoba száma, vagy kapcsolattartó személy
  • hivatali telefon
  • otthoni telefon
  • egyéb információk (fax, más e-mail, sorszám, foglalkozás)

A GECOS adatokat vesszővel szeparálva adjuk meg. A felhasználók ha engedélyezve számukra, a chfn paranccsal változtathatják meg ezeket az információkat.

A Bell laboratóriumban, a korai Unix rendszerek közül néhány GECOS gépeket használt a nyomtatáshoz és más szolgáltatásokhoz; így ezt az információt is hozzáadták a felhasználói információkhoz.

A GECOS lehet General Comprehensive Operating System (GCOS, [ˈdʒiːkoʊs], vagy eredetileg: GECOS, General Electric Comprehensive Operating Supervisor. Egy operációs rendszer család, amely 36-bit GE/Honeywell nagygépeken volt használatos. Az eredeti változatát a General Electric készítette 1962-ben. Ma is használják, GCOS 7 és GCOS 8 verziók az aktuálisak.

A felhasználók kezelése

Felhasználót két paranccsal vehetünk fel:

  • adduser
  • useradd

A useradd egy natív ELF bináris, minden linuxos rendszeren jelen van. Az adduser egy Perl script, ami használja a useradd parancsot.

A useradd egy alacsony szintű eszköz a felhasználók felvételéhez, szemben az adduser script, amely egy magasabb szintű, interaktív felhasználókezelést tesz lehetővé.

Az adduser a useradd program mellett használja a chfn és passwd parancsokat is.

Mivel az adduser így többféle információit is interaktívan kér be, ezért nem alkalmas parancsállományokban való használatra. Parancs állományokban való használatra a useradd parancs alkalmas.

Az adduser parancs működése Linux terjesztésenként változik. Debian és Debian alapú rendszereken bekéri a felhasználó jelszavát, és a gecos információkat.

adduser

Az adduser csak Debian alapú rendszereken létezik (az rpm alapú rendszereknél egy useradd egy alisa szokott lenni). Egy felhasználót interaktívan vehetünk fel vele. A következő példában egy kati nevű felhasználót veszünk fel:

adduser kati
Adding user `kati' ...
Adding new group `kati' (1002) ...
Adding new user `kati' (1002) with group `kati' ...
Creating home directory `/home/kati' ...
Copying files from `/etc/skel' ...
Adja meg az új UNIX jelszót: 
Írja be újra a UNIX jelszót: 
passwd: a jelszó sikeresen frissült
kati felhasználói információinak cseréje
Add meg az új értéket vagy üss ENTER-t az alapértelmezetthez
	TELJES Név []: Teszt Katalin
	Szobaszám []: 
	Munkahelyi telefon []: 
	Otthoni telefon []: 
	Egyéb []: 
Is the information correct? [Y/n] y

A program megáll először a jelszóbekérésnél, majd az egyéb adatok bekérésénél, a végén rákérdez, hogy az adatok rendben vannak-e. Az y vagy egy Enter lenyomása után a felhasználó létrejött könyvtárával együtt. Sőt a /etc/skel könyvtár tartalmát is megkapta.

Így is használhatjuk:

adduser --home /home/kati --shell /bin/bash --gecos "Teszt Katalin"

Részletek adduser(8) kézikönyvben.

Az adduser beállításai:

/etc/adduser.conf

Egy felhasználó betehető az adduser paranccsal egy csoportba:

adduser kati info

A kati felhasználót az info csoportba tesszük; a felhasználónak már léteznie kell.

getent

Információt szolgáltat egy adatbázisból. Olyan adatbázisból mint passwd, group

getent passwd joska
joska:x:1001:1001:Nagy József,,,:/home/joska:/bin/bash

A informatika csoportról szeretnénk informálódni:

getent group informatika

useradd

A useradd parancs minden linuxos rendszer része. Ezzel is felhasználókat tudunk felvenni, de mindent kapcsolókkal kell megadnunk.

useradd -c "Teszt Katalin" -d /home/kati -g users -G info,human,rgazda -k /etc/skel -m -s /bin/bash kati
A useradd kapcsolói
-c megjegyzés
-d home könyvtár
-g elsődleges csoport
-G másodlagos csoport vagy csoportok
-m hozzuk létre a home könyvtárát
-s milyen shellt kapjon
-u UID mi legyen a uid-je
-k honnan másoljuk alapértelmezett fájlokat

chage

A chage parancs segítségével szabályozhatjuk egy-egy felhasználónak mikor jár le a jelszava.

A joska felhasználónak mikor jár le a jelszava?

chage -l joska
chage -l joska
Utolsó jelszóváltás					: dec 13, 2011
Jelszó lejár					: soha
Jelszó inaktív					: soha
Hozzáférés lejár						: soha
A jelszómódosítások közti legkevesebb nap		: 0
A jelszómódosítások közti legtöbb nap		: 99999
A jelszó lejárata előtt figyelmeztetés napok száma	: 7

99999 nap körülbelül: ~273 év

A joska felhasználó jelszava járjon le 10 nap múlva

chage -M 10 joska

Mikor járjon le a jelszava?

chage -E "2009-05-31" joska

Inaktív napok után lezárás

Jóskának 10 inaktív nap után lezárjuk a jelszavát.

chage -I 10 joska
chage --inactive 10 joska

Alapértelmezés visszaállítása

Az alábbi kapcsolókat használjuk:

-m 0 A napok minimális száma amíg lejár a jelszó.
-M 99999 A jelszó maximum 99999 nap múlva jár le.
-I -1 (minusz egy) A jelszó sosem lesz inaktív. 
-E -1 (minusz egy) A fiók sosem jár le.
chage -m 0 -M 99999 -I -1 -E -1 joska

Figyelmeztetés

Figyelmeztetés mielőtt a jelszó lejár

  • -W, --warndays WARN_DAYS
chage -W 7 joska

Jelszó változtatás

A jelszavát nem változtathatja meg:

chage -m 10000 mari

Valójában 10 ezer napig nem változtathatja meg. De azért az elég messze van.

Ugyanezt a passwd paranccsal is beállíthatjuk.

Belépés után kötelező megváltoztatni:

chage -d 0 janos

addgroup

Az addgroup valójában egy link az adduser parancsra. Kézikönyve is megegyezik vele.

Csoport felvétele:

addgroup info

groupadd

Csoport felvétele

Ha egy felhasználót felvettünk egy csoportba, a csoport tagsága csak az újbóli belépés után lesz érvényes.

A groupadd parancs minden linuxos rendszerben megtalálható.

Van egy másik csoportok felvételére kitalált parancs, ez az addgroup. A groupadd parancstól csak annyiban különbözik, hogy tájékoztatást ír a képernyőre két sorban a felvétel sikeréről.

Például a „human” nevű csoport felvétele:

groupadd human

vagy:

addgroup human
Adding group `human' (GID 1003) ...
Kész.

gpasswd

A gpasswd parancs a /etc/group állomány adminisztrálására lett megalkotva.

A „kati” nevű felhasználó felvétele a „human” csoportba:

gpasswd -a kati human

A „kati” nevű felhasználó törlése a „human” csoportból:

gpasswd -d kati human

usermod

Teljesnév beállítása:

usermod -c "Nagy János" janos

A mari felhasználó felvétele a human csoportba:

usermod -a -G human mari

A -a hatására hozzáfűzés történik, vagyis a többi csoport megmarad. Ha elhagyjuk a -a kapcsolót, akkor a többi csoport törlődik.

usermod -G human,gazdasag,rgazda mari

A joska felhasználó kitiltása:

usermod --lock --expiredate 1970-01-01 joska
usermod -L -e 1970-01-01 joska

Az expiredate értéke bármi lehet ami régebbi mint az aktuális dátum.

A --lock a jelszó használatot tiltja. Azonban nem tiltja a kulcs alapú azonosítást. Ezért vettük vissza lejárati dátumot.

Magunk is letilthatjuk a felhasználó jelszavas bejelentkezését ha egy „!” („felkiáltó jelet”) teszek a jelszó elé:

joska:!$1$R8Z4PoEr$OSi234nDisere2ERda83dD82DSIK8ls:15407:0:99999:7:::  

A felhasználó számára új bejelentkezési könyvtárat állítunk be:

usermod -d /home/info/joska joska
usermod --home /home/info/joska joska
usermod --home /home/tanulok/15z/janos janos

Alap csoport beállítása:

usermod -g info mari

Shell beállítása:

usermod -s /bin/ksh mari
usermod --shell /bin/ksh kati

Felhasználó kitiltása:

usermod -L mari
usermod --lock mari

Felhasználó engedése:

usermod -U mari
usermod --unlock mari

Felhasználó kitiltása a másként:

usermod -s /usr/sbin/nologin mari
usermod -s /bin/false mari

id

Ha egy felhasználó belépett saját csoporttagságairól az id parancs segítségével tájékozódhat.

A parancs önmagában kiadva is hatásos:

id

De lássuk paraméterezve.

Az aktuális felhasználó milyen csoportokban van benne:

id -nG

Az adott felhasználó milyen csoportokban van benne:

id -nG mari

vipw

A passwd, illetve a shadow fájl szerkesztése. Tulajdonképpen a vi szövegszerkesztőben nyitja meg a /etc/passwd fájl tartalmát.

Az EDITOR környezeti változóval más szerkesztő is megadható. Például az mcedit használata:

export EDITOR=mcedit; vipw

vigr

A csoportfájl szerkesztése.

Mint a vipw, csak a csoportfájlt szerkesztjük.

A shadow fájl

A régi unixos rendszerekben a jelszavak a passwd fájlban voltak. Ebben a fájlban vannak tárolva a felhasználók egyéb adatai, mint teljes név, szoba, stb. Ezek nyilvános adatok, így mindenki számára olvashatók. A Linuxokon felmerült az igény a jelszavak külön fájlban való elhelyezésére. Így került az /etc/shadow állományba. Az átlagos felhasználó ezeket nem tudja olvasni.

A /etc/shadow fájl tartalmazza a kódolt jelszót. Például

joska:$6$wR8ZPo/p$.XKKmA9YCSrK5UuA0BV03mUrVyqT7OSl24n4DX5dYDNolZDhD.YfE0Fn.PVzaDDGrxMwK6x4jZVTz9/0R8jQs1:15407:0:99999:7:::

  1. Felhasználónév
  2. Jelszó
  3. Utolsó jelszómódosítás és 1970 január 01-óta eltelt napok száma
  4. minimum ennyi napnak kell eltelni az újabb jelszómódosításig
  5. maximum ennyi ideig érvényes a jelszó
  6. Figyelmeztetés ennyi nappal a jelszó lejárat előtt
  7. Ha lejár a jelszó, ennyi nap múlva nem léphet be
  8. 1970 január 01 után ennyi nap letelte után lejár a jelszó

Jelszógenerálás

Néha szükségünk lehet arra, hogy új rendszerünkbe a felhasználóknak jelszót generáljunk.

Egyik erre alkalmas program a makepasswd. Használatához telepíteni kell a makepasswd csomagot:

apt-get install makepasswd

A makepasswd alapértelmezetten 8 és 10 karakter közötti jelszót generál. Kapcsolóval szabályozhatjuk hány karakteres legyen. Például nyolc karakteres:

makepasswd --chars 8

Ha több jelszót szeretnénk generálni, a count kapcsolóval megtehetjük.

makepasswd --chars 18 --count 10

A jelszó kódolt formájának generálása az Apró debianos tippek oldalon található.

Másik jelszógeneráló program:

apt-get install passwdqc

Jelszó generálása:

pwqgen

Felhasználó törlése

userdel

Töröljük a felhasználót:

userdel joska

Töröljük a felhasználót és a könyvtára tartalmát:

userdel -r joska

deluser

deluser --remove-home
deluser --remove-all-files
deluser --backup
deluser --backup-to

Az /etc/deluser.conf segítségével érdemes szabályozni. Részletekért nézzük meg a deluser.conf(5) kézikönyvet.

--backup

Minden állomány backupja, ami a home és a mailspool könyvtárban van. Az eredmény:

/$user.tar.bz2 vagy /$user.tar.gz.
--backup-to

A backup fájl helyét is megadhatjuk

--remove-home

A felhasznál mailspool és home könyvtárának törlése. Ha a --backup meg van adva, akkor backup után a fájlok törlésre kerülnek.

--remove-all-files

Minden fájl törlése a rendszerben, amelynek a felhasználó a birtokosa. Ha a --backup meg van adva, a törlés a backup után történik.

chfn

A finger információ (teljes név, iroda, telefon, stb) módosítása.

# chfn -f János janos
# chfn --full-name "Nagy János" janos
$ getent passwd janos

Kapcsolók:

  • -f, --full-name
  • -o, --office -- irodai szobaszám
  • -p, --office-phone -- irodai telefonszám
  • -h, --home-phone -- otthoni telefonszám

Hogy mit lehet megváltoztatni a chfn paranccsal a /etc/login.defs fájlban szabályozhatjuk.

CHFN_RESTRICT      frwh

Ha nincs definiálva semmit nem változtathatunk meg. A yes = „rwh”, a no = „frwh”.

A gecos információk bekérhetők interaktív módon a következő paranccsal:

chfn janos
root@iskolazo:~# chfn janos
janos felhasználói információinak cseréje
Add meg az új értéket vagy üss ENTER-t az alapértelmezetthez
	TELJES Név [Nagy János]: Peres János
	Szobaszám []: 304
	Munkahelyi telefon []: 1154
	Otthoni telefon []: 
	Egyéb []: 
chfn: name with non-ASCII characters: 'Peres János'

finger

apt install finger
finger joska

passwd

Használat például:

passwd  \
    -x <MAX_D> \
    -w <WARN_D> \
    -i <INACTIVE_D>
   felhasználó

A passwd parancs a jelszó beállítására használható.

# passwd

A rendszergazda mások jelszavát is beállíthatja:

# passwd janos

A felhasználó kizárása:

# passwd -l janos

A felhasználó újból engedése:

# passwd -u janos

Jelszó lejárat előtt hány nappal kapjon a felhasználó figyelmeztetést:

# passwd -w 7 janos

A felhasználó jelszavának lejárata előtt figyelmeztetés 7 nappal.

A felhasználó 7 napig nem változtathatja meg a jelszót:

# passwd -n 7

Jelszóbeállítások lekérdezése:

# passwd -S
# passwd -S janos

A felhasználó jelszavának azonnali „lejáratása”:

# passwd -e janos

Adott felhasználó jelszavának törlése:

# passwd -d janos

További kapcsolók:

# passwd -h

A jelszót nem lehet lecserélni adott ideig, szintaktika:

  • passwd -n MIN <login-name>

Példa:

# passwd -n 10000 janos

login beállítások

Az /etc/login.defs könyvtárban a felhasználók számára beállítható néhány adottság. Ilyen a felhasználók levelei hol tárolódjanak.

MAIL_DIR /var/mail

A sikertelen bejelentkezések naplózása a /var/log/faillog fájlba.

FAILLOG_ENAB yes

Az ismeretlen felhasználónevek naplózása sikertelen bejelentkezés esetén.

LOG_UNKFAIL_ENAB no

A sikeres bejelentkezések naplózása:

LOG_OK_LOGINS no

A su tevékenységek naplózása a syslog naplóba:

SYSLOG_SU_ENAB yes
SYSLOG_SG_ENAB yes

A su aktívitás külön naplózása:

SULOG_FILE /var/log/sulog

Alapértelmezett útvonal a rendszergazda számára:

ENV_SUPATH

Alapértelmezett útvonal a felhasználók számára:

ENV_PATH

Jelszavak kontrollálása. Alapértelmezésként, mikor jár le, mikor változtathatja meg, mikor legyen figyelmeztetés.

PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_WARN_AGE 7

Felhasználók minimális azonosítója useradd esetén:

UID_MIN 1000
UID_MAX 60000

Minimális csoportazonosítók:

GID_MIN 1000
GID_MAX 60000

A bejelentkezés visszautasítása ennyi sikertelen próbálkozás után:

LOGIN_RETRIES 5

A maximális sikertelen bejelentkezések után ennyi ideig tiltva:

LOGIN_TIMEOUT 60

További lehetőségek a /etc/login.defs állományban is találhatók, vagy nézzük meg az idevonatkozó kézikönyvet:

man login.defs

A felhasználók a chfn paranccsal milyen értékeket cserélhetnek:

CHFN_RESTRICT rwh
  • f - full name
  • r - room number
  • w - work phone
  • h - home phone

Ha a felhasználó nem tud belépni a könyvtárába, akkor legyen egy alapértelmezett könyvtár:

DEFAULT_HOME yes

A felhasználó törlésekor a következő parancs fusson le:

USERDEL_CMD /usr/local/bin/sajtScript.sh

Felhasználónévvel azonos csoport létrehozása useradd, törlése userdel esetén:

USERGROUPS_ENAB yes

Az aktuális shell előtt milyen parancs fusson le:

FAKE_SHELL /bin/fakeshell

Azonosítás algoritmusa:

ENCRYPT_METHOD SHA512

Felhasználócsere

A felhasználót a su paranccsal cserélhetünk. Például mari felhasználóvá válhatunk:

su mari

Ha kötőjelet is használok, akkor a mari felhasználó teljes környezetét kapom:

su - mari

Ehhez a művelethez persze tudni kell a mari felhasználó jelszavát, vagy rendszergazdaként kell végrehajtani.

Egy csoportot is felvehetünk a sg paranccsal. Például az info csoport felvétele:

sg info

Függelék

További parancsok:

  • groupmod
  • chfn
  • chsh
  • finger
  • groupdel
  • grpck
  • newgrp
  • id
  • login
  • su

Felhasználó felvétele

useradd -m mari
passwd mari
chfn mari

Forrás

Ez a weboldal sütiket használ statisztikai céllal. Ha használod a weboldalt, elfogadod, hogy a számítógépeden sütiket tárolunk.Több információ
oktatas/linux/felhasználókezelés.txt · Utolsó módosítás: 2019/04/05 22:41 szerkesztette: admin