Felhasználók: létrehozás, törlés, ellenőrzés
2009. May 10. - 21:24 | szerző: jonci

Felhasználó hozzáadása és eltávolítása karakteres szövegszerkesztő felhasználásával is megoldható, de léteznek rá programok, amelyek használata kényelmesebbé teszik e műveletet, mivel egyszerre több fájlt is módosítani kell.

Felhasználó hozzáadása és módosítása – useradd, usermod

A két program szinte megegyezik a megadható paramétereiben (a különbséget jelölöm), ezért is szerepelnek egy cím alatt, csak annyiban térnek el egymástól, hogy a felparaméterezett useradd program hozzáadja a felhasználót a rendszerhez, ugyanekkor a usermod a már meglévő felhasználó hozzáférését módosítja a megadott tulajdonságúra. Egy táblázatban összefoglalom a lehetséges paramétereket, amelyekkel befolyásolható a létrehozási folyamat. A usermod parancs esetén a létrehozási és beállítási funkciók megváltoztatási műveletként értendők:

–c MEGJEGYZÉS információk megadása a felhasználóról (lásd: /etc/passwd)
–d HOMEKÖNVTÁR az alap /home/<felhasználónév> könyvtárat változtathatjuk meg (ettől még a home könyvtár nem jön létre)
–e LEJÁRAT felhasználói hozzáférés lejárása ÉÉÉÉ-HH-NN formátumban
–g CSOPORT felhasználó alap csoportja, aminek léteznie kell, ha nem adjuk meg, a felhasználó csoportja a users (100) lesz
–G CSOPORT[,…] megadható, hogy a felhasználó saját csoportján kívül, melyik másik csoportba tartozzon még (vesszővel elválasztva többet is megadhatunk)
–p JELSZÓ felhasználó jelszavának megadása kódolt formában
–s SHELL felhasználóhoz rendelt alapértemezett shell megváltoztatása
–u UID a /etc/login.defs fájlban meghatározott intervallum (UID_MIN=1000, UID_MAX=60000) között az első szabad UID értékelt kapja a felhasználó, amit e paraméterrel bírálhatunk felül

Az alábbi kettő kapcsoló csak a useradd programnál használható:

–m felhasználó a home könyvtárának létrehozása, /etc/skel könyvtár tartalmának bemásolása
–k SKEL KÖNYVTÁR
a skel könyvtár alapértelmezett útvonalának (/etc/skel) felülbírálása (csak az “-m” kapcsolóval használható)

Az alábbi három kapcsoló csak a usermod programnál használható:

–l ÚJNÉV
felhasználói név, de ez nem változtatja meg a home könyvtárat
–L használatával letiltható a felhasználó belépése: egy “!” (felkiáltójel) kerül a /etc/shadow fájlban a jelszava elé (nem használható együtt a “-p” és a “-U” paraméterekkel)
–U használatával engedélyezhető a “-L” paraméterrel letiltott felhasználó újbóli belépése a rendszerbe (nem használható együtt a “-p” és a “-L” paraméterekkel)

Lássunk példákat az elmélet után:

A jonci felhasználó hozzáadása a rendszerhez úgy, hogy közben megváltoztatjuk az alap home könyvtárának az elérési útvonalát, amit létre is hozatunk, és belemásoltatjuk az alap fájlokat, valamint kitöltjük a felhasználói információkat:

root@bash# useradd -c "Jónás Zsolt,VIP" -d /home/vip/jonci -m jonci
root@bash#

A jonci felhasználó hozzáadása a rendszerhez úgy, hogy adjuk meg az alap csoportját, adjuk hozzá az audio és a cdrom csoporthoz, valamint az alap fájlokat ne a /etc/skel könyvtárból másolja a rendszer, hanem a /etc/alapfajlok könyvtárból. (Természetesen az /etc/alapfajlok könyvtárnak léteznie kell és benne a kívánt fájlokkal különben nincs értelme):

root@bash# useradd -g staff -G audio,cdrom -m -k /etc/alapfajlok jonci
root@bash#

Változtassuk meg a jonci felhasználó által használt shell programot:

root@bash# usermod -s /bin/csh jonci
root@bash#

Tiltsuk ki a jonci felhasználót a rendszerből (a már belépett kapcsolatait nem szünteti meg):

