Sudo (Magyar)

Fordítás állapota:
Ez az oldal az angol
Sudo
című oldal magyar nyelvre lefordított változata. Utolsó fordítás dátuma: 2026.04.12. Amennyiben a lefordítás időpontja óta az angol nyelvű oldalon történtek újabb
módosítások
, akkor Ön segíthet hozzászinkronizálni az angolhoz ezt a magyar nyelvű fordítást.
További oldalak az adott témakörben
doas (Magyar)
run0 (Magyar)
su (Magyar)
Users and groups (Magyar)
Privilege elevation for graphical applications (Magyar)
A
sudo
lehetővé teszi a rendszergazda számára, hogy hatáskört delegáljon (rendszergazdai hatáskört adjon) bizonyos felhasználóknak – vagy felhasználói csoportoknak – annak érdekében, hogy parancsokat futtassanak root felhasználóként vagy másik felhasználóként, miközben naplózást biztosít a parancsokról és azok argumentumairól.
A sudo alternatívát kínál a
su
parancshoz a root jogosultságú parancsok futtatására. Ellentétben a
su
paranccsal, amely egy root shellt indít el, és ezáltal minden további parancs root hozzáférést kap, a sudo csak egyetlen parancs erejéig biztosít ideiglenes jogosultságmegnövelést. Mivel a root jogosultságok csak szükség esetén kerülnek engedélyezésre, a sudo használata csökkenti annak esélyét, hogy egy elgépelés vagy egy hibásan meghívott parancs tönkretegye az operációs rendszert.
A sudo más felhasználók nevében történő parancsfuttatásra is használható. Emellett a sudo minden parancsot és sikertelen hozzáférési kísérletet naplóz a
journal
rendszerbe biztonsági ellenőrzés céljából.
Telepítés
Annak érdekében, hogy a számítógépen fent legyen a sudo parancs, Önnek
fel kell telepítenie
a számítógépre a
sudo
szoftvercsomagot.
Tipp
A
sudo-rs
szoftvercsomag a
sudo
parancs egy alternatív, memóriabiztonságos implementációja (amely néhány
korlátozással rendelkezik
).
Használat
Annak érdekében, hogy a
sudo
parancsot nem privilegizált felhasználóként használhassuk, azt megfelelőképpen be kell állítani. Tekintse meg a
#Beállítás
című szakaszt.
A
sudo
parancsot úgy kell használni, hogy az adott parancsunk legelejére odaírjuk a
sudo
szöveget és egy szóközt írunk utána, majd jöhet az adott parancsunk (és utána jöhetnek az adott parancsunkhoz tartozó paraméterek, ha vannak ilyenek):
$ sudo
cmd
A pacman szoftvercsomag-kezelőt a sudo paranccsal együtt a következőképpen kell írni:
$ sudo pacman -Syu
További információkért tekintse meg a
sudo(8)
parancs man súgóoldalát.
Login shell
Minden parancsot nem lehet másik felhasználó nevében futtatni pusztán a
sudo
előtag hozzáadásával. Különösen
átirányítás
és
parancshelyettesítés
használatakor bejelentkezési shell-t kell használni, amely könnyen elérhető a
sudo -iu
user
paranccsal (az
-u
user
elhagyható, ha a kívánt felhasználó a root).
A következő példában a parancshelyettesítés teljes shell-ben működne, de a
sudo
előtag hozzáadásával meghiúsul:
$ sudo wpa_supplicant -B -i
interface
-c
<(
wpa_passphrase
MYSSID passphrase
)
Successfully initialized wpa_supplicant
Failed to open config file '/dev/fd/63', error: No such file or directory
Failed to read or parse configuration '/dev/fd/63'
Beállítás
A sudo fő beállításfájlja a
/etc/sudoers
. Ezt a beállításfájlt
mindig
a
visudo(8)
paranccsal kell szerkeszteni. A beállításfájl használható aliasok (gyakorlatilag változók) beállítására, alapértelmezett viselkedések megváltoztatására és annak meghatározására, hogy mely felhasználók milyen parancsokat futtathatnak. További információért tekintse meg a
sudoers(5)
man súgóoldalt.
A
sudo
feldolgozza a
/etc/sudoers.d/
könyvtárban található fájlokat is. Ez azt jelenti, hogy a
/etc/sudoers
fájl szerkesztése helyett a sudo a beállításokat különálló fájlokban módosíthatja, majd elhelyezheti azokat ebben a könyvtárban. Ennek kettő előnye van:
Nincs szükség a
sudoers.pacnew
fájl összevonására.
Ha probléma van egy új bejegyzéssel, akkor Ön eltávolíthatja a hibás fájlt ahelyett, hogy a
/etc/sudoers
fájlt szerkesztené. (Azonban, tekintse meg az alábbi figyelmeztetést).
A beillesztett fájlok bejegyzéseinek formátuma megegyezik magának a
/etc/sudoers
fájlnak a formátumával. Közvetlen szerkesztésük érdekében Ön használja a
visudo /etc/sudoers.d/
somefile
parancsot. Részletekért tekintse meg a
sudoers(5) § Including other files from within sudoers
man sógót.
A
/etc/sudoers.d/
könyvtárban lévő fájlok lexikografikus sorrendben kerülnek feldolgozásra, a
.
vagy
~
karaktert tartalmazó fájlnevek kihagyásra kerülnek. A rendezési problémák elkerülése érdekében a fájlneveknek kettő számjeggyel kell kezdődniük. Például:
10-foo
.
Megjegyzés
Fontos a beillesztett fájlok bejegyzéseinek a sorrendje: Ügyeljen arra, hogy az utasítások ne írják felül egymást.
Figyelmeztetés
A
/etc/sudoers.d/
könyvtárban lévő fájlok éppoly sérülékenyek, mint maga a
/etc/sudoers
fájl: Bármely helytelenül formázott fájl megakadályozza a
sudo
működését. Ezért ugyanabból az okból erősen javasolt a
visudo
használata.
Defaults váz
Ahogy az a
sudoers(5) § Defaults
súgóleírásban is ki van fejtve, "számos viselkedési beállítás megváltoztatható futásidőben az alapértelmezett értékekről egy vagy több
Default_Entry
sor segítségével". A
sudoers(5) § SUDOERS OPTIONS
súgóleírás felsorolja az összes olyan beállítást, amely használható a
Defaults
segítségével.
Aktuális beállítások megtekintése
Futtassa a
sudo -ll
parancsot az aktuális sudo beállítás megjelenítése érdekében, vagy futtassa a
sudo -lU
felhasználónév
parancsot egy adott felhasználóhoz tartozó sudo beállítás megjelenítése érdekében.
A visudo használata
A
visudo
zárolja a megadott fájlt (alapértelmezés szerint a
/etc/sudoers
fájlt), a módosításokat egy ideiglenes fájlba menti, majd még mielőtt elmentené, szintaktikai hibákat keres benne.
Figyelmeztetés
Elengedhetetlen, és kritikusan fontos, hogy a
sudoers
mentes legyen a szintaktikai hibáktól! Bármilyen hiba használhatatlanná teszi a sudo parancsot. Ön
mindig
a
visudo
segítségével szerkessze a sudoers fájlt annak érdekében, hogy biztosan elkerülje a hibákat.
A
visudo(8)
man súgója figyelmeztet, hogy a
visudo
beállítása a választott szövegszerkesztő felhasználói környezeti változóinak tiszteletben tartására biztonsági rés lehet, mivel lehetővé teszi a
visudo
jogosultsággal rendelkező felhasználó számára, hogy tetszőleges parancsokat futtasson root felhasználóként naplózás nélkül, egyszerűen a változó más értékre állításával.
A
visudo
alapértelmezett szövegszerkesztője a
vi
szövegszerkesztő. A
sudo
szoftvercsomag
--with-env-editor
opcióval van forráskódból lefordítva, és figyelembe veszi a
SUDO_EDITOR
,
VISUAL
és
EDITOR
változók használatát. Ha a
VISUAL
be van állítva, akkor az
EDITOR
nincs használva.
A
nano
szövegszerkesztő beállításához
visudo
szövegszerkesztőként az aktuális shell munkamenet idejére exportálja a
EDITOR=nano
változót. Egy másik szövegszerkesztő egyszeri használatához egyszerűen állítsa be a változót a
visudo
meghívása előtt:
# EDITOR=nano visudo /etc/sudoers.d/10-editor
A szövegszerkesztő végleges megváltoztatása érdekében tekintse meg az
Environment variables#Felhasználónként
című leírást.
A
visudo
szövegszerkesztőjének rendszerszintű, végleges megváltoztatása érekében (például
rnano(1)
, a
nano
korlátozott mód):
/etc/sudoers.d/10-editor
# Az alapértelmezett EDITOR a nano korlátozott verziójára történő beállítása. Továbbá annak letiltása, hogy a
visudo
használja az EDITOR/VISUAL változókat.
Defaults      editor=/usr/bin/rnano, !env_editor
Ön alternatív megoldásként létrehozhat egy másolatot a fájlról, majd utólag ellenőrizheti a
visudo -c
/fájl/másolata
parancs futtatásával. Ez hasznos lehet amikor Ön el akarja kerülni a
visudo
segítségével történő fájl zárolását.
Példabejegyzések
Annak érdekében, hogy – amikor egy parancs elé
sudo
kerül – az
archie
felhasználó egyetlen gépen (
hostname
) bármely felhasználóként és csoportként futtathassa az összes parancsot, Ön hozza létre a következőt:
/etc/sudoers.d/90-archie
archie
hostname
=(ALL:ALL) ALL
Annak érdekében, hogy a
wheel
csoport tagjai teljes hozzáférést kapjanak, a következőt kell létrehozni:
/etc/sudoers.d/10-wheel
%wheel      ALL=(ALL:ALL) ALL
Tipp
Amikor új rendszergazdák vannak létrehozva, gyakran kívánatos engedélyezni a sudo hozzáférést a
wheel
csoport számára és
hozzáadni a felhasználót ehhez a csoporthoz
, mivel alapértelmezés szerint a
Polkit
a
wheel
csoport tagjait rendszergazdáknak tekinti. Ha a felhasználó nem tagja a
wheel
csoportnak, akkor a Polkit-et használó szoftverek előfordulhat, hogy a root jelszóval kérnek hitelesítést a felhasználói jelszó helyett.
Az
archie
felhasználó számára történő jelszóbekérés letiltása érdekében a következőt kell létrehozni:
Figyelmeztetés
Ez lehetővé teszi, hogy bármely olyan folyamat amely az Ön felhasználónevével fut, engedélykérés nélkül használhassa a sudo parancsot.
/etc/sudoers.d/90-archie_nopasswd
Defaults:archie      !authenticate
Meghatározott parancsok engedélyezése kizárólag az
archie
felhasználó számára a
hostname
számítógépen jelszó nélkül:
/etc/sudoers.d/90-archie_commands
archie
hostname
= NOPASSWD: /usr/bin/halt,/usr/bin/poweroff,/usr/bin/reboot,/usr/bin/pacman -Syu
Megjegyzés
A leginkább testre szabott beállításnak a fájl végén kell lennie (vagy használjon olyan fájlnevet a drop-in fájlokhoz, amely fájlnév lexikográfiai sorrendben később következik), mivel a későbbi sorok felülírják az előzőeket. Különösen akkor kell ilyen sort a
%wheel
sor után elhelyezni, amikor az Ön felhasználói fiókja tagja ennek a csoportnak.
Részletes
sudoers
példa érhető el a
/usr/share/doc/sudo/examples/sudoers
fájlban. Egyébként tekintse meg a
sudoers(5)
man súgót a részletes információért.
Alapértelmezett sudoers fájljogosultságok
A
sudoers
fájl tulajdonosának és csoportjának egyaránt 0 értékűnek kell lennie. A fájl jogosultságait 0440 értékre kell állítani. Ezek a jogosultságok alapértelmezetten be vannak állítva, de ha Ön véletlenül megváltoztatja őket, akkor azonnal vissza kell állítani, máskülönben a sudo nem fog működni.
# chown -c root:root /etc/sudoers
# chmod -c 0440 /etc/sudoers
Parancs futtatása SSH protokollon keresztül
Az SSH alapértelmezés szerint amikor távoli parancsot futtat nem foglal le tty-t. Lefoglalt tty nélkül a sudo nem tudja megakadályozni, hogy a jelszó megjelenjen. Önnek az ssh
-t
opcióját kell használnia annak érdekében, hogy kényszerítse a tty lefoglalását, és a
Defaults
beállításban a
requiretty
opciót kell megadnia annak érdekében, hogy csak akkor engedje a felhasználónak a sudo futtatását, amikor rendelkezik tty-vel.
/etc/sudoers.d/10-requiretty
# Az "ssh hostname sudo <parancsneve>" használatának letiltása, mert ez a jelszó egyszerű szövegként fog megjelenni. Önnek az "ssh -t hostname sudo <parancsneve>" parancsot kell futtatnia.
#
Defaults    requiretty
Defaults    cmddenial_message="Usage without a TTY is not allowed: run 'ssh -t'!"
Megengedő umask
A sudo egyesíti a felhasználó
umask
értékét a saját umask értékével (amelynek alapértelmezése 0022). Ez megakadályozza, hogy a sudo a felhasználó umask értékénél nyitottabb jogosultságokkal hozzon létre fájlokat. Bár ez észszerű alapértelmezés, ha nincs egyedi umask használatban, előfordulhat, hogy egy sudo paranccsal futtatott segédprogram más jogosultságokkal hoz létre fájlokat, mint ha közvetlenül root felhasználóként futtatnák. Ha ebből hibák adódnának, akkor a sudo lehetőséget biztosít az umask javítására, még akkor is, ha a kívánt umask engedékenyebb, mint a felhasználó által megadott umask:
/etc/sudoers.d/10-umask_override
Defaults umask = 0022
Defaults umask_override
Ez beállítja a sudo umask értékét a root alapértelmezett umask értékére (0022), és felülírja az alapértelmezett működést, mindig a megadott umask értéket használva, függetlenül attól, hogy a felhasználó milyen umask értéket állított be.
Tippek és trükkök
Annak az alkalmaknak a csökkentése amikor a jelszóbegépelést el kell végezni
Ha bosszantja, hogy alapértelmezés szerint 5 percenként újra be kell írnia az Ön saját jelszavát, akkor ezt az állapotot megváltoztathatja úgy, hogy hosszabb időértéket állít be a
timestamp_timeout
számára (percben):
/etc/sudoers.d/10-timestamp_timeout
Defaults timestamp_timeout=10
Amennyiben Ön hosszú szkriptfájlban használ sudo parancsokat, és nem szeretné megvárni a felhasználói bevitelt, amikor a timeout lejár, akkor lehetőség van a timeout frissítésére a
sudo -v
külön futtatásával egy ciklusban (míg a
sudo -K
azonnal visszavonja a timeout időértéket).
Jelszóbekérés időkorlátjának letiltása
Gyakori bosszúság egy hosszú ideig futó folyamat, amely egy háttérben a parancssorban fut normál jogosultságokkal, és csak szükség esetén emelkedik magasabb szintre. Ez sudo jelszóbekérést eredményez, amely észrevétlen marad és lejár, ekkor a folyamat megszakad, és az addig elvégzett munka elveszik, vagy legjobb esetben gyorsítótárba kerül. Gyakori tanács a jelszó nélküli sudo engedélyezése, vagy a sudo jelszómegőrzési időkorlátjának meghosszabbítása. Mindkettőnek negatív biztonsági következményei vannak. A
prompt
időkorlátot azonban le lehet tiltani, és mivel ez nem szolgál semmilyen észszerű biztonsági célt, itt ez kell, hogy legyen a megoldás:
/etc/sudoers.d/10-passwd_timeout
Defaults passwd_timeout=0
Aliaszok átadása
A következő abban az esetben releváns, amikor a bash completion nem érhető el (sem teljes, sem a fent leírt csökkentett formában): Az
Zsh
és
Bash
aliaszok általában csak a parancs első szavára kerülnek kibővítésre. Ez azt jelenti, hogy az Ön aliaszai általában nem fognak kibővülni a
sudo
parancs futtatásakor. Az egyik módja annak, hogy a következő szó kibővüljön, ha készít egy sudo aliaszt, amely szóközzel végződik. Adja hozzá a következőt a
shell beállításfájljához
:
alias sudo='sudo '
A
zshmisc(1) § ALIASING
súgó leírja, hogy miként működik ez:
Ha a helyettesítő szöveg szóközzel végződik, akkor a shell bemenet következő szava mindig alkalmas az aliasz kibővítésére.
Ugyanígy a
bash(1) § ALIASES
súgó is leírja:
Ha az aliasz értékének utolsó karaktere egy szóköz, akkor az aliasz után következő parancsszó is ellenőrzésre kerül aliasz kibővítés szempontjából.
Parancssorcsengő hozzáadása a jelszóbekéréshez
Annak érdekében, hogy felhívja a figyelmet egy háttérben futó parancssorban megjelenő sudo promptra, a felhasználó egyszerűen kiírathat egy
csengő karaktert
:
/etc/sudoers.d/10-passprompt
Defaults passprompt="
^G
[sudo] password for %p: "
Vegye figyelembe, hogy a
^G
egy tényleges csengő karakter. Például a
vim
szövegszerkesztőben a
Ctrl+v
Ctrl+g
billentyűgombok sorozatával lehet beilleszteni. Ha a
Ctrl+v
másra van kiosztva, például beillesztésre, akkor
általában
a
Ctrl+q
használható helyette. A
nano
szövegszerkesztőben az
Alt+v
Ctrl+g
billentyűgombokat lehet használni erre a célra.
This article or section needs expansion.
Reason:
Lehetséges-e megőrizni a nyelvterületileg beállított promptot a bell használata közben? Ugyanez a kérdés a SUDO_PROMPT esetében. Van-e alternatíva, például a "-B" opció alapértelmezettként való használatával?  (Discuss in
Talk:Sudo (Magyar)
)
Egy másik lehetőség a
SUDO_PROMPT
környezeti változó
beállítása. Például adja hozzá a következőt a shell beállításfájljához:
export SUDO_PROMPT=$'\a[sudo] password for %p: '
Parancssoronkénti sudo letiltása
Amennyiben zavarja Önt a sudo alapértelmezett viselkedése, amely minden újonnan megnyitott parancssorban megköveteli a jelszó beírását, akkor változtassa meg a
timestamp_type
változónak az értékét (amely alapértelmezett állapotban
tty
értékre van beállítva). Be kell állítani
ppid
értékre, így minden azonos szülőfolyamat-azonosítóval rendelkező folyamat megosztja az 5 perces időkorlátot. Ez különösen hasznos
terminál multiplexer
vagy olyan grafikus felhasználói felülettel rendelkező parancssor esetében amely rendelkezik fülekkel. Egy másik lehetőség az, hogy ha Ön
global
értékre állítja be.
Figyelmeztetés
A
global
időbélyeg használata lehetővé teszi, hogy bármely folyamat hozzáférjen az Ön sudo munkamenetéhez.
/etc/sudoers.d/10-timestamp_type
Defaults timestamp_type=ppid
Környezeti változók
Amennyiben Önnek sok környezeti változója van, vagy a proxy beállításait az
export http_proxy="..."
paranccsal exportálja, akkor a sudo parancs használatakor ezek a változók nem kerülnek át a root felhasználói fiókhoz, kivéve ha a sudo parancsot a
-E
/
--preserve-env
opcióval futtatja.
$ sudo -E pacman -Syu
Ha hozzáadja a környezeti változókat az
env_keep
listához, akkor a környezeti változók megőrzésének ajánlott módja:
/etc/sudoers.d/10-env_keep
Defaults env_keep += "ftp_proxy http_proxy https_proxy no_proxy"
Root jelszó
Amennyiben a felhasználók hozzáadják a
targetpw
(célfelhasználó, alapértelmezésben root) vagy a
rootpw
opciót a Defaults sorhoz a
/etc/sudoers
fájlban, akkor ezzel beállíthatják a sudo parancsot úgy, hogy a root jelszót kérje a felhasználói jelszó helyett:
/etc/sudoers.d/10-targetpw
Defaults targetpw
A root felhasználó jelszavának felhasználók előtti felfedés megelőzése érdekében a felfedést Ön korlátozhatja egy adott csoportra:
/etc/sudoers.d/10-targetpw
Defaults:%wheel targetpw
 %wheel ALL=(ALL) ALL
