Debian 11 Sudoers szerkesztés

Fórumok

Telepítettem a Debian Linux 11 grafikus verzióját.  A terminal ablakban szerkeszteni szeretném az /ETC/sudoers állományt.

Telepítéskor megadtam a  root jelszót és létrehoztam egy új felhasználót is akit be szeretnék tenni a suduers állományba, amihez nincs jogosultságom. Nem engedi szerkeszteni a fenti állományt.

Mi ennek az oka és hogy tudom a létrehozott felhasználónak megadni, hogy root legyen ?

A grafikus telepítésnek van ehhez köze ?

Köszönöm a segítséget

Hozzászólások

Szerkesztve: 2021. 12. 19., v – 14:08

Ha visudot akarsz nyitni, mi történik? Mi az, hogy nem engedi, mi a hibaüzenet? Gondolom még rootként akarod szerkeszteni.

Szerkesztve: 2021. 12. 19., v – 14:16

/ETC/sudoers fájl biztos nem létezik, esetleg a /etc/sudoers. 

Akkor telepítéskor megadtál egy root jelszót, akkor sok értelme nem volt, ha a felhasználónak meg sudo jogosultságokat akarsz létrehozni, mert mindegy lett volna, ha nem engeded a root felhasználót belépni, így a korábban megadott felhasználónak a telepítő automatikusan sudo jogot adott volna.

Amúgy meg a terminálban jelentkezz be root-ként: su - és aztán add meg a megadott root jelszót. Azután meg visudo.

Így van, a fájl/mappanevek kis/nagybetűkre érzékenyek, ez nem Windows. Akár még kötőjel se kell a su után, egymagában su parancs is épp úgy root shellt ad. Kezdőket az is frusztrálni szokta, hogy a visudo alapból vi-t használ, amit nem tudnak kezelni, de ez is megkerülhető, root shellben EDITOR=nano vagy amit akar az ember (mceedit, micro, jed, joe, emacs, mg, ne, bármilyen nem GUI-s editor lehet), és máris a visudo azt használja majd szerkesztésre.

Elméletileg nem csak visudo-val lehet szerkeszteni, hanem bármilyen text editorral, akár GUI-sal is, de akkor arra kell figyelni, hogy ne ejtsen az ember szintaxishibát, hiszen elég egy karaktert melléütni, és bukja az ember az egész sudo-ságot. A visudo egy script, ami szintaxisellenőrzést is végez, így biztonságosabb, és ajánlottabb.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Valóban van egy kis különbség, az su - nem csak a root felhasználót engedélyezi, de az egymagában kiadott su paranccsal ellentétben extraként betölti a root környezeti változóit és a root home mappájába landoltat. De jelen esetben, ha csak egy visudo kiadása a cél, akkor kb. mindegy. Akár még Ctrl+Alt+F_akármennyivel is lehetne nyitni egy konzolt, ahol az ember root + rootjelszóval bejelentkezik, és nyomatja onnan.

Egyébként Debian, Arch, Void, Slackware, Gentoo, stb. ezért nem való kezdőknek. Nem azért, mert annyira nehéz lenne, vagy elitista, hanem már otthon kell lenni hozzá valamennyire Linuxban, otthonosan kell mozogni a terminálban, konzolban hozzájuk, ismerni alap parancsokat, csomagkezelést, csomagneveket. Semmi abszolválhatatlan, meg nem kell hozzá informatikusi diploma, de aki teljesen kezdő, azokat frusztrálhatják, ha mindenhez shellben kell mókolni. Ezért kezdő usernek ajánlottabbak a Mint, Ubuntu, PopOS, MX, esetleg még akár a Manjaro, Fedora is ajánlottabb, mert ezek alapból engedélyeznek egy csomó „felhasználóbarát” feature-t, pl. a grafikus telepítőben hozzáadott felhasználó automatikusan bekerült a wheel csoportba, meg a wheel-nek a sudoers-ben automatikusan engedélyezve van a sudo, és ez nyilván kényelmesebb egy kezdőnek, hogy alap dolgokért nem kell elkezdnie fetrengeni, alapból működik a sudo, automata felcsatolása meghajtóknak, mindenhez van GUI frontend, beállított alap alkalmazás, komplett DE, grafikus login manager, CUPS, trim, polkit, stb., és nem kell nekikezdeni visudo-zni, meg az su paraméterezését elemezgetni, xinit-ezni, fstab-ot szerkeszteni, stb..

