2024. március 28., csütörtök

Gyorskeresés

SU vagy SUDO?

Írta: | Kulcsszavak: linux su sudo

[ ÚJ BEJEGYZÉS ]

Rendszeresen előjön a kérdés, hogy mi a különbség a su és a sudo között. Nézzük akkor szépen sorban.

SU

Switch user, felhasználó váltás. Lehetővé teszi a felhasználó számára, hogy másik felhasználóvá váljon anélkül, hogy ki/belépne. Ha nem adunk meg felhasználó nevet, akkor root-ra vált át.
Ha a root vált át másik felhasználóra, nem kéri az adott felhasználó jelszavát, ha egyéb felhasználó vált valaki másra (akár root-ra), bekéri az adott felhasználó jelszavát.

Fontosabb paraméterei:
- kapcsoló hatására úgy vált felhasználót, mintha azzal a felhasználóval léptünk volna be (lefuttatja a profile-t, a felhasználó home könyvtárába lép, stb.), egyébként csak a felhasználó és csoport id-ket módosítja, és esetleg a hozzájuk tartozó környezeti változókat.
-c Lefuttatja a megadott parancsot a megadott felhasználó nevében (enélkül ugye egy shell-t indít el).

SUDO

A felhasználó parancsot hajthat végre másik felhasználó nevében, amennyiben engedélyezve van számára. A sudoers fájlban kell engedélyezni hogy melyik felhasználó mit tud végrehajtani, kinek a nevében, illetve hogy kelljen-e jelszót megadnia vagy sem. Ha nem adunk meg felhasználó nevet a -u kapcsolóval, root-ként próbálja meg kiadni az adott parancsot. Amennyiben nincs megadva a sudoers fájlban a NOPASSWD címke, a sudo-t kiadó felhasználó jelszavát kéri be.

Nézzük akkor a fő különbségeket

1. A su használatát nem kell engedélyezni, a sudo-t kell a sudoers konfig fájlban.
2. su-nál annak a felhasználónak a jelszavát kell megadni, akire át akarunk váltani, sudo-nál pedig akiről váltunk, vagy nem kell jelszót megadni.

Példák

Nézzük, hogy hogyan lehet a két parancs segítségével a root nevében shellt indítani. Ha csak egy shellt akarunk indítani akkor vagy a su vagy a sudo -s parancsot használhatjuk. Amennyiben viszont login shellt akarunk indítani, akkor a su - vagy a sudo -i parancsokat használhatjuk. su esetében ismerni kell a root jelszavát, és kérni is fogja, sudo esetében pedig vagy a saját jelszavunkat kéri, vagy azt sem.

[kovaax@otthon ~]$ pwd
/home/kovaax
[kovaax@otthon ~]$ su
Password:
(root jelszava)
[root@otthon kovaax]# pwd
/home/kovaax
[root@otthon kovaax]# exit
[kovaax@otthon ~]$ su -
Password:
(root jelszava)
Last login: Wed Jul 22 14:44:03 CEST 2015 on pts/1
[root@otthon ~]# pwd
/root
[root@otthon ~]# logout
[kovaax@otthon ~]$ pwd
/home/kovaax
[kovaax@otthon ~]$

[kovaax@otthon ~]$ pwd
/home/kovaax
[kovaax@otthon ~]$ sudo -i
[sudo] password for kovaax:
[root@otthon ~]# pwd
/root
[root@otthon ~]# logout
[kovaax@otthon ~]$ sudo -s
[sudo] password for kovaax:
[root@otthon kovaax]# pwd
/home/kovaax
[root@otthon kovaax]# exit
[kovaax@otthon ~]$ pwd
/home/kovaax
[kovaax@otthon ~]$

Nézzük meg, hogy hogyan lehet egyik felhasználóval elindítani egy parancsfájlt, amire neki nincs futattási joga. Legyen a két felhasználó alma és korte, a parancsfájl pedig annyit csinál csak, hogy kiírja a futtató felhasználót (whoami).

A sudoers-be ezt kell beírni:

alma otthon=(korte) NOPASSWD: /home/korte/parancs

A parancsfájl pedig így néz ki:
cat /home/korte/parancs
#!/bin/bash

whoami

[alma@otthon ~]$ ls -l /home/korte/parancs
-rwx------ 1 korte user 25 Jul 22 15:21 /home/korte/parancs
[alma@otthon ~]$ cat /home/korte/parancs
cat: /home/korte/parancs: Permission denied
[alma@otthon ~]$ sudo -u korte /home/korte/parancs
korte
[alma@otthon ~]$ su -c /home/korte/parancs korte
Password:
(korte jelszavát kell beírni)
korte
[alma@otthon ~]$

