2011-11-13 8 views

Odpowiedz

8

Zdecydowanie, jeśli nie masz nic przeciwko temu, że co szczególnie komenda „wolne do użycia” dla danego użytkownika:

Zobacz zasadzie moją drugą odpowiedź tutaj: Shell script - Sudo-permissions lost over time

Najprostszą rzeczą, która może pracować jest

myuser = NOPASSWD: /sbin/ifconfig 

Ponadto, można sudo dowolna komenda na tym samym terminalu (TTY/vty) i sudo będzie buforować uwierzytelniania na chwilę (albo aż sudo -k), więc możesz uruchomić skrypt i "zapamięta" poświadczenia z wcześniejszej inwokacji sudo. I czasami to zrobić podczas tworzenia rur o sudo (tylko poprzedza je sudo true)

+0

Czy miałeś na myśli coś takiego jak nazwa użytkownika ALL = NOPASSWD:/sbin/ifconfig w pliku sudoers ??? Spróbowałem, ale nie działa –

+1

Tak. Czy (1) zawierasz spacje (2) używasz 'sudoedit' (lub' visudo')? Ponadto, w pełni NIE polecam używania ALL dla haseł mniej dotacji.** OSTRZEŻENIE ** Wszystko inne oprócz "błogosławionych" narzędzi (np. 'Visudo') * WYPEŁNIENIE * uczyni twój system bezużytecznym, gdy zepsujesz plik sudoers (chyba że masz hasło root, aby naprawić wszystko ponownie) – sehe

+0

@sehe Zgadzam się , używanie ALL jest dość niebezpieczne. – Tilo

1

Trzeba linię sudo konfiguracyjny, który pozwala na polecenie do wykonania przez użytkownika bez linii hasła.

Można wyłączyć monit o podanie hasła dla całego użytkownik (bardziej niebezpieczne, ale być może ok, jeśli jesteś jedynym użytkownikiem na pulpicie - Dont to zrobić na serwerze):

yourusername ALL=(ALL) NOPASSWD: ALL 

lub bardziej restrykcyjne , tylko umożliwienie polecenia ifconfig:

yourusername ALL= NOPASSWD: /sbin/ifconfig 

Patrz: man sudoers, man sudo

http://ubuntuforums.org/showthread.php?t=1132821

http://www.linuxhelp.net/guides/sudo/

+0

Próbowałem go i wydaje się, że utknąłem z nowym błędem sudo: parsowanie błędu w/etc/sudoers blisko linii 18 sudo: nie znaleziono żadnych prawidłowych źródeł sudoers, rezygnując podczas próby edycji pliku sudoers. jak mam to teraz zrobić? –

+0

co oznacza, że ​​masz błąd składniowy w linii 18 pliku/etc/sudoers - musisz to poprawić lub skomentować – Tilo

+0

czy możesz dodać linię z pliku/etc/sudoers do swojego pytania? Ponadto: sprawdź link, o którym wspomniałem na forum Ubuntu – Tilo

3
echo "password" | sudo -S ifconfig eth0 hw ether 00:99:99:00:00:00 
+0

Chociaż to zadziała, jest niesamowicie niebezpieczne. Przede wszystkim mogą odczytać hasło ze skryptu zawierającego polecenie. Po drugie, hasło będzie przechowywane w miejscach takich jak historie skorup. Zgodnie z ogólną zasadą nigdy nie umieszczaj hasła w wierszu poleceń. Niech program poprosi o to. W konkretnym przypadku użycia najlepszą opcją jest edycja pliku dudnień, aby nie wymagać hasła podczas wykonywania polecenia ifconfig. –

0

Bezpieczniejsze sposobem na to byłoby:

sudo visudo -f sudoers 

następnie dodać

myuser ALL=NOPASSWD:/sbin/ifconfig 

do okna edytora, który pojawił. Gdy skończysz, użyj :x rzucić

0

Oto dialogowe Zenity że robi coś podobnego do komentarza Tmáň, w
chociaż hasło nie jest przechowywane w historii ... To może być dobrą alternatywą

#!/bin/bash 
ENTRY=`zenity --password` 
case $? in 
0) 
pw=$(echo $ENTRY | cut -d'|' -f1) 
;; 
1) 
echo "Stop login.";; 
-1) 
echo "An unexpected error has occurred.";; 
esac 
TMP=$(echo "${pw}" | sudo -Sv) 
TMP=0 
Powiązane problemy