root@bash# usermod -L jonci
root@bash#

Végül engedjük vissza a rendszerbe:

root@bash# usermod -U jonci
root@bash#

Felhasználó létrehozása egy másik programmal – adduser

Segítségével egyszerűen vehetünk fel új felhasználót a rendszerbe. A felhasználó hozzáadásával egyidejűleg egy vele azonos nevű csoport is létrejön.

Felhasználó hozzáadásának menete:

root@bash# adduser jonci
Adding user `jonci'...
Adding new group `jonci' (1000).
Adding new user `jonci' (1000) with group `jonci'.
Creating home directory `/home/jonci'.
Copying files from `/etc/skel'
Enter new UNIX password:  <jelszó megadása>
Retype new UNIX password: <jelszó megadása>
passwd: password updated successfully
Changing the user information for jonci
Enter the new value, or press ENTER for the default
        Full Name []: Jónás Zsolt  A felhasználóhoz tartozó egyéb
        Room Number []:            információk, megadásuk nem kötelező.
        Work Phone []:             Céges környezetben lehetnek hasznosak,
        Home Phone []:             de sokfelhasználós rendszereknél már
        Other []:                  központosított felhasználókezelés van.
Is the information correct? [y/N] y
root@bash#

Különböző paraméterekkel befolyásolhatjuk a program működését. A “–system” paraméterrel csak a felhasználó jön létre a home könyvtárával együtt és a nogroup csoportba kerül. Ha megadjuk a “–group” paramétert, akkor a felhasználónévvel megegyező csoport is létrejön és annak a tagja lesz. Továbbá a hozzáférése le lesz tiltva és a shell értéke is a /bin/false lesz.

További paraméterek:

––home KÖNVTÁR
felhasználó home könyvtárának a helye
––shell SHELL
felhasználóhoz rendel alapértelmezett shell
––gecos ADATOK home könyvtár létrehozásának tiltása
––uid UID felhasználó azonosító száma
––gid GID
felhasználó csoportazonosítója
––ingroup CSOPORT
a felhasználó az alábbi csoport tagja is legyen
––no-create-home
felhasználó home könyvtárának létrehozásának tiltása
––disabled-password felhasználó jelszavának letiltása
––disabled-login felhasználó letiltása
––force-badname
ha a /etc/adduser.conf fájlban definiált NAME_REGEX szűrési feltétel (“^[a-z][-a-z0-9]*$” – azaz angol abc valamelyik kisbetűjével kezdődik és a továbbiakban kisbetűt vagy számot tartalmaz) nem illeszkedik a felhasználói névre, akkor nem jön létre a felhasználó

Felhasználó hozzáadása egy létező csoporthoz – adduser

Ehhez a művelethez is használhatjuk az adduser programot, amelynek menete a következő:

adduser <létező felhasználó> <létező csoport>

Létező jonci felhasználó hozzáadása a létező audio csoporthoz:

root@bash# adduser jonci audio
Adding user `jonci' to group `audio'...
Done.
root@bash#

A hangkártyát csak az audio csoport tagjai (és a root) használhatják, így érdemes hozzáadnunk a saját felhasználónkat az audio csoporthoz, ha zenét szeretnénk hallgatni.

Felhasználói jelszó megváltoztatása – passwd

A passwd program használható a jelszavak megváltoztatására. A felhasználók csak a saját jelszavukat változtathatják meg, a rendszergazda bárkiét. A passwd ezen kívül használható a felhasználói adatok, mint például az teljes név, a login shell, vagy a jelszavak használhatósági idejének megváltoztatására is.

A jelszavak csak az ABC kis betűiből, nagy betűiből, számokból és írásjelekből állhatnak.

Az aktuális felhasználó jelszavának megváltoztatásához a passwd parancsot paraméter nélkül kell meghívni. A rendszergazda megadhatja paraméterben a kívánt felhasználót:

root@bash# passwd
Changing password for jonci
(current) UNIX password:  <régi jelszó megadása>
Enter new UNIX password:  <új jelszó megadása>
Retype new UNIX password: <új jelszó megadása újra>
root@bash#

root@bash# passwd jonci
Enter new UNIX password:  <új jelszó megadása>
Retype new UNIX password: <új jelszó megadása>
root@bash#