Sajnos sok linux disztribució a sudo segítségével ad rendszergazdai jogosultságot bizonyos normál felhasználóknak, amit a sudoers-ben a következő (vagy ezzel azonos értékű) sorral old meg:
kovaax ALL=(ALL) ALL
Itt a 3 ALL jelentése a következő (sorban): bármely gépről, bármely felhasználó nevében, bármely parancsot végrehajthatja a kovaax felhasználó. Ez elég randa biztonsági luk, mivel egy normál felhasználóval sokszor belépünk, így sokkal nagyobb az esélye, hogy megszerzik a jelszavunkat valahogy. Szóval én a külön root rendszergazdára és a su parancs használatára szavazok.

Mikor melyiket kell használni?

Szerintem ez a kérdés úgy helyes, hogy mikor kell sudo-t használni?
1. Ha úgy akarok egy felhasználónak jogot adni egy másik felhasználó nevében futtatni dolgokat, hogy ne tudja meg közben a másik felhasználó jelszavát.
2. Vagy ha jelszó nélkül akarom ugyanezt megoldani (tipikusan scriptekben szoktuk ezt használni). Minden más esetben a su használata a javasolt.
Szerintem.

Dokumentáció
man sudo
man sudoers
man su

Hozzászólások

(#1) greenity


greenity
aktív tag

Én világ életemben a sudo-t használtam, igaz max kétfelhasználós rendszereknél...

"Egy mosolynál jobb a több"

(#2) bambano


bambano
titán
LOGOUT blog

a sudo az a linux elwindowsosítása című betegség szülötte.
használatát irtani kell.
az meg totális marhaság, hogy úgy lesz valaki root, hogy a saját jelszavát adja meg, nem a rootét. (itt nem a leírást fikázom, mert a leírás ebben a kérdésben pontos, hanem azt a hülyét, aki kitalált egy ilyen biztonsági megoldást)

mivel a poszt nem tér ki arra, hogy milyen oprendszerről szól, általános leírás akar lenni, ebben az esetben viszont ez "1. A su használatát nem kell engedélyezni," nem igaz, egyes oprendszereken csak azok használhatják a su-t, akik a wheel csoportban benne vannak.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#3) Thrawn


Thrawn
félisten

Jobbklikk -> Futtatás rendszergazdaként? :))

Trolllolololo

Different songs for different moods. łłł DIII Thrawn#2856 łłł Look! More hidden footprints! łłł D4BAD łłł WoT: s_thrawn łłł

(#4) kovaax válasza bambano (#2) üzenetére


kovaax
őstag

Ez a wheel csoport szerintem a sudo-nál van (redhat, solaris és hp-ux alatt legalábbis, más most nincs kéznél)... A többiben egyetértünk. :K

-=- There's no place like /home -=-

(#5) bambano válasza kovaax (#4) üzenetére


bambano
titán
LOGOUT blog

nem, a wheel csoport az a su-nál volt, sudo-t egy csomó unix nem is ismert/ismer.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#6) Jester01


Jester01
veterán

sudo-t akkor használunk ha rendesen bekonfiguráljuk, hogy parancs szinten ki mit futtathat (és persze nem is mindent root-ként). Persze ilyet nem nagyon csinálnak az emberek. Az nonszensz, hogy korlátozás nélkül root lehet bárki sudo-val mert azzal csak megsokszorozzuk a biztonsági rést (hiszen több jelszóval is be lehet jutni).

[ Szerkesztve ]

Jester

(#7) Rimuru válasza kovaax (#4) üzenetére


Rimuru
veterán

A wheel csoport alapbol benne van a sudo pelda configban (talan kommentezve is), de alapvetoen nem arra van, bambanonek van igaza. Nez meg pl egy Arch Linuxot. :)

[ Szerkesztve ]

Vigyázat, csalok!

(#8) ux1 válasza bambano (#2) üzenetére


ux1
addikt

"a sudo az a linux elwindowsosítása című betegség szülötte."

Ja mert 1980-ban olyan sok windows futott.... ;]

-=[ 乂丨卂ㄖ爪丨 ]=-= [ 卩ㄖ匚ㄖ 千1 ]=-

(#9) #21078528


#21078528
törölt tag

Én is mindig viccesnek találtam, hogy Ubus körök arra hivatkoznak, hogy a sudo mennyivel biztonságosabb, mert mennyivel kevesebbet használja a polgár rootként a gépet...
Minden esetre Ubus környezetben a telepítéskor létrehozott első felhasználó mellé érdemes létrehozni egy új felhasználót mindenféle sudozási lehetőség nélkül, és azzal használni a gépet, az első felhasználó számlájával pedig csak adminisztrátori feladatokhoz belépni.

(#10) kovaax válasza bambano (#5) üzenetére


kovaax
őstag

Hát mondom, hogy ott van benne a sudoers fájlban a wheel csoport... Debianon sudo csoport van benne amúgy.

Te erre gondolsz akkor...

Szerk.: A Fedorán van alapból wheel csoport, és az van berakva a sudoers-be. Debianon nincs wheel csoport. Mindkettőn tudok su-zni, szóval a su-s wheel ezekben a linuxokban már nincsen. Megnézem holnap kommersz unixokban is...

[ Szerkesztve ]

-=- There's no place like /home -=-

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.