Egy olyan problémával szembesültem, amit így hirtelenjében nem értek. Van egy userem, akinek van sudo joga. A user .bashrc-jében felvittem az export EDITOR=micro bejegyzést, így valóban defaultként a micro programot használja text editorként. Ugyanezt megcsináltam a /root/.bashrc alatt is.
Ez rendben működik is, ha a sima userként, vagy root userként vagyok bejelentkezve. Viszont ha a sima userrel vagyok bejelentkezve, de nem akarok root userrel megnyitni valamit, hanem a sima user-t + a sudo -t használéva már nem működik. Tehát sima user alatt kiadom hogy pl sudo crontab -e, vagy sudo -ként elindítok egy file managert, ami a default text editort haszbnálná szerkesztésre, akkor már az alábbi hibába futok:
/usr/bin/sensible-editor: 25: /bin/nano: not found
/usr/bin/sensible-editor: 28: nano: not found
/usr/bin/sensible-editor: 31: nano-tiny: not found
/usr/bin/sensible-editor: 34: vi: not found
Couldn't find an editor!
Set the $EDITOR environment variable to your desired editor.
A lenne a kérdésem, hogy sudo használatakor hova kellene definiálnom az EDITOR-t? Ez azért lenne fontos,, mert alapból tiltanám a root felhasznnálót, tehát sudo-val intézném el, ha valamihez root jog kellene, viszont így ugye a default text editor (és nyilvűn más environment se) nem működik rendesen.
MEGOLDÁS:
Sudoers fileba fel kell vinni:
Defaults env_keep += "EDITOR"
- 174 megtekintés
Hozzászólások
update-alternatives --config editor
(Ha jól rémlik)
- A hozzászóláshoz be kell jelentkezni
Az rendben be van állítva.
- A hozzászóláshoz be kell jelentkezni
Megvan a megoldás. Archwikiben találtam rá utalást más aprópóból. Nemem gondoltam volna, hogy alapból az env-eket nem veszi át:
Sudoers fileba fel kell vinni:
Defaults env_keep += "EDITOR"
- A hozzászóláshoz be kell jelentkezni
ENVIRONMENT
The following environment variables may be consulted depending on the value of the editor and env_editor sudoers settings:
SUDO_EDITOR Invoked by visudo as the editor to use
VISUAL Used by visudo if SUDO_EDITOR is not set
EDITOR Used by visudo if neither SUDO_EDITOR nor VISUAL is set
- A hozzászóláshoz be kell jelentkezni
Ez a megoldás:
Sudoers fileba fel kell vinni:
Defaults env_keep += "EDITOR"
- A hozzászóláshoz be kell jelentkezni
sudo -sE
- A hozzászóláshoz be kell jelentkezni
Egyszwerűbb ezt megcsinálni, és akkor nem kell bajlódni, hogy most milyen kapcsolókat kell használni:
Sudoers fileba fel kell vinni:
Defaults env_keep += "EDITOR"
- A hozzászóláshoz be kell jelentkezni
Igen. Vagy sudo -E vagy a root felhasználó home mappájában (/root/) lévő .bashrc-jébe vagy a hasznát shellje rc-jébe is fel kell venni az EDITOR változót. Értem, hogy ezt a kolléga próbálta, de működnie kéne. Persze ha meg lehetett oldani máshogy, akkor az is jó, de nem értem miért ne működött volna a sztenderd megoldás.
Egyébként ha szerkesztés, én inkább a sudoedit vagy doasedit megoldásokat javaslom. Akkor maga az EDITOR változóban lévő text editor user jogosultságokkal fut, csak a mentésnél-kilépésnél kér majd sudo/doas jelszót, és írja fel a fájlt root-tal (vagy amivel kéri a user, pl. másik user fiókkal).
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
A root mappában levő .bashrc nincs hasznbálatban a sudozik egy user. A sudo-zás esetén nem veszi át a környezeti változót, ezért kell a sudoers fileba beírni amit felntebb írtam. Ezt én se tudtam, viszont egy fura ötlettől vezérelve az archwiki-re ránéztem, ha már anno használtam arch linux alatt, és hoppá, ott ezt le is írták.
- A hozzászóláshoz be kell jelentkezni
Nem. Te is ott voltál abban a sudo-vs-doas-vs-bármimás szavazáshoz kapcsolódó szálban, ahol Thuglife felhomályosított minket, hogy a sudo elég rendesen kitakarítja a környezeti változókat. Többek között ezt is (hacsak fenti konfigparaméterrel felül nem bírálod).
- A hozzászóláshoz be kell jelentkezni
Most kipróbáltam, és valóban. su-val jó, sudo-val nem. Ezt egyébként nem értem mire jó, hogy kitakarítja, de másikat se tölt be helyette. Ez így nekem elég semmilyen megoldásnak tűnik. Mert vagy hagyja meg default a hívó user változóit (-E kapcsolónak van ilyen hatása), vagy takarítsa ki, de akkor töltse be helyette a root-ét (ahogy su-nál), mindkettő mellett szólnának érvek. Ez így a kettő között olyan köztes berhelésnek tűnik, aminek kb. semmi előnye nincs, csak hogy meg lehessen szivatni vele valakit. A neten valami szivárgásvédelmet említenek, de hova szivárogna micsoda. Ha a támadónak van sudo hozzáférése, akkor ott nem szivárog semmi, övé a gép.
doas-nál egyébként jó, meghagyja a hívó user változóit (bár a HOME, USER változókat átállítja root-hoz, de a többi marad, EDITOR, PAGER, PS1, stb.), de most látom miért, mert az /etc/doas.conf-ban benne van nálam a keepenv (leírások és példakonfig ajánlották bele). Magyarán külön beállítás nélkül ez is ugyanaz a barmolás, mint a sudo. Ráadásul a sudoers-t nem is lehet úgy konfigurálni, mint a doas-t, hogy az összes változót tartsa meg általánosságban, csak specifikusan egyes változókat lehet felvenni megtartásra. Most már kezdem látni, hogy az OpenBSD-sek miért nem nézik sokba ezeket a sudo-s, GNU-s, stb. megoldásokat, és miért ragaszkodnak saját megoldásokhoz.
Egyébként emlékszem nagy vonalakban a szálra, de nekem ez a keepenv nem rémlik belőle. Valóban vitattuk ott a su - sudo - doas megoldásokat, meg hogy az su-t is hogyan érdemes paraméterezni, de ilyen env-részre nem emlékszem, pedig könnyen lehet, hogy tényleg volt róla szó.
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni