Автор Тема: Малко за env и root  (Прочетена 1686 пъти)

never_mind

  • Напреднали
  • *****
  • Публикации: 215
  • Distribution: Debian/Testing
  • Window Manager: Xfce4
    • Профил
Малко за env и root
« -: 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 ?
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Малко за env и root
« Отговор #1 -: Feb 11, 2008, 23:55 »
Да позная. Щом в env след su пише LOGNAME=invisible, значи системата ти е някоя RedHat производна. Все пак, казвай ги тези неща. Но и в Debian производните има доста променливи, които root придобива от потребителя, който е изпълнил su. Причината е точно тази, че този потребител е изпълнил su, затова тези променливи водят към него. Променливите на root се пригаждат към средата, в която влиза root, за да може да работи с тази среда. Ако излезеш от invisible и влезеш начисто като root, ще забележиш че променливите на root са други и си сочат само към него. Както ти самия би изглеждал и би се държал различно, ако влезеш в някоя стая и там намериш или не намериш гола жена. Средата е различна и ти се пригаждаш към нея, независимо че ти си си все ти и стаята е една и съща '<img'> Надявам се, че разбираш какво имам предвид '<img'>

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

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



Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

never_mind

  • Напреднали
  • *****
  • Публикации: 215
  • Distribution: Debian/Testing
  • Window Manager: Xfce4
    • Профил
Малко за env и root
« Отговор #2 -: Feb 12, 2008, 20:28 »
Да, с OpenBSD съм, /usr/local/sbin го има в /root/.kshrc ... и пак не става... а това със средата го разбрах... всъщност било нормално при su root да наследява env от предния потребител, за чист root трябва "su -" ... след "su -" вече си имам /usr/local/sbin в $PATH, но въпроса остава защо го нямам след "su" само, след като в env на invisible го има?
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Малко за env и root
« Отговор #3 -: Feb 13, 2008, 02:26 »
Хмм... за съжаление не съм разучавал какво е положението с разликите в променливите в OpenBSD при изпълнение на "su" или "su -". Провери дали shell-а на root не е различен при изпълнение на "su" и при изпълнение на "su -". Ако е различен, в зависимост от това за кои shell-ове става дума, rc файлът със системните променливи може да е различен и в отделните файлове да са описани различни пътища. За момента не мога да те упътя за друг вариант.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Малко за env и root
« Отговор #4 -: Feb 13, 2008, 11:32 »
Това е нормално поведение. И под linux е така. Вярвам, че never_mind вече го е установил. Описано е в su(1).
Активен

romeo_ninov

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

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

0x2B|~0x2B