Ősidők óta sokakat megzavartak a különféle biztonsági lehetőségek, amikor maximális jogosultságokkal hajtanak végre műveleteket. Például a hivatalosban Ubuntu dokumentáció Javasoljuk a sudo nano-hoz hasonló szerkesztési parancsot használni, és számos amatőr kézikönyvben (a "5 trükk a parancssorban, amivel meglepi a nagymamát" stílusban) javasolják a sudo su írását - hogy megkapja a root "új shell. Megpróbálom elmagyarázni, miért tűnik számomra ez az állapot helytelennek.
Történelmileg az egyetlen univerzális módon futtasson egy parancsot, mivel a Unix másik felhasználója volt a su program. Paraméterek nélkül futtatva a root jelszót kérte, és ha sikerült, egyszerűen megváltoztatta az aktuális felhasználónevet root-ra, így szinte minden megmarad Környezeti változók a régi felhasználótól (kivéve PATH, USER és még néhány, lásd a man su-t a disztribúciódból). Helyesebb volt su - -ként futtatni, ebben az esetben a shell is megkapja a megfelelő környezetet. A -c kapcsolóval a következő parancsot lehetett végrehajtani: su -c "vim /etc/fstab" .
Ugyanakkor a megbízható felhasználóknak emlékezniük kellett a root jelszóra, és a kerékcsoportban felsorolt összes felhasználó (vagyis abban a csoportban, amelynek tagjai végrehajthatják a su parancsot és szuperfelhasználóvá válhatnak) ugyanolyan korlátlan hozzáféréssel rendelkeztek a teljes rendszerhez. , ami komoly biztonsági problémát jelentett.
Aztán jött a sudo parancs, és ez volt az áttörés. Mostantól az adminisztrátor megadhat egy listát az engedélyezett parancsokról minden felhasználóhoz (vagy felhasználócsoporthoz), szerkeszthető fájlokat, speciális környezeti változókat és még sok minden mást (ezt a pompát az /etc/sudoers vezérli, lásd a man sudoers a disztribúciójában) . Amikor a sudo fut, a saját jelszavát kéri a felhasználótól, nem a root jelszót. A teljes shell a "sudo -i" paranccsal érhető el
Külön említésre méltó a speciális sudoedit parancs, amely biztonságosan elindítja a $EDITOR környezeti változóban megadott szerkesztőt. Egy hagyományosabb sémával a fájlok szerkesztése a következőképpen történt:
sudo vi /etc/fstab
Az így elindított Vi egy héjat örökölt korlátlan jogokkal és ezen keresztül:! a felhasználó bármilyen parancsot futtathat (kivéve persze, ha az adminisztrátor előre gondoskodott róla), és megnyithat bármilyen fájlt.
A Sudoedit ellenőrzi, hogy ez a felhasználó szerkesztheti-e adott fájl, majd átmásolja a megadott fájlt egy ideiglenes könyvtárba, megnyitja egy szerkesztőben (ami a felhasználói jogokat örökli, nem a root "a"-t), majd szerkesztés után, ha a fájl megváltozott, speciális óvintézkedésekkel visszamásolja.
Debian-alapú disztribúciókon a root felhasználónak nincs jelszava, ehelyett minden adminisztrációs műveletet a sudo-n vagy annak grafikus megfelelőjén, a gksudo-n keresztül kell végrehajtani. A sudo teljes helyettesítőjeként a sudo legyen az egyetlen parancs a felhasználók közötti váltáshoz, azonban, mint az elején említettük, ez jelenleg nem így van, és valamilyen okból mindenki kitalálja a sudo, su, vi és kötőjelek vad sorozatait. .
Ezért mindenkinek azt javaslom, egyszer s mindenkorra ne feledje:
E jegyzet első közzététele után számos kérdést tettem fel nekem. A válaszokból kiderült, hogy mini-GYIK-t kell készíteni.
K: hogyan lehet a su -c "echo 1 > /etc/privileged_file" parancsot sudo-val csinálni? A sudo echo 1 /etc/privileged_file "engedély megtagadva" esküszik
V: Ennek az az oka, hogy csak az echo parancsot hajtják végre emelt jogokkal, és az eredményt a rendszer átirányítja egy már normál felhasználói jogosultságokkal rendelkező fájlba. Ha hozzá szeretne adni valamit a privileged_file fájlhoz, futtassa a következő parancsot:
$echo 1| sudo tee -a privileged_file >/dev/null
Vagy ideiglenesen root lesz:
$ sudo -i # echo 1 > privileged_file # kilépés $
K: A sudo -i hosszabb, mint a su -, és úgy tűnik, nincs köztük különbség, miért nyomtatna többet?
V: A sudo-nak számos előnye van, amelyek megérik a fáradságot néhány extra karakter beírásával:
Paradox módon a sudo parancs nem zárja ki a rendszergazdai munkamenet futtatását egy normál felhasználói munkameneten belül. Mert ugyanaz a su parancs futtatására használható:
$ sudo su
És ez még az Ubuntuban is megvan, ahol nincs root fiók; pontosabban alapértelmezés szerint nincs jelszó. De a sudo használata szükségtelenné teszi még a su parancshoz sem. De nem tilos beállítani a szuperfelhasználói jelszót - végül is ehhez elég a parancsot megadni
$ sudo passwd
hogy a su-t a szokásos módon használjuk. Sőt, ha szükséges, jelentkezzen be rootként, amikor regisztrál a rendszerbe.
A sudo parancs azonban itt is „ideológiailag helyes” módszert ad, és nem is egyet. Ezek az -s és -i opciók, amelyek, bár kissé eltérő módon, korlátlanul meghosszabbítják a sudo parancs működését, amíg a „másodlagos munkamenet” az exit paranccsal véget nem ér.
A -s kapcsoló egy másodlagos root munkamenet megnyitásakor megőrzi az eredeti felhasználó összes környezeti változóját. Ha azonban hozzáadjuk a -H kapcsolót, akkor ezek a változók újra beolvasásra kerülnek az adminisztrátor kezdőkönyvtárának, vagyis a /root profilfájljaiból, mint egy interaktív shell-példány indításakor. A parancs megadásakor aktuális könyvtár azonban nem változik, és a prompt megjelenése sem. parancs sor.
Az -i opció teljesen reprodukálja a gyökérkörnyezetet azáltal, hogy a shell-jét bejelentkezési shellként futtatja. Természetesen ez az aktuális könyvtárat is /root-ra változtatja, és a parancssori prompt az adminisztrációs shell profilfájljában (bash-ban - PS1) a megfelelő változóban leírt formában jelenik meg.
A gyakorlatban nincs sok különbség az állandó adminisztrátori jogok megszerzésének két formája között, különösen a bash-ban. De a zsh-ben a profilfájlok megfelelő beállításaival, ha szükséges, ezekben az esetekben jelentősen eltérő környezeteket érhet el. Igaz, hogy a felhasználónak mennyi kell, az nagy kérdés. De az a tény, hogy a -H opciók használatakor az állandó adminisztrációs mód kívülről semmilyen módon nem jelenik meg, tele van hibákkal. Ez a legtöbb esetben előnyösebbé teszi az -i opciót.
A sudo képességei egyébként nem korlátozódnak a parancsok adminisztrátorként való futtatására: az -u username opció beállításával azok annak a felhasználónak a nevében is végrehajthatók, akinek a bejelentkezési neve van beállítva értékként. Ez hasznos lehet egy másik felhasználó pontfájljainak és pontkönyvtárainak megtekintésekor vagy másolásakor, amelyeket gyakran csak a tulajdonos olvashat és szerkeszthet.
A sudo parancs egyébként úgy is futtatható, hogy annak a felhasználónak a jelszavát kéri, akinek a nevében a parancs végrehajtásra kerül (például rendszergazda), nem pedig annak a felhasználónak, aki a jogosultságát igényli. Erre van egy -targetpw opció. És ahhoz, hogy a root jelszó követelménye állandó legyen, elegendő például egy aliast megadni, mint pl.
Alias sudo -targetpw
A root jelszó megkövetelése a sudo futtatásakor az alapértelmezett viselkedés egyes disztribúciókban, például a Suse-nak mondják.
A sudo parancsnak sokkal több lehetősége van - fent csak azokat adtam meg, amelyeket használnom kellett. A többi könnyen látható a man sudo-ban. A fel nem soroltak közül megemlítem a -b kapcsolót is, amely arra utasítja, hogy a háttérben futtassuk a „jogosult” parancsot. Hasznos lehet hosszú távú feladatok elvégzésekor, például USB-képek flash meghajtóra másolásakor a dd paranccsal.
Ahogy az imént láttuk, a sudo parancs szinte korlátlan jogkört ad a felhasználónak bármilyen rendszerszintű művelethez, valamint mások felhasználói adatainak manipulálásához. Ezt szem előtt tartva tegyük fel magunknak a következő kérdéseket:
Ha az Ubuntu családról beszélünk, amelyben ezt a mechanizmust először „dobozból”, majd „dobozból” használták, az első kérdésre a válasz negatív, a másodikra pozitív lesz. Általában a sudo program beállításaitól függ, amelyek az /etc/sudoers fájlban vannak leírva. És ebben olyan szabályokat állíthat be, amelyek csak bizonyos felhasználók számára engedélyezik bizonyos parancsok végrehajtását. Összefoglalva így néz ki:
felhasználónév host=parancs
Itt, ahogy sejtheti, a felhasználónév annak a felhasználónak a neve, akinek ez a szabály be van állítva, a host annak a gépnek a neve, amelyről ezt a szabályt használhatja, a parancs pedig az a konkrét parancs, amelynek használata engedélyezett adott felhasználó ettől a géptől. A parancsot a teljes abszolút elérési úttal kell megadni (azaz /sbin/fdisk , nem fdisk). A parancsleíró mező több értéket is tartalmazhat vesszővel elválasztva, például:
Felhasználónév ALL = /sbin/fdisk,/bin/mount
Az Ubuntu alapértelmezett szabályai az adminisztrátori jogosultságokhoz való felhasználói hozzáférésre vonatkozóan a következők:
# Felhasználói jogosultság specifikáció root ALL=(ALL) ALL # Az admin csoport tagjai root jogosultságokat kaphatnak %admin ALL=(ALL) ALL
Vagyis a root felhasználó, ahogy kell, bármilyen parancsot végrehajthat bármely gazdagépről. De csak az adminisztrációs csoporthoz tartozó felhasználók (a kerékcsoport analógja, amelyet említettünk) kaphatnak jogokat. Egy tipikus telepítés során létrehozott felhasználó automatikusan ennek a csoportnak a tagjává válik, így minden adminisztrátori jog minden további beállítás nélkül rendelkezésére áll. Más felhasználók azonban, akiknek fiókja később jön létre, megfosztják ezt a jogosultságot. Kivéve persze, ha kifejezetten az admin csoportba kerültek.
Más disztribúciókban, amelyek nem használják a sudo out of the box-ot, szerkeszteni kell a konfigurációs fájlját – ugyanazt az /etc/sudoers fájlt, amelyet fent említettünk.
Az /etc/sudoers fájl egy normál szövegfájl, és ennek megfelelően bármilyen szövegszerkesztőben szerkeszthető (vagy mondjuk ed vagy sed segítségével). Ugyanakkor fennáll annak a veszélye, hogy valamit elrontanak (a szokásos elírások miatt), akár teljesen blokkolják a szuperfelhasználói jogosultságokhoz való hozzáférést. Természetesen ezek a helyzetek javíthatók – például egyfelhasználós módban történő újraindítással. A legjobb azonban nem ütni őket. Ezért az /etc/sudoers módosításának megbízhatóbb módja egy speciálisan ehhez tervezett segédprogram - visudo .
A visudo segédprogram nem csinál semmi különöset - csak megnyitja az /etc/sudoers fájlt a szuperfelhasználó EDITOR változója által leírt szövegszerkesztőben (ha nincs megadva, akkor ismét klasszikus vi lesz - innen a név), és lehetővé teszi a szokásos módon történő szerkesztést , majd lépjen ki a szerkesztőből, és mentse az eredményeket a szokásos módon. Előtte azonban a szerkesztés eredményének helyességét ellenőrizzük. Ha pedig az /etc/sudoers esetében elfogadott szintaxis megsértését észleljük, megfelelő figyelmeztetést adunk ki. Ezt követően visszatérhet a szerkesztéshez, visszautasíthatja a változtatásokat, vagy továbbra is elfogadhatja azokat (természetesen saját felelősségére).
A visudo segédprogram nem garantálja a 100%-os szerkesztési sikert. Mivel csak a szintaxis megfelelőségét ellenőrzi, de nem „maguk a szabályok helyességét”. Ez azt jelenti, hogy ha hiba történik a szabályhoz szükséges parancs elérési útjának megadásakor, ez a parancs nem fog működni a sudo-n keresztül.
A valóságban azonban általában sokkal egyszerűbbnek tűnik, és egyáltalán nem ijesztő. Tehát a Fedora 11-ben a példaszerű /etc/sudoers konfigurációban csak a sor megjegyzését kellett törölnöm.
%wheel ALL=(ALL) ALL
hogy a megadott csoportból a felhasználónak megadjam (és magam is oda előre bekerültem a leírás szerint) minden jogot, amivel az adminisztrátor rendelkezik. Ugyanakkor lehetőség lenne arra, hogy biztosítsuk magunknak a húzást és a jelszó nélküli sudo használat lehetőségét. Ehhez a sor megjegyzésének törlésére lenne szükség
# %wheel ALL=(ALL) NOPASSWD: ALL
De csak arra szorítkoztam, hogy a jelszóművelet hosszantartóbb legyen a beírással (kezdetben hiányzó sor
Az alapértelmezett timestamp_timeout=10
ahol az időtúllépési érték percben van megadva. Mellesleg, ha nullára változtatja -
Az alapértelmezett timestamp_timeout=0
akkor a jelszót a rendszer minden alkalommal kéri a sudo parancs elérésekor.
Alternatív megoldásként letilthatja az időtúllépést a sudo műveletnél negatív érték megadásával:
Alapértelmezett: timestamp_timeout=-1
Ebben az esetben a jelszó csak a parancs első meghívásakor lesz kérve.
Az /etc/sudoers fájl alapos vizsgálata könnyen feltárja annak lehetőségét, hogy bizonyos felhasználóknak vagy csoportoknak csak korlátozott jogokat adjunk. Azonban itt kezdődnek a valódi ügyintézés finomságai. Egyszerűen megfosztottam a kettős kísérletezőt attól, hogy hozzáférjen minden adminisztratív lépéshez, hogy megállítsam minden beavatkozását ezen a területen. Azonban még ez sem mindig teszi lehetővé, hogy megbirkózzam vele – ahogy Timur Shaov sem tud megbirkózni lírai hősével.
A sudo parancs nagyon fontos a hozzáférési jogok kezeléséhez operációs rendszer Linux. Ennek a kis parancsnak köszönhetően engedélyt adhat bizonyos műveletek végrehajtására az adminisztrátor nevében más felhasználóknak, miközben nem adja meg nekik magát a szuperfelhasználói jelszót. Ezenkívül nem kell mindig a szuperfelhasználói fiókhoz tartoznia ahhoz, hogy néha adminisztratív műveleteket hajtson végre.
Úgy tűnik, hogy egy ilyen kis csapat minimális funkciókkal és a lehető legegyszerűbb használattal, de valójában sokkal többre képes. Ebben a cikkben megvizsgáljuk, hogyan van beállítva a sudo Linuxban a rendszerfunkciókhoz és a felhasználói képességekhez való hozzáférés szabályozására.
Meg is adhatja szöveg szerkesztő ahol szerkeszteni szeretné a konfigurációs fájlt:
# EDITOR=nano vizudo
Ezután megvizsgáljuk a legérdekesebb beállításokat, amelyeket ebben a fájlban beállíthat. De először nézzük meg a fájl alapvető szintaxisát. Kétféle sorból áll, ezek az álnevek, amelyek lehetővé teszik a felhasználók és zászlók listájának létrehozását, valamint maguk a szabályok, amelyek meghatározzák a sudo parancs viselkedését. Az alias szintaxisa így néz ki:
írja be: alias_name = elem1, elem2, elem3
A típus határozza meg, hogy milyen típusú alizt kell létrehozni, a név adja meg a használandó nevet, az elemek listája pedig azokat az elemeket, amelyek a névre való hivatkozáskor utalni fognak rá.
A felhasználók engedélyeinek leírása kissé eltérő szintaxissal rendelkezik:
gazdagép felhasználó = (egyéb_felhasználó:csoport) csapatok
A felhasználó adja meg azt a felhasználót vagy csoportot, amelyre a szabályt létrehozzuk, a gazdagép az a számítógép, amelyre ez a szabály vonatkozik. Másik felhasználó - mely felhasználó leple alatt az első parancsokat hajthat végre, az utolsó pedig az engedélyezett parancsokat. Bármely paraméter helyett alias is használható. És most a sudo beállítása a Debianon és más disztribúciókon.
Alapértelmezések !előadás
Alapértelmezés: !root_sudo
Alapbeállítások set_home
Az alapértelmezett !preserve_groups
alapértelmezett passwd_tries=5
Az alapértelmezett timestamp_timeout=10
alapértelmezett passwd_timeout=10
Defaults passprompt="Az Ön jelszava:"
Erre a célra megadhat egy másik felhasználót, nem root felhasználót, akitől az összes parancs végrehajtásra kerül:
alapértelmezett runas_default="felhasználó"
A sudo-hoz való csatlakozás minden kísérletét naplózhatja:
Alapértelmezés: logfile=/var/log/sudo
$ sudo cat /var/log/sudo
ALL ALL = (ALL) ALL
%wheel ALL = (ALL) ALL
Ugyanazt jelenti, mint az előző, csak itt nem engedélyezzük minden felhasználónak a sudo használatát, hanem csak azoknak, akik a kerékcsoport tagjai.
%wheel ALL = (gyökér) ALL
Itt már csak a root felhasználóra korlátoztuk a felhasználók lehetséges kiválasztását. Megadhatja azt a felhasználói csoportot is, amelynek nevében parancsokat hajthat végre:
%wheel ALL = (root:admins) ALL
User_Alias > Users = user1,user2,user3
Runas_Alias Admins = root,admin
Host_Alias Hosts = host1,host2
Cmd_Alias Cmds = /bin/mount, /bin/umount
Users Hosts = (Adminisztrátorok) parancsok
Ez azt jelenti, hogy a Felhasználók listájában szereplő felhasználók Amdins-felhasználóként futtathatják a Cmds parancsokat a Hostokon.
Marad néhány szó a zászlókról. A NOPASSWD jelző azt mondja, hogy ne kérjen jelszót a szabály végrehajtásakor. Például, hogy minden felhasználó végrehajthassa a mount parancsot sudo-val jelszó nélkül:
ALL ALL = (root) NOPASSWD: /bin/mount
Ezt a parancsot teljesen letilthatja a NOEXEC jelzővel:
ALL ALL = (root) NOEXEC /bin/mount
A paranccsal ellenőrizheti, hogy az /etc/sudores fájl megfelelően van-e konfigurálva, és megtekintheti az összes létrehozott szabályt:
Itt megjelenik az összes zászló és beállítás, valamint a felhasználó engedélyei.
Minden Linux rendszerben mindig van egy kiváltságos felhasználó - a root. Ennek a felhasználónak jogában áll bármilyen műveletet végrehajtani, fájlokat törölni és beállításokat módosítani. Szinte lehetetlen valahogy korlátozni a gyökér cselekvési szabadságát. Másrészt a rendszer összes többi felhasználója általában nincs többségben szükséges jogokat, például a programok telepítésének jogait, mivel ez egy adminisztrációs művelet, amelyhez csak a root jogosult. Egy másik gyakori művelet, amely csak a szuperfelhasználó számára érhető el, a fájlok másolása és módosítása olyan rendszermappákban, amelyekhez a normál felhasználó nem fér hozzá.
Korábban ezt a problémát egészen egyszerűen megoldották: ha megvolt a root jelszó, akkor bejelentkezhetett a rendszerbe az ő fiókjával, vagy ideiglenesen megszerezhette a jogait a su paranccsal. Ezután hajtsa végre az összes szükséges műveletet, és térjen vissza normál felhasználóként. Elvileg egy ilyen rendszer jól működik, de számos jelentős hátránya van, különösen az, hogy lehetetlen (pontosabban nagyon nehéz) korlátozni az adminisztratív jogosultságokat csak egy bizonyos feladatkörre.
Ezért a modern Linux disztribúciók az adminisztrációhoz a root fiók helyett a sudo segédprogramot használják.
Az Ubuntuban alapértelmezés szerint a root fiók általában le van tiltva, pl. nincs mód arra, hogy hozzáférjen a root-hoz anélkül, hogy engedélyezné. root pont az, ami le van tiltva, pl. jelen van a rendszerben, csak nem tudsz alámenni. Ha vissza szeretné adni a root használatának lehetőségét, olvassa el az alábbi, a root fiók engedélyezéséről szóló bekezdést.
A sudo egy olyan segédprogram, amely root jogosultságokat ad a beállításoknak megfelelő adminisztrációs műveletek végrehajtásához. Lehetővé teszi a rendszer fontos alkalmazásaihoz való hozzáférés egyszerű szabályozását. Alapértelmezés szerint mikor az Ubuntu telepítése az első felhasználó (a telepítés során létrehozott) teljes jogot kap a sudo használatára. Azok. valójában az első felhasználónak ugyanaz a mérlegelési joga, mint a root. A sudo ezen viselkedése azonban könnyen megváltoztatható, lásd alább a sudo beállításáról szóló bekezdést.
A sudo akkor használatos, amikor a Rendszeradminisztráció menüből futtat valamit. Például a Synaptic indításakor meg kell adnia jelszavát. A Synaptic egy telepítéskezelő program, ezért futtatásához rendszergazdai jogokra van szükség, amelyeket a sudo-n keresztül a jelszó megadásával kaphat meg.
Nem minden rendszergazdai jogosultságot igénylő program fut azonban automatikusan sudo-val. Általában manuálisan kell elindítani a rendszergazdai jogokkal rendelkező programokat.
Kezdésnek grafikus programok rendszergazdai jogokkal használhatja a programindító párbeszédpanelt, amelyet alapértelmezés szerint az Alt + F2 billentyűkombinációval hívunk meg.
Tegyük fel, hogy futnunk kell fájl kezelő Nautilus rendszergazdai jogokkal a következőhöz GUI valahogy megváltoztatni a tartalmat rendszermappák. Ehhez írja be a parancsot az alkalmazásindító párbeszédablakban
gksudo nautilus
A gksudo helyettesíthető a gksu-val, és a KDE-felhasználóknak a gksudo helyett a kdesu-t kell írniuk. Meg kell adnia jelszavát, és ha van szükséges jogokat, a Nautilus rendszergazdaként fog futni. Bármilyen grafikus szoftver elindítható rendszergazdai jogosultságokkal, egyszerűen az indító párbeszédablakban
gksudo<имя_команды>
Legyen rendkívül óvatos, amikor rendszergazdai jogokkal futó alkalmazásokkal dolgozik. Bármilyen műveletet végrehajthat a rendszer figyelmeztetése nélkül, különösen a törlést rendszerfájlokatígy használhatatlanná teszi a rendszert.
Ha rendszergazdaként szeretne futtatni egy parancsot a terminálban, egyszerűen írja be elé a sudo-t:
sudo<команда>
A rendszer felkéri a jelszó megadására. Legyen óvatos, a jelszó belépéskor semmiképpen nem jelenik meg, ez normális és biztonsági okokból történik, csak írja be a végéig, és nyomja meg az Enter billentyűt. A jelszó megadása után a megadott parancs rootként fut le.
A rendszer egy ideig megjegyzi a beírt jelszót (nyitva tartja a sudo munkamenetet). Ezért előfordulhat, hogy a következő sudo-futtatásokhoz nincs szükség jelszóra. A sudo munkamenet leállításának biztosításához írjon be egy terminált
Ezen túlmenően a Linuxban a csövekkel kapcsolatos hibák gyakoriak. Parancs végrehajtásakor
Sudo cat test.txt | grep szöveg > eredmény.txt
Val vel gyökérként csak a macska lesz végrehajtva, tehát a fájl eredmény.txt nem jelentkezhet be. Minden parancs előtt meg kell írnod a sudo-t, vagy ideiglenesen át kell váltanod superuserre.
Néha szükségessé válik több parancs egymás utáni végrehajtása rendszergazdai jogokkal. Ebben az esetben ideiglenesen szuperfelhasználóvá válhat a következő parancsok egyikével:
sudo -s sudo -i
Ezt követően belép a szuperfelhasználói módba (a sudo beállításokon keresztül meghatározott korlátozásokkal), amint azt a # szimbólum jelzi a parancssor végén. Az akcióparancs adatai hasonlóak a su -hoz, azonban:- sudo -s- nem változtatja meg a saját könyvtárat /root-ra, a saját könyvtár a hívó felhasználó saját könyvtára marad sudo -s ami általában nagyon kényelmes. - sudo -i- a saját könyvtárat is a /root értékre módosítja.
A normál felhasználói módba való visszatéréshez írja be az exit parancsot, vagy egyszerűen nyomja meg a Ctrl + D billentyűkombinációt.
Kinyit fiókot A root indokolatlan kockázatokat rejt magában (ha állandóan rootként dolgozik, 100 500 módja van annak, hogy „lábon lője magát”), és megkönnyíti a támadók számára a számítógéphez való hozzáférést.
Ha rootként szeretne bejelentkezni, csak állítson be egy jelszót:
sudo passwd gyökér
Ezután a bejelentkezési képernyőn kattintson az Egyéb... lehetőségre, és adja meg a beállított bejelentkezési nevet (root) és jelszót.
A 11.10-es verzió óta telepítve van a lightdm bejelentkezéskezelő, és a root bejelentkezések kezelése kicsit bonyolultabb.
1. Állítsa be a root jelszót. Írja be a terminálba:
sudo passwd gyökér
2. Kapcsolja be az "Adja meg bejelentkezési adatait" elemet. Írja be a terminálba:
Gksu gedit /etc/lightdm/lightdm.conf
A fájl végén add hozzá:
Greeter-show-manual-login=true
3. Indítsa újra a lightdm-et. Írja be a terminálba:
sudo service lightdm újraindítás
Ennyi, a bejelentkezési képernyőn megjelenik a "Bejelentkezés" elem. A bejelentkezési mezőbe írja be a "root" kifejezést, a jelszó mezőbe - az első szakaszban beállított jelszót.
A root fiók visszazárásához vissza kell állítania a lightdm beállítások módosításait, valamint zárolnia kell a root fiókot a terminálban található paranccsal:
sudo passwd -l gyökér
A sudo lehetővé teszi, hogy engedélyezze vagy megtagadja a felhasználók számára egy adott programkészlet végrehajtását. A hozzáférési jogokkal kapcsolatos összes beállítás egy fájlban tárolódik /etc/sudoers. Ez nem egy közönséges fájl. Szerkeszteni szükséges(biztonsági okokból) használja a parancsot
sudo visudo
Alapértelmezés szerint azt írja ki, hogy a csoport összes tagja admin teljes hozzáférése van a sudo -hoz, amint azt a sor jelzi
%admin ALL=(ALL) ALL
A fájl szintaxisáról és testreszabási beállításairól a futtatással többet olvashat
Ember sudoers
Ha hibát követ el a fájl szerkesztése közben, nagyon valószínű, hogy teljesen elveszíti a hozzáférést az adminisztratív funkciókhoz. Ha ez megtörténik, akkor be kell indítania helyreállítási mód, és automatikusan rendszergazdai jogokat kap, és mindent meg tud javítani. Ezenkívül ezt a fájlt a LiveCD-ről is szerkesztheti.
Ahhoz, hogy a rendszer ne kérjen jelszót bizonyos parancsoknál, a sor utáni sudoer-ben szükséges # Cmnd alias specifikáció adjunk hozzá egy sort, ahol vesszővel elválasztva listázzuk ki a kívánt parancsokat a teljes elérési úttal (a parancs elérési útját futással találhatja meg melyik parancsnév:
# Cmnd alias specifikáció Cmnd_Alias SHUTDOWN_CMDS = /sbin/shutdown, /usr/sbin/pm-hibernate, /sbin/reboot
És add hozzá a sort a fájl végéhez
Felhasználónév ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS
Figyelem! A fenti lépések nem változtatják meg a sudo parancs beírásának szükségességét a parancs előtt
Annak érdekében, hogy ne csak ne adjon meg jelszót a sudo-hoz, hanem egyáltalán ne írja be a sudo-t, tegye a következőket: nyissa meg a saját könyvtárában található .bashrc fájlt
nano ~/bashrcés add hozzá a sorokat a fájl végéhez
alias reboot ="sudo reboot" alias poweroff ="sudo poweroff" alias pm-hibernate="sudo pm-hibernate" alias hibernate ="sudo pm-hibernate" alias shutdown ="sudo shutdown"Lehet, hogy módosítani szeretné a sudo futási idejét jelszó megadása nélkül. Ez könnyen elérhető, ha valami ilyesmit adunk az /etc/sudoers (visudo) fájlhoz:
Alapértelmezések:foo timestamp_timeout=20
Itt sudo a felhasználónak foo jelszó megadása nélkül érvényes 20 percig. Ha azt szeretné, hogy a sudo mindig jelszót kérjen, állítsa a timestamp_timeout értéket 0-ra.
A jelszó nélküli sudo egy szörnyű biztonsági rés, bárki bármit megtehet. Ha szándékosan megengedte - sürgősen küldje vissza úgy, ahogy volt.
Bizonyos esetekben azonban a sudo hirtelen abbahagyja a jelszó kérését. Ha a visudo , akkor valami ehhez hasonló sort láthat, amelyet a felhasználó úgy tűnik, nem adott hozzá:
ALL ALL=(ALL) NOPASSWD:ALL
Valószínűleg ezt a katasztrofális sort egy olyan program telepítésekor adták hozzá, mint például a Connect Manager az MTS-től vagy a Megafontól. Ebben az esetben meg kell változtatni egy olyan sorra, amely csak ez a Connect Manager futhat rootként, valami ilyesmi:
Felhasználónév ALL= NOPASSWD: /program elérési útja
Vannak más megoldások is a problémára, egy kis vita.
Linux rendszergazdaként mindig az ill sudo, És su. ÉS rendszergazda nagyon fontos, hogy tudd a köztük lévő különbséget. Azok számára, akik alapvetően nem értik a kettő közötti különbséget, vagy mindig összekeverik őket, itt van egy lista a 12 kérdésről és válaszról (Kérdések és válaszok), amelyek célja, hogy segítsenek megérteni a sudo és a sudo finomabb pontjait.
JEGYZET- Ez a cikk csak az Ubuntura vonatkozik. Bár az információk egy része a legnépszerűbb disztribúciókra vonatkozhat.
A kérdések és válaszok sorozatának tisztáznia kell a sudo vs su néhány sajátosságát sok Ubuntu felhasználó számára.
Q1. Hogyan használható a sudo és a su? Mi a különbség köztük?
Válasz A .sudo néhány parancs futtatására szolgál root jogosultsággal. Az az érdekes, hogy amikor használod sudo egy adott parancshoz a rendszer bekéri az aktuális felhasználó jelszavát. A jelszó megadása után a parancs szuperfelhasználói jogosultságokkal fut le.
Íme egy példa:
$ apt-get install skype E: Nem sikerült megnyitni a zárolási fájlt /var/lib/dpkg/lock - nyitott (13: Engedély megtagadva) E: Nem lehet zárolni az adminisztrációs könyvtárat (/var/lib/dpkg/), root vagy ? $ sudo apt-get install skype jelszó a mylinuxbookhoz: Csomaglisták olvasása... Kész Függőségi fa felépítése Állapotinformációk olvasása... Kész ... ...
Amint látja, először megpróbáltam telepíteni a Skype-ot a parancs segítségével apt-get de megkaptam engedély megtagadva hiba. Ezután a sudo-t használtam ugyanazzal a parancsrendszerrel és jelszórendszerrel a mylinuxbook felhasználó számára. A helyes jelszó megadása után a parancs sikeresen befejeződött.
Másrészt a su bármely felhasználó váltására szolgál. Állítsd be a jelszót a megfelelő felhasználó engedélyezve van. Ha a su-t opciók nélkül használjuk, akkor a root felhasználói fiókra ugrik. Ebben az esetben a rendszer kéri a superuser jelszót.
Íme egy példa:
$ su mylinuxbook Jelszó: [e-mail védett]:~$
A fenti példában én használtam su hogy váltsak a mylinuxbook felhasználói fiókra, és miután megadtam a mylinuxbook jelszavát, megtehettem.
Íme egy másik példa:
$ su Jelszó: su: Hitelesítési hiba
A fenti példában bepereltem, hogy rootolja a fiókot a normál felhasználónak, de ő nem tudta, mert nem állítottam be a root jelszót. Az olyan disztribúciókban, mint az Ubuntu, nincs alapértelmezés szerint beállítva root jelszavak. Miután beállította, használhatja ezt a jelszót.
Q2. Mi a teendő, ha nem akarok adminisztrátori jelszót beállítani az Ubuntu-mon, de mégis szeretnék váltani szuperfelhasználóra?
Válasz. Ebben az esetben kipróbálhatja a " sudo su". Íme egy példa:
$ sudo su jelszó a mylinuxbookhoz: [e-mail védett]:/home/mylinuxbook#
Miután a sudo-t használtuk a su elindításához, a rendszer az aktuális felhasználó jelszavát kéri, nem a szuperfelhasználó jelszavát. Amint ezt megadta, a folyószámla átkerült a számlára.
Q3. Mi a teendő, ha a su-val szeretnék navigálni más felhasználói fiókokhoz, de nem akarok emlékezni minden egyes felhasználói jelszóra?
Válasz. Nos, ebben az esetben csak használja a su parancsot, írja be a rendszergazdai jelszót, és váltson át a fiókra. Innen a su használatával bármilyen felhasználói fiókra válthat jelszavak használata nélkül.
Q4. Ha a sudo-t valami szuperfelhasználói jogosultságra használják, akkor miért van szükség az aktuális felhasználó jelszavára és nem a szuperfelhasználó jelszavára?
Válasz. Nos, nem igazán minden normál felhasználó tud sudo-t csinálni, és olyan parancsokat futtatni, amelyekhez szuperfelhasználói jogosultságok szükségesek. Felhasználóként annak kell lennie sudoer Azonos. Ez azt jelenti, hogy a sudo használatához jogosultságokkal kell rendelkeznie. Ha Ön érvényes sudoer, akkor a rendszer csak jelszót kér, hogy megbizonyosodjon arról, hogy olyan munkát végez, amelyhez root jogosultság szükséges, és mindent ellenőriznie kell, mielőtt ténylegesen megtenné.
Most jön a sudoer kérdése. Hogyan válhat felhasználóvá sudoer? A felhasználó akkor válhat sudoerré, ha felveszi a sudo csoportba. Íme egy példa:
$ sudo adduser
Csak cserélje ki a fiók tényleges felhasználónevére. Vegye figyelembe, hogy korábban (az Ubuntu 12.04 előtt) a csoportot meg kellett hívni admin de ez most nem kötelező.
Használhatja a "parancsot" csoport" az összes olyan csoport ellenőrzéséhez, amelyekben ez a felhasználó szerepel. Íme egy példa:
$ csoportok mylinuxbook mylinuxbook: mylinuxbook adm cdrom sudo dip plugdev lpadmin sambashare
Tehát látja, hogy a felhasználó " mylinuxbook" valamennyi csoport tagja, beleértve a sudo csoportokat is, ezért a sudoer.
Q5. Észrevettem, hogy amint használtam a sudo-t, a root jogaim sokáig megmaradnak, bár egy idő után minden visszatér a normális kerékvágásba. Mi ez?
Válasz. Az Ubuntu körülbelül 15 percig emlékszik a sudo jelszavára. Ez azt jelenti, hogy miután a sudo-t használta egy parancs végrehajtására, a rendszer nem kér jelszót, ha olyan parancsokat futtat, amelyek futtatásához szuperfelhasználói jogosultságokra van szükség. Bár használni kell majd sudo minden parancs előtt.
Q6. Mik a sudo előnyei a su-val szemben?
Válasz. A Sudo számos előnnyel rendelkezik a su-val szemben.
Íme a lista:
Q7. Bármely felhasználó végrehajthatja sudo műveletek?
Válasz. Nem, csak megbízható felhasználók vagy sudo-ok hajthatnak végre sudo műveleteket. Itt a hivatalos oldal, amely leírja, hogyan és mit tehet a sudoer felhasználó.
Q8. Érdekel a su. Hogyan szabhatom testre a su használatát oly módon, hogy a suda-hoz hasonló funkciókat érjen el?
Válasz. Ha su-t futtatsz, az azt jelenti, hogy már beállítottad a root jelszót. A sudo-hoz hasonló funkcionalitás eléréséhez, pl. csak egyetlen parancs futtatásához root jogosultságokkal a su használatával, csak az opciót kell használnia -c a su parancstól.
Íme egy példa:
$ su -c "apt-get install skype" Jelszó:
Csak írja be a jelszót, és csak ez a parancs fog működni szuperfelhasználói jogosultságokkal. Bár ugyanaz, mint a sudo, az egyetlen különbség az, hogy az aktuális felhasználó jelszava helyett a root jelszót kell megadni.
Q9. Sudo-val dolgozom. Hogyan módosíthatom a sudo használatát, hogy ugyanazokat a funkciókat érje el, mint a su?
Válasz. A su funkcionalitás sudo-n keresztüli eléréséhez próbálja ki az opciót -én sudo parancsok.
Íme egy példa:
$ sudo -i jelszó a mylinuxbookhoz: [e-mail védett]:~#
Látod, hogy " sudo -i", az áttérés a root fiókra megtörtént, bár az aktuális felhasználóhoz (jelen esetben mylinuxbook) beírták a jelszót.
Q10. A fiókom root jelszava még nincs aktiválva. Használhatom a sudo-t a szuperfelhasználói jelszó engedélyezésére?
Válasz. A szuperfelhasználó jelszavának aktiválásához használhatja a parancsot passwd a következő módon:
$ sudo passwd root
Ez a parancs root hozzáférést igényel, ezért a sudo-t kell használnia.
Q12. Használhatok sudo-t speciális engedélyek megadására a felhasználóknak?
Válasz. Konfigurációs fájl sudo- /etc/sudoers. Nem szerkeszthető manuálisan szerkesztővel. Erre a célra a parancs használata javasolt visudo.
Itt van a pontos parancs:
$sudo visudo
és ezt kapod:
Ez a parancs megnyit egy ideiglenes /etc/sudoers.tmp fájlt a nano szerkesztőben szerkesztés céljából. A Visudo gondoskodik arról, hogy ne legyen ütközés, ha ugyanannak a fájlnak több példányát szerkesztik.
A korlátozott jogok biztosításának megértéséhez ismerje meg ennek a konfigurációs fájlnak a felépítését.