Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: sudo a bash script pod aliasem  (Přečteno 5067 krát)

mr.p

  • Návštěvník
  • Příspěvků: 89
sudo a bash script pod aliasem
« kdy: 03 Května 2013, 13:37:48 »
Pěkný den přeji :)

vytvořil jsem si něžný script, kterým chci vytvořit symlink do složky, pro kterou potřebuji rootovský přístup. Pro ten script jsem vytvořil alias, tedy:
Kód: [Vybrat]
alias script="/cesta/ke/scriptu.sh"ale když chci zavolat svůj script dostanu odpověď command not found.

Poraďte prosím :)

pacholik

  • Závislák
  • ***
  • Příspěvků: 2072
Re:sudo a bash script pod aliasem
« Odpověď #1 kdy: 03 Května 2013, 13:54:19 »
Co not found? Alias nebo ten skript?

mr.p

  • Návštěvník
  • Příspěvků: 89
Re:sudo a bash script pod aliasem
« Odpověď #2 kdy: 03 Května 2013, 14:30:52 »
Mno to prave nevim. Dokoncuju ten script tabulatorem, takze ten alias vidi. Kdyz ho napisu bez sudo, tak se normalne vykona, až na to, že bez rootovskyho prava nemuze vytvorit ten symlink, a kdyz přidam sudo tak mi to řekne:
Kód: [Vybrat]
sudo: script: command not found

pacholik

  • Závislák
  • ***
  • Příspěvků: 2072
Re:sudo a bash script pod aliasem
« Odpověď #3 kdy: 03 Května 2013, 14:52:59 »
Ten alias musíš vytvořit pod rootem (resp. přidat do /root/.bashrc).

mr.p

  • Návštěvník
  • Příspěvků: 89
Re:sudo a bash script pod aliasem
« Odpověď #4 kdy: 03 Května 2013, 16:01:17 »
Mno mám to uložený v .bash_aliases a vytvořený symlink do /root/.bash_aliases. A dočetl jsem se, že co se toho suda týče, že ho nemůžu požít na alias, který odkazuje na soubor se skriptem.

Ale našel jsem řešení: http://stackoverflow.com/questions/9448920/how-can-i-execude-bash-function-using-sudo

pacholik

  • Závislák
  • ***
  • Příspěvků: 2072
Re:sudo a bash script pod aliasem
« Odpověď #5 kdy: 03 Května 2013, 16:41:47 »
> co se toho suda týče, že ho nemůžu požít na alias, který odkazuje na soubor se skriptem.
? Proč by ne?

To na Stack Overflow se týká něčeho jinýho, tady bych si tipnul že /root/.bashrc (na rozdíl od ~/.bashrc) nespouští .bash_aliases.

Myrmica

  • Závislák
  • ***
  • Příspěvků: 1701
    • MYRMICA
Re:sudo a bash script pod aliasem
« Odpověď #6 kdy: 03 Května 2013, 21:47:27 »
Jen pro doplnění, existuje možnost spustit příkaz ve skriptu pomocí sudo bez ručního vkládání hesla:
Kód: [Vybrat]
echo heslo | sudo -S příkaz
např:
Kód: [Vybrat]
echo heslo | sudo -S apt-get update
třeba ti to pomůže.
Nevýhodou je, že heslo musí být zapsáno ve skriptu.
Stolní strojek: OS– UBUNTU 16.04 x86_64, MB ASUS P8 Z68-V/GEN3, Intel® Core™ i5-3470 CPU @ 3.20GHz × 4 , 16GiB DDR3, GeForce GTX 670...
Notebook: ASUS U53Jc OS– UBUNTU 16.04 x86_64, Windows 7, Processor – Intel Core i5-460M (2,53 GHz), Graphics – switchable NVIDIA GeForce 310M and Intel GMA HD

Cuore

  • Závislák
  • ***
  • Příspěvků: 2534
Re:sudo a bash script pod aliasem
« Odpověď #7 kdy: 03 Května 2013, 21:58:32 »
to je prasárna, od toho je tady sudoers

Myrmica

  • Závislák
  • ***
  • Příspěvků: 1701
    • MYRMICA
Re:sudo a bash script pod aliasem
« Odpověď #8 kdy: 03 Května 2013, 22:19:16 »
Máš pravdu, je to prasárna. Rozumné nastavení sudoers (povolit vytváření linků bez zadání root hesla) by mohlo vyřešit tazatelův problém.