Épp ezért kezdők körében elterjedt tévhit, hogy a haladó/KISS disztrókban azért nincs semmi engedélyezve, meg azért nincs installer, hogy a kezdőket szopassák. Nem, nem azért. Hanem hogy a haladónak ne próbálják előre per deafult kitalálni, hogy mi is kell nekik, hogy utána a default, bicikli pótkerekes beállításokat ne kelljen visszacsinálniuk, meg a rendszerből előtelepített szemetet kiszedegetniük. Ugyanis egy haladó nem biztos, hogy akar sudo-t, lehet biztonsági okból kerüli, és csak su-t vagy doas-t használ majd helyette, de ha még sudo-zik is, akkor sem biztos, hogy akarja a default wheel garázdálkodhat a sudo-val című beállításokat, hanem szűkebb, egyedi engedélyezéseket akar majd. Hiszen a Linux pont erről a szabadságról szól, hogy az embernek teljes kontrollja van a rendszer felett, már a telepítéstől elkezdve egyedien és modulárisan alakítja a rendszert, és nem kötelező úgy használnia a rendszert, ahogy egy céges, öltönyös-nyakkendős trendidióta megálmodta „felhasználói élmény” részeként, hülyebiztos alapon.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

"Valóban van egy kis különbség, az su - nem csak a root felhasználót engedélyezi, de az egymagában kiadott su paranccsal ellentétben extraként betölti a root környezeti változóit és a root home mappájába landoltat."

Ja, és általában login shellt akarsz, mert különben mindenféle hülyeségek tudnak történni, szóval kezdőnek inkább ne javasoljuk, ha már egysze valaki mondta neki, hogy "su -", jó azt úgy megtanulni.

Kezdő, nem kezdő ügybe nem szeretnék belebeszélni :)

De itt nem általában beszélünk, hanem csak egyszeri alkalomra kell egy rendszerfájlt szerkeszteni. Amit normálisan egyébként sudoedit-ttel vegy doasedit-tel lenne legjobb, de most jelen esetben pont az a poén, hogy nincs se sudo, se doas. Így marad a su megoldás. Mint írtam, az su - vagy sudo --login valóban precízebb, de kezdőnek azért nem szoktam ilyenkor erőltetni, mert csak félregépeli, aztán meg azon megy a morfondír, hogy miért nem megy, jajj, segítség, kiír valamit, de már nem tudja mit, bezárta, sóval is behintette a helyét, nem fért el a képernyőn.

Amit még lehet csinálni ilyenkor egy kezdőnek, hogy vagy pkexec-kel indít el egy GUI text editort (megint nem evidens), vagy ha olyan DE-t használ, amiben van gvfs telepítve és GVFS-kompatibilis text editor (pl. gedit), akkor admin:///etc/sudoers formájában is tudja szerkeszteni (akkor, ha, túl sok a ha). Emacs is tud rendszerfájl mentéséhez jogosultsági szintet emelni, sudo nélkül (nem nyomoztam ki hogy csinálja, amúgy is vim-et használok), csak ez megint az a toolset, hogy nem a kezdők kenyere. Van rá sok megoldás (visudo, konzolban root-ként bejelelentkezés, akár még egy másik vagy live rendszer alól is lehet szerkeszteni a szóban forgó fájlt), de mindenek között egy sima su ilyenkor a legegyszerűbb, leggyorsabb, legbiztosabb. Ha meg majd hosszabb távon lesz az illetőnek tapasztalata a Linuxszal, akkor majd megtanulja, hogy az su - miben jobb, milyen hibalehetőségeket lehet vele elkerülni egyes helyzetekben (az nem fog létrehozni más felhasználó mappájába root által tulajdonolt fájlokat, stb..). Nekem pl. még majd 8 év alatt egyszer se kellett az su -, bármilyen szituban megfelelt a sima su, és nem ért miatta hatrány, nem volt hátrányos következménye. Az su - megoldást is csak azért ismerem, mert anno kezdőként leírásokban láttam, hogy mindenki az su - megoldást erőlteti, akkor nem értettem mi az, és utánaolvastam, hogy miben különbözik.

