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?
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
źródło
su
.# sudo ./myScript
Ta część: może
sudo sed -e "s,%,$,g" >/etc/init.d/dropbox
być postrzegana jako:W ten sam sposób:
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,
tee
jak pokazuje Benoit w swojej odpowiedzi.źródło