A program előbb bekéri az aktuális jelszót (kivéve, ha a rendszergazda indítja el) a biztonság kedvéért, majd az új jelszót kétszer az elírás kiszűrésére. Természetesen nem jeleníti meg a begépelt betűket, és csillaggal sem helyettesíti azokat. Felhasználói szinten nem tudunk egyszerű logikával előállítható jelszót elfogadtatni, amire az alábbi üzenettel hívja fel a figyelmünket:

Bad: new password is too simple

Ha az új jelszó nagyon hasonlít az előző jelszavunkra, akkor szintén elutasítást kapunk:

Bad: new and old password are too similar

Sikeres jelszóváltoztatás az alábbi üzenettel nyugtázza:

passwd: password updated successfully

Ezután már csak az új jelszót fogadja el a rendszer, az esetleges jelszó változtatási megkötések (min, max idő a két jelszócsere között) újra kezdődnek.

Azonosító információk megváltoztatása – chfn

A chfn segítségével változtatható meg a felhasználó teljes neve és az egyéb információi (/etc/passwd), amelyeket elsősorban a finger és a hozzá hasonló programok használnak fel. A linuxos finger négy adatot ír ki: teljes nevet, munkahelyi szoba- és telefonszámot, valamint az otthoni telefonszámot.

Az alábbi paraméterek használhatóak:

–f teljes név felhasználó teljes neve
–r szobaszám
felhasználó munkahelyi szobaszáma
–w telefonszám
felhasználó munkahelyi telefonszáma
–h telefonszám
felhasználó otthoni telefonszáma

Paraméter megadása nélkül mindegyik információt újra bekéri. Csak ENTER bevitele esetén a már letárolt információ ([ ] jelek között láthatók) változatlanul megmarad. A kívánt eltárolt információ kitörlése a “semmi” paramétert kell átadni, azaz a szobaszám törlése : “-r ”” (-r paraméter után két darab egyszeres aposztróf egymás után)

A /etc/login.defs fájl segítségével szabályozhatjuk a program működését, többek között itt van beállítva a jelszókérés (CHFN_AUTH yes) és a teljes név megváltoztatásának tiltása (CHFN_RESTRICT rwh) normál felhasználó számára.

bash$ chfn
Password:
Changing the user information for jonci
Enter the new value, or press ENTER for the default
Full Name: Jónás Zsolt
Room Number []: 101
Work Phone []: 123-4567
Home Phone []: 765-4321
bash$

bash$ chfn
Password:
Changing the user information for jonci
Enter the new value, or press ENTER for the default
Full Name:
Room Number [101]:     <ENTER>
Work Phone [123-4567]: <ENTER>
Home Phone [765-4321]: <ENTER>
bash$

bash$ chfn -h ''
Password: <jelszó megadása>
bash$

bash$ chfn
Password:
Changing the user information for jonci
Enter the new value, or press ENTER for the default
Full Name:
Room Number [101]:     <ENTER>
Work Phone [123-4567]: <ENTER>
Home Phone []:         <ENTER>
bash$

Felhasználó alap héj programjának megváltoztatása – chsh

A chsh használatával változtathatjuk meg egy adott felhasználó  alap héj programját. A program elindítása után az azonosítás sikeres megtörténte után bekéri az új héj programot az elérési útvonalával együtt. Ez utóbbi megadhatjuk közvetlenül a “-s shell” paraméterrel. A rendszergazdának joga van bármelyik felhasználó alap héj programját megváltoztatni, bármire a felhasználók viszont csak a /etc/shells fájlban felsoroltak közül választhatnak:

bash$ chsh
Password: <jelszó megadása>
Changing the login shell for jonci
Enter the new value, or press ENTER for the default
        Login Shell [/bin/bash]: /bin/akarmi
/bin/akarmi is an invalid shell.
bash$

bash$ chsh -s /bin/sh
Password: <jelszó megadása>
bash$

Felhasználó eltávolítása más programmal – userdel

Az eltávolítás során a felhasználó törölve az összes csoportjából és a csoportazonosítója is megszüntetésre kerül, ha az nem rendszercsoport. Az “-r” kapcsoló megadásával kérhetjük a felhasználó home könyvtárának és levelesládájának eltávolítását, az “-f” kapcsoló használatával még akkor is, ha az nem a felhasználóé.

