odmowa zezwolenia sudo


3

Uruchomiłem ten kod:

sudo cat <<EOF | sudo sed -e "s,%,$,g" >/etc/init.d/dropbox
  echo "Hello World"
EOF

Ale mimo to dostaję „odmowę dostępu”, ponieważ musisz być rootem, aby dokonać zmian w katalogu /etc/init.d. I jakoś moje powyższe polecenie nie działa.

Czy istnieje sposób na rozwiązanie tego problemu?

Odpowiedzi:


7

Przekierowanie do pliku jest obsługiwane przez bash. Dlatego nie dziedziczy uprawnień przyznanych przez sudo.

Użyj sudo teedo zapisu do pliku jako root.

Spróbuj tego:

cat | sed -e 's,%,$,g' | sudo tee /etc/init.d/dropbox << EOF
  echo "Hello World"
EOF

Zauważ, że $,wewnętrzne cudzysłowy mogą być interpretowane.


Nadal daje mi „Odmowa zezwolenia”.
8k_of_power

Zredagowałem odpowiedź. użyj raczej sudo tee.
Benoit,

4

Możesz udzielić sobie uporczywych uprawnień
# sudo -s

następnie twoje polecenie (nie musisz już sudo) i wyjdź za pomocą
# exit

EDYCJA:
Zakładam, że pytasz o Ubuntu, ponieważ twoje pytanie jest oznaczone tym. W innych dystrybucjach, takich jak Suse, będziesz mógł używać
# su
zamiast# sudo -s


Lub zdobądź uparte prawa do gry za pomocą just su.
Chetan

1
@Chetan: To nie działa w Ubuntu. (Pytanie jest oznaczone jako Ubuntu, więc spodziewam się, że było w tym konsenserze)
MOnsDaR

przepraszam, zapomniałem wspomnieć, że jest to skrypt, więc nie mogę zrobić sudo, aby go uruchomić.
8k_of_power

Jeśli jest w skrypcie, możesz uruchomić skrypt z sudo, o ile mi wiadomo:# sudo ./myScript
MOnsDaR

Ale ponieważ jest to skrypt, nie mogę używać sudo -s wewnątrz skryptu, ponieważ linie po nim nie będą działać.
8k_of_power

0

Ta część: może sudo sed -e "s,%,$,g" >/etc/init.d/dropboxbyć postrzegana jako:

sudo somecommand --put the result of the sudo command into--> /etc/init.d/dropbox

W ten sam sposób:

ls somedirectory > filename
ls somedirectory --put the result of the ls command into--> filename

Oznacza to, że zapisywanie plików będzie wykonywane jako bieżący użytkownik, a nie jako root.

Możesz go rozwiązać, używając, teejak pokazuje Benoit w swojej odpowiedzi.


Dziękuję za opis problemu. Ale jak to rozwiązać?
8k_of_power
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.