su (Magyar)
A su (substitute user) alapvető segédalkalmazás arra szolgál, hogy átvegye egy másik felhasználó személyazonosságát az operációs rendszerben. Alapértelmezett állapotban a root felhasználó személyazonosságát szokta átvenni.
Tekintse meg a PAM című cikket a su viselkedésbeállítási lehetőségeinek megismerése érdekében.
Telepítés
A su parancs a(z) util-linux szoftvercsomag része.
Használat
Egy másik felhasználó bejelentkezésének átvétele érdekében a su parancsnak adja át annak a felhasználónak a nevét, akivé Ön szeretne válni. Például így:
$ su felhasználónév
Alapértelmezett viselkedés szerint, amikor Ön normál felhasználóként futtatja a su parancsot, akkor az operációs rendszer bekéri annak a felhasználónak a jelszavát, akivé Ön megpróbál átváltozni. Amikor Ön a su parancsot root felhasználóként futtatja, akkor nincs szükség a jelszómegadásra.
Amennyiben Ön nem ad meg felhasználónevet, akkor a su parancs a root felhasználót veszi alapértelmezésként, és a jelszóbekéréskor Önnek majd a root felhasználó jelszavát kell, hogy begépelje.
További információkért tekintse meg a su(1) man súgóoldalt.
Tippek és trükkök
Login shell
Az su parancs alapértelmezett működése az, hogy az aktuális könyvtárban marad, és megőrzi az eredeti felhasználó környezeti változóit (ahelyett, hogy az új felhasználóéihoz váltana át).
Vegye figyelembe a következő fontos, kontrasztos szempontokat:
- Időnként előnyös lehet egy rendszergazda számára, hogy egy közönséges felhasználó shell fiókját használja a saját fiókja helyett. Különösen az a helyzet fordulhat elő, hogy a leghatékonyabb módja egy adott felhasználói probléma megoldásának az, ha a rendszergazda bejelentkezik az adott felhasználó fiókjába, annak érdekében, hogy reprodukálja vagy kikutassa a probléma okozóját.
- Ugyanakkor sok helyzetben nem kívánatos, sőt akár veszélyes is lehet az, ha a root felhasználó egy közönséges felhasználó shell fiókjából működik, és annak a felhasználónak a környezeti változóit használja a sajátjai helyett. Ha a root felhasználó véletlenül egy közönséges felhasználó shell fiókját használja, akkor telepíthet egy programot vagy más változtatásokat hajthat végre az operációs rendszeren, amelyek nem ugyanazt az eredményt adják, mintha a root fiókból történnének. Például telepíthető egy olyan program, amely lehetőséget adhat a közönséges felhasználónak arra, hogy véletlenül kárt tegyen a rendszerben, vagy véletlenül lehetőséget adhat arra, hogy a közönséges felhasználó jogosulatlan hozzáférést szerezzen bizonyos adatokhoz.
Ezért, tanácsos, hogy az rendszergazda felhasználók, valamint minden más felhasználó, aki jogosult az su parancs használatára (és javasolt, hogy nagyon kevés ilyen legyen, ha egyáltalán van), szokják meg, hogy mindig a -l/--login opcióval futtatják az su parancsot. Ennek kettő hatása van:
- Átvált az aktuális könyvtárból az új felhasználó saját könyvtárába (például a root felhasználó esetében a
/rootkönyvtárba) azáltal, hogy bejelentkezik az adott felhasználóként. - Megváltoztatja a környezeti változókat az új felhasználóéra, ahogyan azt az ő előnyben részesített shell beállításai meghatározzák. Ilyenek például a
~/.bashrc, valamint esetleg más ponttal kezdődő fájlok egy bash shell esetében. Vagyis az aktuális könyvtár és környezet úgy változik meg, ahogyan az várható lenne, ha az új felhasználó ténylegesen egy új munkamenetbe jelentkezett volna be (nem pedig egyszerűen átvette volna egy meglévő munkamenetet).
Ezért az rendszergazdáknak általában az alábbi módon kell használniuk az su parancsot:
$ su -l
Azonos eredményt érhetünk el a root felhasználónév hozzáadásával:
$ su -l root
Hasonlóképpen, ugyanez megtehető bármely más felhasználó esetében is (például egy archie nevű felhasználónál):
# su -l archie
Annak érdekében, hogy Ön bejelentkezzen egy jelszó nélküli felhasználóba, először root felhasználóként kell bejelentkeznie, majd Önnek a root shell-ből kell belépnie a jelszó nélküli felhasználói fiókba:
$ su -l # runuser -l archie
- Időnként előfordulhat, hogy a felhasználók az su parancsot a bejelentkezési shell elérésére a
su -formában használják, ahelyett, hogy asu -l/su --loginváltozatot alkalmaznák. Ez a rövidítés nem javasolt, mivel a-opció értelmezési korlátokba ütközhet. Erről részletesebben a su(1) § DESCRIPTION man súgóban olvashat. - Érdemes lehet Önnek ehhez egy
alias su="su -l"
aliaszt hozzáadnia a~/.bashrcfájlhoz.
A su parancs és a wheel felhasználói csoport
A BSD su parancs alapértelmezés szerint csak a wheel felhasználói csoport tagjainak engedi meg, hogy felvegyék a root felhasználó identitását. Ez a viselkedés nem a GNU su alapértelmezett működése, de ez a viselkedés utánozható a PAM használatával. Meg kell szüntetni a megfelelő sor kommentelését a /etc/pam.d/su és a /etc/pam.d/su-l fájlokban:
auth required pam_wheel.so use_uid
A nologin felhasználók
Ha egy szóban forgó felhasználónak nincs engedélyezve a bejelentkezés (tehát amikor a shell-je /bin/false vagy /usr/bin/nologin be van állítva), akkor Ön nem futtathat parancsokat annak a szóban forgó felhasználónak a nevében azzal, hogy Ön a su user -c command parancsot használja.
Ezt a helyzetet Ön megkerülheti azáltal, hogy megadja a használni kívánt shell-t:
# su -s /usr/bin/bash Ide_a_nologin_felhasználónak_a_felhasználóneve_kerül