Portál AbcLinuxu, 11. května 2025 10:03

Dotaz: Jak se přepnout na uživatele root na vzdáleném serveru

22.10.2017 18:40 JenHost
Jak se přepnout na uživatele root na vzdáleném serveru
Přečteno: 356×
Odpovědět | Admin
Ahoj, mám ještě jeden dotaz, když v desktopu spustím aplikaci Nemo -> File -> Connect to Server a připojím se na jiný server (NE jako root, jelikož je to zakázaný) a potřebuji editovat nějaké soubory jako root, můžu se nějak přepnout na uživatele root a přitom zachovat grafické prostředí? Díky.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.10.2017 20:03 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Jak se přepnout na uživatele root na vzdáleném serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Neviem čo konkrétne robí Nemo, ale princíp bude asi ten, že funguje ako klient a pripája sa na ten vzdialený stroj. Na vzdialenom stroji beží server. Tomu serveru sa pri nadväzovaní spojenia nejako predstavíš (autentifikuješ) a to konto, ktorým a predstavíš, to bude to konto, ktorého prístupové práva sa budú posudzovať pri pokuse o prístup k súboru.

To znamená, že aby ťa vzdialený stroj považoval za root-a, tak by vzdialený musel povoľovať prihlásenie root-a a ty by si sa mu pri nadväzovaní spojenia musel "predstaviť" ako root. Pri prístupe cez ssh by mohlo zafungovať napr. nastavenie ssh, aby pre daný vzdialený systém použil meno užívateľa "root".

Má to svoju logiku. Ak je ten vzdialený systém môj, tak predsa nechcem, aby sa tam niekto, kto nie je root, na diaľku pripojil a pracoval so súbormi, na ktoré má právo iba root.

Myslím, ale že vhodnejšie bude neznásilňovať systém podľa svojich predstáv. Vyber si súbory a adresáre, s ktorými potrebuješ pracovať, prihlás sa na vzdialený systém a cez sudo a chmod/chown/chgrp/setfacl/... si tam pridaj práva, pre užívateľa, pod ktorým sa tam prihlasuješ.
22.10.2017 20:10 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Jak se přepnout na uživatele root na vzdáleném serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ešte k tomu prepnutiu. Každý proces má svoje "effective user ID" - to je identifikátor, ktorý OS posudzuje pri rozhodovaní prístupových práv. Zmeniť ho (prepnúť sa na iného užívateľa), je (z dobrých dôvodov) možné len výnimočne. Jedným z mechanizmov, ktoré ho vedia meniť je su/sudo, resp. setuid bit. Ak nástroje, ktoré chceš použiť, nevedia spolupracovať s týmito mechanizmami, tak to skrátka nejde. V tvojom prípade by s nimi musela vedieť pracovať tá časť, ktorá beží na tom vzdialenom stroji. Dosť o tom pochybujem.
22.10.2017 20:48 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak se přepnout na uživatele root na vzdáleném serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jakým protokolem ta aplikace Nemo komunikuje se serverem? Jinak editovat něco takhle vzdáleně pod rootem mi nepřipadá jako dobrý nápad. Zkopíroval bych si ten soubor na lokální počítač, tam bych ho zeditoval, a pak bych jej zase nahrál zpátky na server. Nemo dělá na pozadí nejspíš to samé.
22.10.2017 21:06 JenHost
Rozbalit Rozbalit vše Re: Jak se přepnout na uživatele root na vzdáleném serveru
Komunikuje pomocí SSH, port 22.
22.10.2017 22:05 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak se přepnout na uživatele root na vzdáleném serveru
Opravu to používá SSH, že by se na vzdáleném serveru spouštěly nějaké příkazy, a nebo to používá subprotokol SFTP uvnitř SSH? Pokud je to SFTP a máte možnost povolit příkaz sftp-server tak, aby šel přes sudo spustit bez hesla, je možné jako subsystém spustit sudo /usr/lib/openssh/sftp-server – pokud to Nemo podporuje. V případě řádkového klienta sftp je to volba -s. Pokud to Nemo nepodporuje nebo nemáte možnost nastavit pro ten příkaz sudo bez hesla, jenom pomocí SFTP to nepůjde. Další možnost je rootovi nastavit klíč pro přihlášení a tomu klíči nastavit příkaz /usr/lib/openssh/sftp-server (tj. v souboru authorized_keys pro rotta by příslušnému klíči předcházelo command="/usr/libexec/openssh/sftp-server"). Tím by sice bylo možné přihlásit se přímo na roota, ale vlastník toho klíče by mohl používat jen SFTP, nemohl by se přihlásit do příkazové řádky.
Josef Kufner avatar 22.10.2017 22:12 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak se přepnout na uživatele root na vzdáleném serveru
… Což ale neznamená, že to rootovi zabrání spouštět příkazy. Jen se bude muset snažit o pár minut déle.
Hello world ! Segmentation fault (core dumped)
22.10.2017 22:20 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak se přepnout na uživatele root na vzdáleném serveru
Tazatel se ptá na možnost přepnutí na roota při SFTP přenosu, takže předpokládám, že obecně možnost přepnutí na roota (přes su nebo sudo) má. Takže tímhle nezíská žádné nové možnosti. Pokud možnost su nebo sudo nemá, pak je ta diskuse bezpředmětná, protože k těm souborům prostě nemá práva a nemá jak je získat.
Josef Kufner avatar 22.10.2017 23:48 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak se přepnout na uživatele root na vzdáleném serveru
Zajisté. To je jen doplnění pro kohokoliv dalšího, kdo to bude číst, aby nečekal, že to je nějaké bezpečnostní opatření.
Hello world ! Segmentation fault (core dumped)
22.10.2017 21:13 karlik
Rozbalit Rozbalit vše Re: Jak se přepnout na uživatele root na vzdáleném serveru
Nemá to nemo přímo integrované v kontextovém menu - "otevřít jako root"?
22.10.2017 21:36 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Jak se přepnout na uživatele root na vzdáleném serveru
Keby aj mal, tak len zmení effective uid lokálne bežiaceho procesu. To znamená, že to zafunguje tam, kde lokálny systém rozhoduje o tom, či má alebo nemá práva. JenHostovi, ale ide o prístupové práva na to vzdialenom systéme.

Musíš si uvedomiť, ako to funguje. Keď chceš editovať súbor na vzdialenom stroji, tak sa cez (najskôr) sftp, ten súbor prenesie na lokálny stroj, tú kópiu otvorí editor a keď urobíš save, tak sa tá lokálna kópia uloží na lokálny disk a následne sa ten soft pokúsi prekopírovať to naspäť na ten vzdialený stroj. To znamená, že sa tam prenesie a ten vzdialený stroj sa to prenesené pokúsi uložiť na disk. A to zlyhá. Aby to fungovalo, tak by ten vzdialený stroj musel dostať pokyn, že pred uložením sa má prepnúť na užívateľa, čo má na ten zápis právo. Alebo by tá serverová časť, ktorá tie dáta prenesené cez sieť prijme, musela rovno bežať pod užívateľom, čo má na zápis právo.

V tom mojom popise sú nejaké drobné nepresnosti, ale v princípe tak nejak to funguje. A to, čo od toho chceš, do toho skrátka nezapadá.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.