Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: mr.p 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:
alias script="/cesta/ke/scriptu.sh"
ale když chci zavolat svůj script dostanu odpověď command not found.
Poraďte prosím :)
-
Co not found? Alias nebo ten skript?
-
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:
sudo: script: command not found
-
Ten alias musíš vytvořit pod rootem (resp. přidat do /root/.bashrc).
-
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
-
> 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.
-
Jen pro doplnění, existuje možnost spustit příkaz ve skriptu pomocí sudo bez ručního vkládání hesla:
echo heslo | sudo -S příkaz
např:
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.
-
to je prasárna, od toho je tady sudoers
-
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.
-
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.
-
> 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ř.
-
a máš na tom skriptu spustitelný příznak (http://wiki.ubuntu.cz/spustitelný_příznak)
-
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.
-
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á.)
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ě.
-
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ý?
-
Podle toho jak dobře zvládáš C/C++ nebo jiný kompilovaný jazyk :)
-
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 (http://www.datsi.fi.upm.es/~frosal/sources/shc.html)
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.