Fórum Ubuntu CZ/SK

Ostatní => Archiv => Téma založeno: Kalex 05 Února 2007, 17:54:57

Název: sudo a vlastnictvo
Přispěvatel: Kalex 05 Února 2007, 17:54:57
Zdravim,

podarilo sa mi vcera konecne nainstalovat Kubuntu a priznam sa ze som zatial celkom spokojny, do systemu sa vzivam, podarilo sa mi nainstalovat a rozbehat dolezite veci (Opera, Seamonkey, ovladace, Doom 3 atd.) a zacinam tomu celkom rozumiet, no stale narazam na nejake zakladne problemy.

1) sudo. Chapem naco je sudo dobre a ako funguje. Casto mam vsak problem ze ked nieco co potrebujem urobit urobim cez sudo, potom sa k "tomu" nedostanem ako user.

Napriklad: namountujem si NTFS particiu ako read-only (je aj v /etc/fstab s parametrami ro,user alebo defaults, to je jedno) do adresara ktory mam ako user na ploche. Majitel adresara som ja ako user, po namountovani sa vsak zmeni majitel na roota a uz sa ako user donho nedostanem lebo nemam opravnenia. Nemozem ani urobit chmod alebo chown lebo opravnenia sa tykaju samotnej NTFS particie a tudiz su read-only aj pre roota. Ako si mozem takuto particiu prezerat ako user?

Alebo: nainstaloval som si Mozilla Seamonkey (cez sudo). A spustit ide zase len cez sudo (sudo sh seamonkey) a to iba z textovej konzoly. Ked si vytvorim zastupcu na ploche, tak sa da spustit ako kdesu seamonkey, ale to zase nevidi ulozeny profil. Bez kdesu zase nevie z ulozeneho profilu citat, aj ked maju one adresare nastaveneho vlastnika usera :( Vie niekto co s tym, co robim zle?

Na ciastocne vyriesenie podobnych problemov som si vytvoril na ploche zastupcu na  Konqueror ktory sa spusta ako sudo (kdesu konqueror). Cez neho sa dostanem vsade, ale nebolo by nejake systemove riesenie na podobne problemy? Napr. kontextove menu "otvorit ako root", "spustit ako root", "prevziat vlastnictvo" atd.

Diky vopred za rady.
Název: sudo a vlastnictvo
Přispěvatel: Martin - ViPEr*CZ* 05 Února 2007, 22:24:31
No s tím mountováním přes fstab nemám nejmenší problémy... mountuju do složky která má práva pro daného uživatele a v pohodě.

Ten druhej soft neznám, ale pokud máš někde uloženej profil musí do něj zase bejt správný práva ;)
Název: sudo a vlastnictvo
Přispěvatel: Kalex 06 Února 2007, 00:04:38
A mountujes aj NTFS? S particiou FAT32 je to v pohode, ale NTFS si privlastnuje automaticky root.

Edit: OK, poriesil to umask=000,dmask=000
Název: sudo a vlastnictvo
Přispěvatel: Guido 06 Února 2007, 08:52:13
Jakým způsobem mountujete tu NTFS partition? Ručně pomocí mount nebo automaticky přes /etc/fstab?

Pokud ji mountujete ručně, tak pomocí parametru -o zadáváte potřebné parametry. Např.:
Kód: [Vybrat]
sudo mount /dev/sda1 /mnt/win -o user,nls=UTF-8Pokud ale nemáte k tomu ručnímu mountování, nějaký důvod (jako začátečník asi nemáte), nechte to na fstab:
Kód: [Vybrat]
/dev/sda1 /mnt/win ntfs ro,defaults,user,umask=0222 0 0
Název: sudo a vlastnictvo
Přispěvatel: Martin - ViPEr*CZ* 06 Února 2007, 11:56:55
Mountuju i NTFS přes NTFS-3G a jede mi to v pohodě... (nechávám to na fstab)
Název: sudo a vlastnictvo
Přispěvatel: Czario 10 Února 2007, 11:15:18
------------------------------------------------------------------------
Jaky je rozdil mezi sudo -s a sudo -i ? (nejak jsem to z man nevylustil)
z obojiho sem se dostal na roota a oboje jsem zahledl ze se to zde ruzne pouziva..

a kdyz je clovek v root, je i jina moznost jak se dostat zpet na usera nez novy terminal nebo lognout noveho usera?
Název: sudo a vlastnictvo
Přispěvatel: Guido 10 Února 2007, 11:48:21
sudo -s Vám dá pouze shell.