root@bash# userdel -rf jonci
root@bash#

Felhasználó törlése egy másik programmal – deluser

A deluser programmal is törölhetjük a felhasználót. Az alábbi kapcsolókat használhatjuk:

––remove-home felhasználó home könyvtárának és mailbox fájljának eltávolítása
––remove-all-files
a felhasználó által birtokolt összes fájl törlése
––backup
mentés készítése
––backup-to KÖNYVTÁR
mentés könyvtárának megadása (alapesetben a jelenlegi könyvtár)
––system
csak akkor törlődik a felhasználó ha system-user
root@bash# deluser --remove-home jonci
Looking for files to backup/remove...
Removing files...
Removing user `jonci'...
done.
root@bash#

Felhasználó törlése egy csoportból – deluser

Ehhez a művelethez is használhatjuk a deluser programot, amelynek menete a következő:

deluser <felhasználó> <csoport>

A jonci felhasználó eltávolítása az audio csoportból:

root@bash# deluser jonci audio
Removing user jonci from group audio...
done.
root@bash#

Felhasználók szinkronizálása – pwconv, pwunconv

Abban az esetben, ha nem használjuk a már megismert felhasználókat kezelő programokat, hanem saját kezűleg akarjuk szerkeszteni a /etc/passwd és a /etc/shadow fájlokat, akkor sincs gond, mert ez az út sem annyira rögös 🙂 Ugyanis elég csak a passwd fájlt szerkeszteni, majd szinkronizáltatni a shadow fájllal.

A pwconv program feladata a shadow fájl (újra)készítése a passwd és a – valószínűleg – létező shadow fájl felhasználásával. A konvertálás során a shadow fájl azon sorai törlésre kerülnek, amelyek csak a shadow fájlban szerepelnek és a passwd fájlban nem. Amely sorok csak a passwd fájlban szerepelnek, hozzáadódnak a shadow fájlhoz. Azon soroknál, amelyek szerepelnek mindkét fájlban, azonban valamiért a jelszó továbbra is a passwd fájlban tárolódik, frissítésre kerülnek, azaz a jelszó átkerül a passwd fájlból a shadow fájlban, valamint a passwd fájlban a jelszó helyére egy “x” betű kerül, jelezvén, hogy a jelszót a továbbiakban a shadow fájl tartalmazza.

A pwunconv program feladata a jelszavak áthelyezése a shadow fájlból a passwd fájlba. Amelyik felhasználóhoz tartozik bejegyzés, jelszó a shadow fájlban, frissítésre kerül. A passwd fájlban a jelszó mező helyén levő “x” helyére kerül a shadow fájlban tárolt jelszó. A szinkronizálás után a shadow fájl törlődik.

Jelszófájlok ellenőrzése – pwck

Leellenőriztethetjük vele a /etc/passwd és a /etc/shadow fájl éppségét. A program ellenőrzni, hogy megfelelő számú mező van-e a sorokban, minden felhasználó egyedi azonosítószámmal rendelkezik-e, léteznek-e a home könyvtárak, valamint érvényes shell program van-e megadva minden felhasználónak.

Példaként lássunk egy esetet, létezik egy proba felhasználó, azonban nem hoztuk létre a home könyvtárát:

root@bash# pwck
user proba: directory /home/proba does not exist
pwck: no changes
root@bash#

A program magától nem hozza létre a home könyvtárat csak figyelmeztet, hogy nem létezik. Azonban, ha a /etc/passwd és a /etc/shadow fájl között eltérés van, akkor futás közben rákérdez, hogy korrigálja-e az eltérést. Példaként a proba felhasználó bejegyzés törlésre került a passwd fájlból, csak a shadow fájlban maradt meg:

root@bash# pwck
delete line `proba:x:12374:0:99999:7:::'? y
pwck: the files have been updated
root@bash#

A “-r” kapcsoló megadásával bekapcsolható a “csak-olvas” üzemmód, azaz bármilyen eltérést is talál a két fájl között, nem tesz lépéseket a kijavítására

Email This Post Email This Post Print This Post Print This Post
 
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Szólj hozzá!