to jest pierwsze wystąpienie, w którym su było dla mnie wymagane.
Przeczytałem artykuł o zmianie wartości w / sys / devices / virtual / backlight / acpi_video0 / jaskrawość, aby zmienić jasność ekranu mojego laptopa.
Po raz pierwszy zauważyłem, że gdybym chciał $ sudo echo 10 > brightness
, odmówiono mi pozwolenia.
Przełączyłem się na rootowanie za pomocą su i # echo 10 > brightness
prawie natychmiast zmieniłem jasność.
Ostatnia dziwna rzecz wydarzyła się, gdy próbowałem # echo 20 > brightness
(plik maxbrightness ma wartość 15) i dostałem błąd zapisu
Czy ktoś mógłby mi wyjaśnić tę różnicę między sudo i su? Zrozumienie błędu zapisu byłoby dodatkową korzyścią. Każda pomoc, wskaźniki i / lub linki byłyby bardzo mile widziane.
permissions
sudo
su
flumpb
źródło
źródło
Odpowiedzi:
Przekierowanie nie działa w ten sposób. Dołączenie
>
do polecenia spowoduje uruchomienie tego przekierowania jako wywołujący użytkownik (ty), a nie jako root. Zrób to ztee
:lub przez wywołanie polecenia w osobnej uprzywilejowanej powłoce:
źródło
Nie dzieje się
sudo
tak z powodu sposobu przetwarzania polecenia; Właściwie wyjaśniłem to w tym pytaniu . Kiedy to zrobiszpowłoka uruchamia polecenie
sudo echo 10
, które działaecho 10
jako root. Powłoka następnie próbuje się otworzyć,brightness
aby móc przekierować z niej dane wyjścioweecho 10
, ale nie może - twoja powłoka działa z twoimi uprawnieniami, a nie rootem. Istnieją obejścia opublikowane jako odpowiedzi na pytanie, z którym się łączyłem; dobrym jest:Teraz
tee
można go otworzyćbrightness
, a ponieważ działa jako root, udaje mu się toźródło
su = s witch u ser: Użyj powłoki jako inny użytkownik
sudo = s uper u ser do : wykonaj następujące polecenie jako użytkownik root.
W twoim przypadku następujące polecenie jest tylko
echo 20
, dlatego tylko echo 20 jest wykonywane jako root (jak powiedziano wcześniej). Przekierowanie jest wykonywane ponownie.źródło
Możesz rzucić okiem na
/etc/sudoers
plik. Jeśli Twojego klimatyzacji nie ma na liście, nie będziesz w stanie tego zrobićsudo
.źródło