sudo -i předtím než dostanete shell, proběhne "simulovaný" login, tzn. že se inicializují všechny proměnné prostředí a dojde k přepnutí do domovského adresáře - např. se spustí .bashrc.

Rozdíl je podobný jako u příkazů su uživatel a su - uživatel.

Pokud to není jasné, zkuste si postupně spustit oba příkazy (su -s, su -i) jako normální uživatel v domovském adresáři a spustit pod nimi následující příkazy a porovnat jejich výpisy.
Kód: [Vybrat]
pwd
env
Z roota se stanete původním uživatelem když zadáte příkaz exit (jako když se v terminálu odhlašujete).
Název: sudo a vlastnictvo
Přispěvatel: zigi 10 Února 2007, 12:43:43
nevyhodou sudo -s je, ze se veskere konfiguracni soubory hledaji/vytvareji v home adresari daneho uzivatele, ktery sudo spustil, priklad:

prihlasen jako user a pod timto uzivatelem jeste nebyl spusten kupr. program elinks

user$ pwd
/home/user

user$ ls .el*

user$ sudo -s

root$ pwd
/home/user

root$ elinks

root$ ls .el*
.elinks root root ...

jde o to, ze konfiguracni soubor programu elinks je vytvoren v home adresari usera ale vlastnikem je root, takze pokud si pak uzivatel pusti elinks bez sudo a upravi si nejake nastaveni, tak se mu pak neulozi

snad se mi to povedlo dobre nastinit
Název: sudo a vlastnictvo
Přispěvatel: Milhouse 10 Února 2007, 13:21:10
No jak to chápu, tak je lepší používat "sudo -s", protože to je stejné jako "sudo <příkaz>"(pwd vypíše stejný home adresář).

Samozřejmě, že pokud není třeba spouštět program s právy admina, ani to nebudem dělat. Což je většina programů. A ty, co se musí tak spustit, se stejně s příkazem "sudo" uloží soubor s právy Root.
Název: sudo a vlastnictvo
Přispěvatel: Guido 10 Února 2007, 14:15:06
Citace: zigi
nevyhodou sudo -s je, ze se veskere konfiguracni soubory hledaji/vytvareji v home adresari daneho uzivatele, ktery sudo spustil,
Ale to není nevýhoda, to je záměr - jde o to, co od toho příkazu chcete: buď chcete plný rootovský login (sudo -i), nebo jenom na chvíli chcete rootovskou konzoli (sudo -s).

Chování sudo -s vyplývá z toho, co jsem psal výše - neinicializují se proměnné prostředí. Z toho následně vyplývá, kde se vytvářejí uživatelské cfg/rc soubory. Zkuste si spustit:
Kód: [Vybrat]
sudo -s
pwd
whoami
echo $HOME
Citace
guest@ubuntu:~$ sudo -s
Password:
root@ubuntu:~# pwd
/home/guest
root@ubuntu:~# whoami
root
root@ubuntu:~# echo $HOME
/home/guest
Čili mám rootovskou konzoli, ale proměnná domovského adresáře pořád odkazuje na adresář uživatele guest.
Název: sudo a vlastnictvo
Přispěvatel: zigi 10 Února 2007, 18:59:07
ja bych si osobne chovani sudo -s a v naslednem shellu pusteneho programu predstavoval asi tak to:

I. spustim program, treba zmineny elinks
II.
 a) konfiguracni soubor uz existuje
  - nactu ten, ktery je v /home/user

 b) konfiguracni soubor jeste neexistuje
  - zalozim s defaultni konfiguraci, ale kde?:
   1. /home/user ale vlastnikem bude user a ne root (osobne preferuji)
   2. zalozim nebo prectu ten, ktery je v /root
III. ukoncim program

- samozrejme bod II. se muze vykovat i treba behem ukoncovani aplikace
- muselo by se to ridit promenou $HOME a z ni si vyparsovat uzivatele, jenze ta nemusi byt vzdy ve tvaru /home/username
Název: sudo a vlastnictvo
Přispěvatel: Guido 10 Února 2007, 19:11:22
Zrovna u toho elinks-u bych osobně používal sudo -i.

