Linux за българи: Форуми

BSD секция => Системни настройки => Темата е започната от: never_mind в Feb 11, 2008, 22:39



Титла: Малко за env и root
Публикувано от: never_mind в Feb 11, 2008, 22:39
Имам въпрос: това ми е  env при редовен потребител
Примерен код

PATH=/home/invisible/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/games:.
HISTFILE=/home/invisible/.history
SHELL=/bin/ksh
USER=invisible
MAIL=/var/mail/invisible
HOME=/home/invisible
ENV=/home/invisible/.kshrc
LOGNAME=invisible

 а това след su
Примерен код
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin
HISTFILE=/home/invisible/.history
SHELL=/bin/ksh
USER=root
MAIL=/var/mail/invisible
HOME=/root
ENV=/home/invisible/.kshrc
LOGNAME=invisible


Защо повечето неща при env за root сочат към invisible ( редовният ми потребител ) и защо при root в PATH липсва /usr/local/sbin ?


Титла: Малко за env и root
Публикувано от: neter в Feb 11, 2008, 23:55
Да позная. Щом в env след su пише LOGNAME=invisible, значи системата ти е някоя RedHat производна. Все пак, казвай ги тези неща. Но и в Debian производните има доста променливи, които root придобива от потребителя, който е изпълнил su. Причината е точно тази, че този потребител е изпълнил su, затова тези променливи водят към него. Променливите на root се пригаждат към средата, в която влиза root, за да може да работи с тази среда. Ако излезеш от invisible и влезеш начисто като root, ще забележиш че променливите на root са други и си сочат само към него. Както ти самия би изглеждал и би се държал различно, ако влезеш в някоя стая и там намериш или не намериш гола жена. Средата е различна и ти се пригаждаш към нея, независимо че ти си си все ти и стаята е една и съща :) Надявам се, че разбираш какво имам предвид ;)

edit0: Забравих да ти кажа да си добавиш /usr/local/sbin в /root/.bashrc за променливата PATH щом ти трябва.

edit1: Всъщност сега забелязах, че си сложил темата си в BSD секцията. Наистина ли си с някоя BSD производна или да преместим темата ти? Въпреки това, логиката която ти описах важи и за BSD производните, а и в тях LOGNAME е равно на потребителя, от който е изпълнена командата su.





Титла: Малко за env и root
Публикувано от: never_mind в Feb 12, 2008, 20:28
Да, с OpenBSD съм, /usr/local/sbin го има в /root/.kshrc ... и пак не става... а това със средата го разбрах... всъщност било нормално при su root да наследява env от предния потребител, за чист root трябва "su -" ... след "su -" вече си имам /usr/local/sbin в $PATH, но въпроса остава защо го нямам след "su" само, след като в env на invisible го има?


Титла: Малко за env и root
Публикувано от: neter в Feb 13, 2008, 02:26
Хмм... за съжаление не съм разучавал какво е положението с разликите в променливите в OpenBSD при изпълнение на "su" или "su -". Провери дали shell-а на root не е различен при изпълнение на "su" и при изпълнение на "su -". Ако е различен, в зависимост от това за кои shell-ове става дума, rc файлът със системните променливи може да е различен и в отделните файлове да са описани различни пътища. За момента не мога да те упътя за друг вариант.


Титла: Малко за env и root
Публикувано от: Hapkoc в Feb 13, 2008, 11:32
Това е нормално поведение. И под linux е така. Вярвам, че never_mind вече го е установил. Описано е в su(1).


Титла: Малко за env и root
Публикувано от: romeo_ninov в Mar 01, 2008, 07:43
Цитат (Hapkoc @ Фев. 13 2008,12:32)
Това е нормално поведение. И под linux е така. Вярвам, че never_mind вече го е установил. Описано е в su(1).

И не само по линукс, но и под Юникс. без тирето се променя само UID, докато с тире е еквивалентно (почти) на логин с този потребител.