A kezdő, nem kezdő ügy nem attól függ, hogy akarsz-e róla beszélni. Hanem ezek a dolgok tényleg fontosak, nem véletlen, hogy a kezdőbarát disztrók az ilyenekre figyelnek, ezért is népszerű az Ubuntu és a társai. Neked, nekem, meg sok embernek itt a topikban is nem fontos, de egy kezdőt nagyon frusztrálni tudják ezek a dolgok, hogy mindjárt ilyel alap szopásokkal indít, nem megy a sudo (mert be kell állítani), meg nem megy a Wi-Fi (persze, mert a hozzá való firmware a non-free tárolóban van, amit engedélyezni kéne először), stb., és mikor idegbajt kapnak a frusztrált userek, akkor az lesz, hogy szaralinux, nem fehér embernek való, és nem fogja érdekelni, hogy su vagy su -, hanem dühtől rángó szemmel már pattintja is vissza a Win10/11-et, mert az legalább „megy”, ott nem kell terminálban mindenféle fekete mágiát művelni, meg itt a - ott a - táncot járni.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

De itt nem általában beszélünk, hanem csak egyszeri alkalomra kell egy rendszerfájlt szerkeszteni. Amit normálisan egyébként sudoedit-ttel vegy doasedit-tel lenne legjobb, de most jelen esetben pont az a poén, hogy nincs se sudo, se doas. Így marad a su megoldás. Mint írtam, az su - vagy sudo --login valóban precízebb, de kezdőnek azért nem szoktam ilyenkor erőltetni, mert csak félregépeli, aztán meg azon megy a morfondír, hogy miért nem megy, jajj, segítség, kiír valamit, de már nem tudja mit, bezárta, sóval is behintette a helyét, nem fért el a képernyőn.

Szóval te is érted, hogy precízebb, tisztában vagy vele, hogy általában ha egy shellt akarok, akkor jobb egy login shell, de mégis, magyarázat nélkül azt mondod egy kezdőnek, hogy elég a su, hátha rögzül neki a hülyeség (és ha neked még semmi bajt nem okozott, akkor vagy rohadt szerencsés vagy, vagy csak nem vetted észre, vagy jöttél rá, hogy az okozza, vagy lendületből javítottad. Az elsőre szerintem kevés esély van). 

A kezdő, nem kezdő ügy nem attól függ, hogy akarsz-e róla beszélni. 

Nem, attól az függ, hogy én akarok-e róla beszélni. :) És mivel nekem válaszul írtál egy hosszú litániát ilyesmiről, ezért jeleztem, hogy bocs, de ez engem nem érdekel, nem fogok rá reagálni. Én csak szóltam, hogy ez ne rögzüljön, bár tény, hogy nem artikuláltam valami jól, szóval kedves topicnyitó, tessék megjegyezni, hogy nem "su", hanem "su -".

Egyébként életemben nem használtam se sudoeditet, se doast (na jó, lehet hogy volt olyan, ahol épp ez volt), abban teljesen biztos vagyok, hogy nem azokkal a "legjobb" ezt csinálni. Igazából egy desktop gépen az is teljesen mindegy, hogy su, vagy sudo (vagy akármelyik alternatívája, ami a usernek enged szabályrendszer alapján root accesst), vagy simán egy új terminálba belépek direkt roottal, nincs érdemi különbség, a root ilyen környezetben valójában nem shared, nem vesztek semmit, ha van neki jelszava és használom.

A sudoedit, doasedit azért jobb, mert olyankor a text editor nem fut emelt jogosultsággal, csak a szerkesztendő fájlt éri el, csinál róla nem emelt jogosultságú ideiglenes másolatot, azt szerkeszti, és kilépéskor, ha a fájl változtot, akkor emelt jogosultsággal visszamásolja a helyére. Ha su-val meg su - segítségével szerkeszted, akkor az egész shell, környezet, text editor emelt jogosultságokkal fut, feleslegesen, de ez itt most szükséges kényszer, mert más eszköz nem nagyon áll a rendelkezésre. Épp ez a lényeg, hogy ilyen kényszerhelyzetben mindegy mit használsz egyszeri szerkesztésre, mert nem lényeges. A szakmai ajánlások is csak hosszabb távú használatra szólnak, szóval igen, hosszú távú használatra ajánlottabb az su - mint a sima su. De itt nem hosszú távról van szó, csak egyetlen egy fájl szerkesztéséről. Igen, lustaság egy - karaktert lespórolni, de van, akinek ez is sokat jelenthet, főleg, ha a linuxos pályafutásának az elején van, vagy még nem használt haladóbb disztrót. Akkor az egyszerűsítés sokszor többet jelent, mint az abszolút szakmai korrektség, nyilván csak egy szintig, mert ha az ember fejlődni akar, meg nem akar normi maradni, akkor javasolt inkább szakmailag korrekten, tisztábban, elegánsabban megoldani dolgokat, de az csak később jön.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Szerkesztve: 2021. 12. 19., v – 15:34

