Wykonywania skryptu shell na pulpicie


(Krzkaczor) #1

Hej!

Mam na pulpcie skrypt który włącz mi serwer php+mysql. Problem polega na tym że kiedy klikam na ten plik wysakuje mi okienko potwierdzające czy chce uruchomic ten skrypt czy go otworzyc. Da się to jakoś usunąć?

Drugie pytanie moje jest takie: skrypt wykonuje m.in. polecenie su a więc pyta się o hasło do adma. Czy da się na stale zwiększyć poziom uprawnień żeby skrypt się nie pytał o to hasło?

Proszę o pomoc i pozdrawiam


(Sawyer47) #2

Jakie środowisko graf? Co do tego monitu, to jeśli używasz GNOME, w ustawieniach nautilusa masz opcje

Edycja → Preferencje → Zachowanie → Wykonywalne pliki tekstowe

Odnośnie do drugiego pytania, to nie można po prostu wykonać skryptu z poziomu roota?


(Phanyx) #3

Nadaj skryptowi prawo wykonalności:

chmod +x [twoj-skrypt]

Jeszcze profilaktyczne pytanie: rozumiem, że masz w pierwszej linii skryptu info, jakim interpreterem ma być wykonywany skrypt, np.:

#!/bin/bash

(roobal) #4

Do tego możesz użyć sudo , w sudoers określ sobie jakie polecenie ma być wykonane bez podawania hasła, jako root przy pomocy polecenia visudo dodaj linijkę:

user ALL=NOPASSWD: polecenie

W skrypcie, w którym masz to polecenie poprzedzasz jest sudo, czyli sudo polecenie.

Pozdrawiam!


(Krzkaczor) #5

Mam taką linijkę:

qwak ALL=NOPASSWD: ./lampp start

I nie chce mi skończyć edytować pliku bo pisze że jest błąd. jak daje np:

qwak ALL=NOPASSWD: ./

To też jest źle. Jak daje zamiast qwak user to też jest źle :frowning: O co biega?

W ogóle gdzie w pliku mam dodać tą linijkę? Probuję na końcu, w środku i cały czas źle.

Dzięki za pomoc


(roobal) #6

Źle, w sudoers podajesz tylko nazwę polecenia a nie je w nim wykonujesz, powinno być:

qwak ALL=NOPASSWD: /pełna/ściezka/dostępu/do/lampp

A w skrypcie podajesz dopiero polecenie do wykonania, czyli:

sudo ./lampp start

Najlepiej pokaż ten skrypt, jeśli możesz.

Pozdrawiam!


(Krzkaczor) #7

Aha :smiley: Już podaje:

#!/bin/bash


cd /opt/lampp

sudo ./lampp start

To bardzo prymitywny skrypt :smiley: ale robi to co ma robić :slight_smile:


(roobal) #8

Czyli w sudoers podajesz taką linijkę:

qwak ALL=NOPASSWD: /opt/lampp/lampp

I skrypt powinien działać bez pytań o hasło, nawet nie musisz go uruchamiać w terminalu :slight_smile:

Pozdrawiam!


(Krzkaczor) #9

Ok. Wielki dzięki! Wszystko działa. Tylko mam jeszcze jedno pytanie. Utworzylem sobie taki alias:

alias bu="shutdown -h now"

i wrzucilem to do pliku .bashrc. Problem jest taki ze kiedy uruchamiam bu :smiley: to nie dziala bo musi byc wykonywane jako root. To dalem:

alias bu="sudo shutdown -h now"

i niby wszystko działa tylko pyta się o haslo do roota :confused: Probówałem kombinować w pliku sudoers i dodalem np.

qwak ALL=NOPASSWD: /home/qwak/.bashrc

Ale to zresetowalo mi iksy i nadal nie działa :smiley:

Może coś źle zrobiłem, nie wiem. Proszę o pomoc.

PS: To jest w pełni poprawna komenda? shutdown -h now na wyłączanie? W sensie czy wszystko zostanie wyłączone tak jak powinno?


(roobal) #10

Do

qwak ALL=NOPASSWD: /opt/lampp/lampp

Dodaj shutdown -h now , żeby to wyglądało tak:

qwak ALL=NOPASSWD: /opt/lampp/lampp,/sbin/shutdown

lub

qwak ALL=NOPASSWD: /opt/lampp/lampp,/sbin/shutdown -h now

Jeśli bez hasła ma być wykonane tylko i wyłącznie shutdown -h now , shutdown z inną opcją niż -h będzie wymagało już hasła.

Każde kolejne polecenie lub nazwę programu, która ma być wykonana przy pomocy sudo bez podawania hasła, dodajesz po przecinku do tej jednej lini. A alias dla shutdown -h now dodaj najlepiej w .bash_profile lub .profile zalezy, który plik u Ciebie w katalogu domowym występuje.

Tak, więcej na temat shutdown znajdziesz w man shutdown , ja osobiście używam halt , które robi to samo :slight_smile:

Pozdrawiam!


(Krzkaczor) #11

Wielkie dzięki, wszystko śmiga jak należy :slight_smile:

Pozdrawiam