Root bejelentkezés letiltása
Létezik olyan eset, amikor a felhasználók le kívánják tiltani a root bejelentkezési lehetőséget. A root felhasználó hiányában a támadóknak először meg kell találniuk azt a felhasználónevet, amely sudoer-ként van beállítva, aztán ezután ki kell találniuk ennek a felhasználónak a jelszavát is. Részletekért tekintse meg például a
OpenSSH#Deny
című leírást.
Figyelmeztetés
Legyen óvatos, mert előfordulhat, hogy Ön kizárja saját magát a rendszerből a root bejelentkezés letiltása által. A sudo nincs automatikusan telepítve, és az alapértelmezett beállítása sem jelszó nélküli root hozzáférést, sem pedig root hozzáférést a saját jelszavával nem engedélyez. Gondoskodjon arról, hogy egy felhasználó megfelelően sudoer-ként legyen beállítva
mielőtt
letiltja a root fiókot!
Ha módosította a sudoers fájlt úgy, hogy alapértelmezésként a rootpw-t használja, akkor ne tiltsa le a root bejelentkezést az alábbi parancsok egyikével sem!
Ha már kizárta Önmagát, akkor a segítségért tekintse meg a
Jelszó helyreállítása
című leírást.
A fiók zárolható a
passwd
parancs segítségével:
# passwd -l root
Egy hasonló parancs feloldja a root fiókot.
$ sudo passwd -u root
Alternatív megoldásként használhatja a következő parancsot a jelszó törlésére, majd a root fiók zárolására:
$ sudo passwd -dl root
A root bejelentkezés újbóli engedélyezése érdekében a következő parancsot kell futtatni:
$ sudo passwd root
Vegye figyelembe, hogy a fenti parancs csupán a jelszóalapú bejelentkezést tiltja le. A felhasználó továbbra is képes lehet bejelentkezni egy másik hitelesítési tokennel (például SSH kulccsal). A fiók letiltása érdekében futtassa a következő parancsot:
$ usermod --expiredate 1 root
The factual accuracy of this article or section is disputed.
Reason:
A legtöbb esetben, amikor egy felhasználó vészhelyzeti shell környezetbe kerül bele, az initramfs fájlrendszert használja, és nem fogja alkalmazni a következő beállítást, hacsak nem kerül hozzáadásra a
FILES
-hez a
mkinitcpio beállításában
. (Discuss in
Talk:Sudo (Magyar)
)
Vészhelyzet esetén a helyreállítási prompt root jelszót fog kérni, ami lehetetlenné teszi a bejelentkezést a helyreállítási shell környezetbe. A root fiók automatikus feloldásához vészhelyzet esetén adja hozzá a
SYSTEMD_SULOGIN_FORCE=1
környezeti változót a
rescue.service
szolgáltatáshoz egy
drop-in fájl
használatával:
/etc/systemd/system/rescue.service.d/SYSTEMD_SULOGIN_FORCE.conf
[Service]
Environment=SYSTEMD_SULOGIN_FORCE=1
Tipp
Még a
root
fiók letiltása után is, az interaktív root prompt elérés érdekében használja a
sudo -i
parancsot.
kdesu
A
KDE
alatt a kdesu használható GUI alkalmazások root jogosultságokkal történő indítására. Előfordulhat, hogy alapértelmezés szerint a kdesu az su parancsot próbálja használni még akkor is, ha a root fiók le van tiltva. Szerencsére megadható, hogy a kdesu az su helyett a sudo parancsot használja. Hozza létre/szerkessze a
~/.config/kdesurc
fájlt:
[super-user-command]
super-user-command=sudo
Illetve, használja a következő parancsot:
$ kwriteconfig6 --file kdesurc --group super-user-command --key super-user-command sudo
Megerősítés sudo példával
Tegyük fel, hogy Ön létrehoz három felhasználót: Az admin, devel és archie felhasználót. Az "admin" felhasználót a journalctl, systemctl, mount, kill és iptables használatához hozza létre. A "devel" felhasználót a szoftvercsomagok telepítéséhez és a konfigurációs fájlok szerkesztéséhez hozza létre. Az "archie" pedig az a felhasználó, amellyel Ön bejelentkezik az operációs rendszerbe. Annak érdekében, hogy az "archie" felhasználó újra tudja indítani, illetve le tudja állítani az operációs rendszert, és használni tudja a netctl parancsot, a következőt tennénk:
Szerkesztenünk kell a
/etc/pam.d/su
és a
/etc/pam.d/su-l
fájlokat. Követelje meg, hogy a felhasználó a wheel csoportban legyen benne, de ne tegyen bele senkit.
#%PAM-1.0
auth            sufficient      pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth           sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
auth            required        pam_wheel.so use_uid
auth            required        pam_unix.so
account         required        pam_unix.so
session         required        pam_unix.so
Korlátozza az SSH bejelentkezést az 'ssh' csoportra. Egyedül az
archie
felhasználó lesz ennek a csoportnak a tagja.
# groupadd -r ssh
# gpasswd -a archie ssh
# echo 'AllowGroups ssh' >> /etc/ssh/sshd_config
Indítsa újra
az
sshd.service
szolgáltatást.
Adjon hozzá felhasználókat más csoportokhoz.
# for g in power network ;do ;gpasswd -a archie $g ;done
# for g in network power storage ;do ;gpasswd -a admin $g ;done
Állítsa be a beállításfájlok jogosultságait úgy, hogy a
devel
felhasználó szerkeszteni tudja azokat.
# chown -R devel:root /etc/{http,openvpn,cups,zsh,vim,screenrc}
/etc/sudoers.d/80-hardened
Cmnd_Alias  POWER       =   /usr/bin/shutdown -h now, /usr/bin/halt, /usr/bin/poweroff, /usr/bin/reboot
Cmnd_Alias  STORAGE     =   /usr/bin/mount -o nosuid\,nodev\,noexec, /usr/bin/umount
Cmnd_Alias  SYSTEMD     =   /usr/bin/journalctl, /usr/bin/systemctl
Cmnd_Alias  KILL        =   /usr/bin/kill, /usr/bin/killall
Cmnd_Alias  PKGMAN      =   /usr/bin/pacman
Cmnd_Alias  NETWORK     =   /usr/bin/netctl
Cmnd_Alias  FIREWALL    =   /usr/bin/iptables, /usr/bin/ip6tables
Cmnd_Alias  SHELL       =   /usr/bin/zsh, /usr/bin/bash
%power      ALL         =   (root)  NOPASSWD: POWER
%network    ALL         =   (root)  NETWORK
%storage    ALL         =   (root)  STORAGE
root        ALL         =   (ALL)   ALL
admin       ALL         =   (root)  SYSTEMD, KILL, FIREWALL
devel	    ALL         =   (root)  PKGMAN
archie	    ALL         =   (devel) SHELL, (admin) SHELL
Ezzel a beállítással Önnek szinte soha nem lesz szüksége arra, hogy root felhasználóként jelentkezzen be.
Az
archie
felhasználó csatlakozni tud az otthoni Wi-Fi hálózathoz.
$ sudo netctl start home
$ sudo poweroff
Az
archie
felhasználó nem tudja használni a netctl parancsot más felhasználóként.
$ sudo -u admin -- netctl start home
Amikor az
archie
felhasználónak szüksége van a journalctl parancs használatára vagy egy elszabadult folyamat leállítására, akkor átválthat arra a felhasználóra.
$ sudo -i -u devel
$ sudo -i -u admin
De az
archie
felhasználó nem tud átváltani a root felhasználóra.
$ sudo -i -u root
Ha az
archie
felhasználó admin felhasználóként szeretne elindítani egy
GNU Screen
munkamenetet, akkor ezt így teheti meg:
$ sudo -i -u admin
[admin]$ chown admin:tty `echo $TTY`
[admin]$ screen
Fájlok szerkesztése
A
sudo
szoftvercsomag biztosítja a
sudoedit
parancsot (egyenértékű a
sudo -e
paranccsal). Ez a parancs hasznos olyan fájlok szerkesztéséhez, amelyeket egyedül a root felhasználó tud módosítani, miközben a szövegszerkesztő továbbra is normál felhasználóként fut, és az adott felhasználó beállításait használja.
Egy fájl szerkesztése érdekében, Ön állítsa be a
SUDO_EDITOR
változót a szövegszerkesztő nevére, majd adja át a szerkesztendő fájl nevét a
sudoedit
parancsnak. Például:
$ SUDO_EDITOR=vim sudoedit /etc/fájlneve
Tekintse meg az
#A visudo használata
című bekezdést és a
sudo(8) § e
man súgót azokra a lehetőségekre, hogy Ön miként állíthatja be a szövegszerkesztőt, de legyen óvatos a
lehetséges biztonsági problémákkal
.
Amennyiben Ön több fájlnevet ad át a
sudo
parancsnak, akkor egyetlen parancsmeghívással az összes átadott fájl megnyílik a szövegszerkesztőben. Ez a funkció hasznos a fájlok egyesítése szempontjából:
$ SUDO_EDITOR=vimdiff sudoedit /etc/file /etc/file.pacnew
Humoros beszólogatások engedélyezése
A számítógép-felhasználók engedélyezhetik az insults easter egg lehetőséget a sudo parancsban azáltal, hogy a
sudoers
fájlhoz hozzáadják az alábbi sort a
visudo
segítségével.
/etc/sudoers.d/10-insults
Defaults insults
Helytelen jelszó megadása esetén ez lecseréli a
Elnézést, próbálja újra.
üzenetet humoros beszólogatásokra.
Jelszóbevitel-visszajelzés engedélyezése
Amikor Ön jelszót ad meg, alapértelmezés szerint nincs vizuális visszajelzés. Ez a viselkedés szándékosan van így a nagyobb biztonság érdekében (így senki nem látja aki a képernyőt megfigyeli, hogy hány karakteres az Ön jelszava). Azonban, ha Önnek mégis vizuális bevitelre van szüksége, akkor engedélyezheti az alábbi sor hozzáadásával:
/etc/sudoers.d/10-pwfeedback
Defaults pwfeedback
Színezett jelszóbekérés
A jelszóbekérés testreszabásához színekkel és/vagy félkövér betűtípusokkal állítsa be a
SUDO_PROMPT
környezeti változót
a shell inicializációs fájlban, és használja a
tput(1)
parancsot.
Például annak érdekében, hogy a jelszóbekérés
Password:
formában, félkövér vastagsággal, és piros színnel jelenjen meg, használja ezt:
export SUDO_PROMPT="$(tput setaf 1 bold)Password:$(tput sgr0) "
Vagy használjon különböző színeket az alapértelmezett üzenettel a következőképpen:
export SUDO_PROMPT="$(tput setab 1 setaf 7 bold)[sudo]$(tput sgr0) $(tput setaf 6)password for$(tput sgr0) $(tput setaf 5)%p$(tput sgr0): "
Tekintse meg továbbá a
Színes szövegkimenet a parancssorban
és a
Parancssor testreszabása
című cikkeket.
U2F használata
A(z) U2F nagyszerűen használható a sudo paranccsal, mivel nyilvános helyeken hatékonyan kiküszöbölheti a
váll fölötti leskelődés, kifigyelés
kockázatát, miközben egy egyszerű fizikai érintéssel továbbra is tudatos ellenőrzést biztosít Önnek a felszólítás jóváhagyására.
Tekintse meg az
Universal 2nd Factor#Passwordless sudo
című leírást.
Írásvédett fájlokban
Előfordulhat, hogy Ön védett fájlokba szeretne írni amikor a sudo parancsot használja. A
tee
parancs használata lehetővé teszi az ilyen szétválasztást:
$
input stream
| sudo tee
--option
védett_fájl_1 védett_fájl_2...
A fenti parancs akkor jó, amikor egy egyszerű
>
/
>>
átirányítás nem működik.
Vim szövegszerkesztőben
Hasonló elv hasznos lehet olyan körülmények között, amikor Ön elfelejtette a
Vim
szövegszerkesztőt sudo paranccsal indítani egy másik felhasználó tulajdonában lévő fájl szerkesztésekor. Ebben az esetben a fájl mentéséhez a következőt teheti a
Vim
szövegszerkesztőben:
:w !sudo tee %
Ezt hozzáadhatja a
~/.vimrc
fájlhoz annak érdekében, hogy ezt a trükköt könnyen használhatóvá tegye a
:w!!
hozzárendeléssel parancs módban:
~/.vimrc
" Allow saving of files as sudo when I forgot to start vim using sudo
 cmap w!! w !sudo tee > /dev/null %