A sudoers file root-kent szerkesztheto, sima userkent nyilvan nem. Legyel root!

"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség

Ahogy itt már többen is írták, a visudo-val célszerű szerkeszteni. Ha kézzel akarod, a /etc/sudoers.d-ben hozz létre bármilyen néven egy új fájlt, és abba írd bele a felhasználót és az ő paramétereit. A /etc/sudoers-t csak a visudo macerálhatja.

TheAdam

Még nem bökted el... Kolléganő, AIX, kézzel matatta a sudoers.d/ alatti fájlokat, aztán valamit elbökött - és kilépett a root shellből. És onnantól kezdve természetesen senkinek nem volt sudo joga... Ha jól emlékszem, egy kolléga épp bent volt sudo-val, úgyhogy ő lett a megmentő, mert egyébként maradt volna a jegyzőkönyvezett borítékbontás és a magyarázkodás.)

Amíg nem fegyelmi terhe mellett bacod el, addig úgy csinálod, ahogy akarod. Csak ha egyszer el...od, akkor lesz -Murphy- a legfontosabb, hogy legyen működő sudo, és ne kelljen borítékot bontani. Adott helyen az emelt szintű általános hozzáférés sem volt megengedve, csak néhány embernek volt ilyen joga - a direkt root logint (ami ugye nem nevesített bejelentkezés, tehát nem köthető személyhez) meg jegyzőkönyvezni, "magyarázni" kellett volna, ezért volt kellemetlen a dolog. Ha nálatok ilyen esetre "csak" annyi a dolog, hogy "grep gepnev rootjelszavak.txt", akkor kevésbé problémás a dolog -bár ha sudo-val működő dolgok is vannak a rendszerben, akkor azért igen :-P

Mondjuk ha sudo-val lehet a sudo beállításait szerkeszteni, akkor szintén minden korlát nélkül bármit meg tud csinálni az ember, legfeljebb kell pár extra lépés. Ilyen helyen a root jelszó szigorú védelme már nem csak halottnak a csók?

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Sudo-val "any" joga csak néhány embernek volt, egy szerkesztette (és elqfta), egy még épp be volt jelentkezve, és volt kéznél root shellje - akinek még volt ilyen joga, az meg nem játszott, mert nem volt épp futó root shellje. Az, hogy "lehetősége van" szerkeszteni, az nem jelenti azt, hogy bármit belevéshet (vannak rá kontrollok, amiket nem részleteznék), úgyhogy a kellő gondossággal voltak kiosztva a jogok - ezért volt szükség arra, hogy kifejezetten összetett és részletes sudoers legyen a gépen/gépeken.

Köszönöm az eddigi hozzászólásokat.

A gondom az, hogy miután telepítettem a Debian linuxot.

Konzolt nyitok, és cat etc/sudoers parancs :- nincs jogosultsága - nem látom mi van az állományban

oké sudo cat etc/sudoers : bekéri a jelszót ahol megadom a telepítéskor megadott root jelszót : a peterv felhasználó nem szerepel a sudoers állományban- vagyis nem enged hozzá a tartalmához

Jó akkor szerkeszteném az állományt hogy a peterv használhassa a sudo vagy su utasítást

És itt a gondom mert szeretnék mondjuk telepíteni egy disk kezelőt  vagy másik bármilyen appot amihez ugye root privilégium kell de nem tudok mert nincs hozzá jogom úgy se hogy tudom a root jelszót-  nem tudok root lenni

A visudo - vi parancs se fut le...

konzolt nyitsz, beírod, hogy "su -", enter, a telepítéskor megadott root jelszó (ami vagy ugyanaz lett mint a peterv jelszava, vagy valójában amikor itt azt mondtad, hogy a root jelszót adtad meg, akkor peterv userét adtad meg (különben nem azt mondta volna, hogy peterv nincs a sudoerben, hanem azt, hogy "sorry, try again".)

Ekkor root leszel, aztán csesztetheted a sudoers filet, ahogy akarod.

lenne rendes sudo a rendszereden

Az nem "rendes", hanem "veszélyes".

Értem, hogy csak egy asztali gép, de az üres root jelszótól, és a nyakló nélküli sudo jogtól kiráz a hideg... :)

Én inkáább "hákolnék", de talán "megfontolt, és finomhangolt jogosultságkezelés"-nek nevezném hákolás helyett.