Tu výše uvedenou prasárnu používám v programu, který spouští některé příkazy pod root právy a příkazový řádek se generuje se na základě požadavků obsluhy.
Stolní strojek: OS– UBUNTU 16.04 x86_64, MB ASUS P8 Z68-V/GEN3, Intel® Core™ i5-3470 CPU @ 3.20GHz × 4 , 16GiB DDR3, GeForce GTX 670...
Notebook: ASUS U53Jc OS– UBUNTU 16.04 x86_64, Windows 7, Processor – Intel Core i5-460M (2,53 GHz), Graphics – switchable NVIDIA GeForce 310M and Intel GMA HD

mr.p

  • Návštěvník
  • Příspěvků: 89
Re:sudo a bash script pod aliasem
« Odpověď #9 kdy: 05 Května 2013, 16:31:47 »
Mno to co jsem vlastně hledal je odpověď proč když vytvořím symlink na spouštěcí soubor pro sublime text v adresáři /usr/bin tak mi ho v konzoli nabídne, ale symlink na soubor s bashem mi to už nenabídne, tak jsem zkusil alias na ten soubor, ale ten zas nevidí sudo.

Mno tak nebudu línej a budu to psát ručně. Díky za rady.

mr.p

  • Návštěvník
  • Příspěvků: 89
Re:sudo a bash script pod aliasem
« Odpověď #10 kdy: 05 Května 2013, 16:39:50 »
> co se toho suda týče, že ho nemůžu požít na alias, který odkazuje na soubor se skriptem.
? Proč by ne?
Proč ne to nevim, prostě to tak je :)

To na Stack Overflow se týká něčeho jinýho, tady bych si tipnul že /root/.bashrc (na rozdíl od ~/.bashrc) nespouští .bash_aliases.
Jinak .bashrc ma stejný obsah pro roota i pro uživatele, koukal jsem dovnitř.

pacholik

  • Závislák
  • ***
  • Příspěvků: 2072
Re:sudo a bash script pod aliasem
« Odpověď #11 kdy: 05 Května 2013, 17:16:37 »
a máš na tom skriptu spustitelný příznak

mr.p

  • Návštěvník
  • Příspěvků: 89
Re:sudo a bash script pod aliasem
« Odpověď #12 kdy: 06 Května 2013, 09:26:56 »
Ooo ano mám :)

Každopádně ještě mě napadlo jestli to není tím, že v tý složce /usr/bin jsou ty soubory binární. A ten script, který ti pak nabízí doplňování hledá pouze binární soubory.

pacholik

  • Závislák
  • ***
  • Příspěvků: 2072
Re:sudo a bash script pod aliasem
« Odpověď #13 kdy: 06 Května 2013, 14:12:23 »
Aha!
Jenom první slovo je testováno jestli je alias. Dá se to vynutit tím, že si uděláš alias na sudo a za ním mezeru. (Tohle i všechny aliasy mít u uživatele, k rootovi se vůbec nekouká.)
Kód: [Vybrat]
alias sudo='sudo '
http://www.shellperson.net/using-sudo-with-an-alias/
http://askubuntu.com/questions/22037/aliases-not-available-when-using-sudo


V /usr/bin jsou binárky, skripty v bashi, pythonu, perlu, ruby a nevim co ještě.

mr.p

  • Návštěvník
  • Příspěvků: 89
Re:sudo a bash script pod aliasem
« Odpověď #14 kdy: 07 Května 2013, 08:27:37 »
No super, tak jsem jen špatně hledal :P Tohle je přesně ono. Díky

offtopic jak náročný je převést bash script do binární podoby a k čemu to je dobrý?

pacholik

  • Závislák
  • ***
  • Příspěvků: 2072
Re:sudo a bash script pod aliasem
« Odpověď #15 kdy: 07 Května 2013, 11:08:45 »
Podle toho jak dobře zvládáš C/C++ nebo jiný kompilovaný jazyk :)

beer

  • Host
Re:sudo a bash script pod aliasem
« Odpověď #16 kdy: 07 Května 2013, 11:59:37 »
No super, tak jsem jen špatně hledal :P Tohle je přesně ono. Díky

offtopic jak náročný je převést bash script do binární podoby a k čemu to je dobrý?

Jsou minimálně 2 možnosti:
1) přespat ručně
2) SHC

K čemu je to dobré?

a) za svůj skript se stydíš, chceš ho dál distribuovat, ale nestojíš o to, aby tě ostatní pořád upozorňovali, že je to sračka
b) své dílo chceš prodat a chceš zatajit, že je postaveno na programech pod svobodnou licencí
c) možná vyšší rychlost, ale v případě že konvertuješ sračku, nečekej žádné zázraky, navíc tě čekají problémy, až se programy, které skript používá, aktualizují, nebo změní

nevýhoda: nepřehlednost, nemožnost editace a oprav, pokud by si prodával a nedodával zdrojové kódy, porušoval bys zřejmě GPL.

 

Provoz zaštiťuje spolek OpenAlt.