Proto, abych ten prohlížeč pouštěl pod rootem, bych měl mít pádný důvod. Pokud ho mám (ten důvod), měl bych logicky pracovat v adresáři /root, kde by se i měly vytvářet/měnit konfigurační soubory.
Název: sudo a vlastnictvo
Přispěvatel: zigi 10 Února 2007, 20:55:16
to je pravda .. ja mluvim ze svy zkusenolsti, nez jsem zacal pouzivat sudo -i .. driv jsem pro provedeni vice akci pod rootem pouzival sudo -s .. vetsinou si instaluji system od basesystemu po KDE a tak se obcas hodi mit prohlizec v konzoli a jsem linej se kvuli rychlemu podivani na net se odhlasovat nebo prihlasovat na jinem terminalu ;)
Název: sudo a vlastnictvo
Přispěvatel: ped 11 Února 2007, 05:14:46
Citace: Guido
[
Z roota se stanete původním uživatelem když zadáte příkaz exit (jako když se v terminálu odhlašujete).
exit = Ctrl+D
Název: sudo a vlastnictvo
Přispěvatel: Guido 11 Února 2007, 13:50:19
Citace: ped
Citace: Guido
[
Z roota se stanete původním uživatelem když zadáte příkaz exit (jako když se v terminálu odhlašujete).
exit = Ctrl+D
To není pravda, protože exit != Ctrl+D.

Ctrl+D pošle přávě prováděnému příkazu znak konce souboru: EOF. Ve většině shellů (možná ve všech, já to mám vyzkoušeno jen v zsh, bash a tcsh) jde tento znak zachytit a pak se Vám shell samozřejmě neukončí. Pro nastavení chování v bash a (t)csh to je volba IGNOREEOF, případně v zsh to je IGNORE_EOF. Většinou se tato volba nastavuje v inicializačním skriptu shellu (.bashrc, .zshrc apod.).

Zkuste si spustit:
Kód: [Vybrat]
set -o ignoreeof   # vypne Ctrl+DV Ubuntu je náhodou(?) tato volba vypnuta, ale v jiných distribucích tomu tak není. IMHO je lepší ji mít zapnutou - pokud mám v shellu rozdělanou nějakou práci, bylo by blbý o ni přijít nechtěně zmáčknutou klávesovou zkratkou.
Název: sudo a vlastnictvo
Přispěvatel: Czario 11 Února 2007, 14:17:05
díky.. koukám, že sem šťouchl do vosího hnízda :oP ...
takže když to shrnu, tak je jedno jestli se použije sudo -i nebo -s pro činnosti jako úprava kofiguračích souborů. Liší se jen v pohledu na domovský adresář s daným superuživatelským root oprávněním... Pro používání user/administrátorských nástrojů z konzole je lepší sudo -i aby se konfigurace ukládala s root právy do root adresáře a ne uživateli, kterému by to dělalo problémy v další konfiguraci programu...
Název: sudo a vlastnictvo
Přispěvatel: ped 11 Února 2007, 17:13:14
Guido: diky za info, nevedel jsem jak to funguje na pozadi. Ja se naopak s vyplym Ctrl+D jeste nesetkal, bezne to pouzivam pro odhlasovani a fungovalo mi to zatim myslim vsude. Ale aspon ted vim proc.
Název: sudo a vlastnictvo
Přispěvatel: Guido 11 Února 2007, 20:16:19
Další věc, co mě teď napadla. Pokud máte funkční Ctrl+D a děláte v grafice (xterm apod.), tak to není takový problém. Ale pokud budete přihlášen v terminálu (Ctrl+Alt+F1-F6) nebo třeba přes SSH, tak CTRL+D neznamená jen ukončení terminálu, ale rovnou také logout a to už může být dost nepříjemný.
Název: sudo a vlastnictvo
Přispěvatel: zigi 12 Února 2007, 11:49:04
ale jestli to chapu dobre, tak exit udela logout ..

user1$ sudo -i
root# logout
user1$

ja osobne pouzivam CTRL+D - je to rychlejsi nez psani - obecne to znamena znak konce souboru EOF - a tim padem, kdyz se shellu ukonci standartni vstup, tak se tim i sam shell ukonci
Název: sudo a vlastnictvo
Přispěvatel: Guido 12 Února 2007, 12:55:27
Citace: zigi
ale jestli to chapu dobre, tak exit udela logout
Víceméně ano. Příkaz exit přeruší skript, potažmo program. Protože většina uživatelů má v /etc/passwd uveden jako inicializační program /bin/sh, tak zadání exitu v shellu způsobí ukončení shellu a následuje logout.