"A megoldásra kell koncentrálni nem a problémára."

Ez egy Linux kezdőnek hákolás, mert nem érti mi-miért merre hány méter. Neked más az inger küszöböd, nem is vagy kezdő. Viszont a Debian telepítőben benne van a lehetőség, igaz tájékoztat is a folyamatról. Olvasni kellet volna csak.
Hákolásnak éli meg, mert nem érti még, nem tudja még. Miért visudo-val kell a sudoers-t szerkeszteni. Megnyílik neki egy olyan text editor, amit soha nem látott még. Legyen az vi vagy nano, mindegyiket máshogy kell kezelni.
Nem vitatom az álláspontodat, csak ezt egy kezdő még nem tudja.

Végülis igazad van. Csak ne nevezzük hákolásnak, mert véletlenül akként marad meg a fejében akkor is mikor már komolyan nyomja.

De pont a visudo az ami egy "general tuning" vi editort ad szerkesztésre. És tudjuk, hogy kezdők esetében a vi igen riasztó tud lenni. :)

(Én ugyan a vim-et használom minden szerkesztéshez, de például a joe-tol rángógörcsöm van. Ízlések, és pofonok...)

"A megoldásra kell koncentrálni nem a problémára."

De pont a visudo az ami egy "general tuning" vi editort ad szerkesztésre.

Es mar ez sem feltetlenul igaz :)

There is a hard-coded list of one or more editors that visudo will use set at compile-time that may be overridden via the editor sudoers Default variable. This list defaults to /usr/local/bin/vi.

Normally, visudo does not honor the VISUAL or EDITOR environment variables unless they contain an editor in the aforementioned editors list. However, if visudo is configured with the --with-env-editor option or the env_editor Default variable is set in sudoersvisudo will use any the editor defines by VISUAL or EDITOR. Note that this can be a security hole since it allows the user to execute any program they wish simply by setting VISUAL or EDITOR.

https://linux.die.net/man/8/visudo

Egyebkent ez a lenyege:

visudo edits the sudoers file in a safe fashion, analogous to vipw(8). visudo locks the sudoers file against multiple simultaneous edits, provides basic sanity checks, and checks for parse errors. If the sudoers file is currently being edited you will receive a message to try again later.

Hogy akarsz sudo-zni, ha nem állítottad még be?
A sudo és a su teljesen máshogy műküdik. A sudo-nál a user jelszavát kéri (ha már ő be van állítva a sudoers file-ba). A su pedig a root jelszavát kéri és válsz utána root-tá, amivel szerkesztheted akár a sudoers-t is. Ez az első lépés.

Valahogy így kell kinéznie a su root majd jelszó megadása után:

# User privilege specification
root    ALL=(ALL:ALL) ALL
felhasznaloneved    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "@include" directives:

@includedir /etc/sudoers.d

Az es root jogot igényel, ha a usermod -a  -G sudo pistike parancsot szeretné... :-P Persze egy grub menüben megfogott, és a linux... satöbbi sor végére biggyesztett init=/bin/bash módon bootolt OS-ben egy remount -o rw / után megcsinálhatja, csak aztán a sync; remount -o ro / ne maradjon el, mielőtt resettel újrarúgja a gépet :-P

Akkor egy egyszerusitett windowsos analogia (igen tudom, hogy lehet tok mas user neveben is futtatni su-val is, meg sudoval is, de most azt a reszt engedjuk el.):

sudo = Futtatas adminisztratorkent (Windows itt feldob egy Megerosito ablakot, igen/nem, nem kell tudnod senki mas jelszavat.)

su - = Futtatas masik felhasznaloval -> Administrator (Itt keri az adott felhasznalo jelszavat, ha Administrator userrel szeretned, akkor elotte engedelyezni kell az Administrator user belepest, es jelszot beallitani, stb. Kellemes regedit turkalas emlekeim szerint.)

Elnézést hogy csak most írok, ünnepek alatt nem voltam gépközelben.

Köszönöm mindenkinek a hozzászólást azt gondolom rengeteg hasznos infót kaptam átnéztem őket.

Fogalmi hiányaim voltak azzal kapcsolatban mit a különbség  a su - és a sudo között.

sikerült szerkesztenem nano-val és felhasználóként tesztelek és ha kell -igény esetén! nem állandóan -  szeretnék root privilégiumal telepíteni konfigolni - tesztelni -tanulni. 

Ez volt a cél nem éles rendszeren ügyködöm egyenlőre.   :)