A
> /dev/null
rész kifejezetten eldobja a szabványos kimenetet, mivel nincs szükségünk arra, hogy bármit is továbbadjunk egy másik csővezérelt parancsnak.
Részletesebb magyarázat arról, hogy pontosan hogyan és miért működik ez, megtalálható a
Hogyan működik a vim "írás sudo paranccsal" trükk?
című cikkben a StackOverflow weboldalon.
A sudo-rs parancs használata a sudo szoftvercsomag nélkül
Ön használhatja a
sudo-rs
parancsot önálló helyettesítőként a
sudo
parancs helyett, anélkül hogy szüksége lenne a
sudo
szoftvercsomag feltelepítésére.
A
sudo
parancs [
https://gitlab.archlinux.org/archlinux/packaging/packages/sudo/-/blob/main/sudo.pam
alapértelmezett be
állítása] alapján hozza létre a
/etc/pam.d/sudo
fájlt.
Továbbá, hozza létre a
/etc/pam.d/sudo-i
fájlt a
sudo -i
számára:
# ln -s /etc/pam.d/sudo /etc/pam.d/sudo-i
Hozza létre vagy a már meglévő
/etc/sudo-rs/config.toml
fájlt szerkessze:
/etc/sudo-rs/config.toml
[defaults]	
askpass = false
timeout = 15
A
sudo-rs
parancs támogatja mind a
/etc/sudoers
, mind a
/etc/sudoers-rs
fájlt, és ha létezik a fájl, akkor az utóbbit használja.
Opcionálisan, Ön lecserélheti a
sudo
parancsot
sudo-rs
parancsra, amennyiben szimbolikus linket hoz létre egy magasabb prioritású
PATH
könyvtárból:
# ln -s /usr/bin/sudo-rs /usr/local/bin/sudo