Próbowałem biec
echo 1 > /proc/sys/net/ipv4/ip_forward
Mówi, że odmówiono dostępu przez bash, a następnie:
sudo chmod 1+x /proc/sys/net/ipv4/ip_forward
a teraz mówi: Operacja niedozwolona.
Jak mogę uzyskać dostęp?
command-line
bash
Kevin Hernandez
źródło
źródło
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
polega na tym, że przekierowanie danych wyjściowych nie jest wykonywane jakosudo
, więc nie działa. Ze strony podręcznika:,tee - read from standard input and write to standard output and files
a jeśli tak zrobionosudo
, ma wystarczające uprawnienia do zapisu do pliku.Odpowiedzi:
Bity uprawnień dla pliku
/proc/sys/net/ipv4/ip_forward
to:z
owner:group
byciemroot:root
.Więc tylko
root
można zapisać do pliku.Kiedy to zrobisz:
jak zwykły użytkownik, nie będziesz mógł pisać do pliku z powodu niewystarczających uprawnień.
Możesz to zrobić:
Użyj
sudo
ibash
:Użyj
tee
:Zauważ, że powinieneś używać
/etc/sysctl.conf
do trwałych operacji w/proc/sys
podkatalogach.Krótko mówiąc, aby włączyć przekazywanie adresów IP, możesz po prostu umieścić następujące elementy
/etc/sysctl.conf
:Następnie uruchomić:
mieć natychmiastowy skutek.
Ma to taki sam efekt, jak
/proc/sys/net/ipv4/ip_forward
bezpośrednia edycja pliku , nie wspominając już o znacznie czystszym i oczywiście trwałym.źródło
tee
jest poleceniem wysyłania wszystkiego, co otrzymuje, zarówno na standardowe wyjście, jak i do plików. Sprawdźman tee
rm /proc/sys/net/ipv4/icmp_echo_ignore_all
) do usunięcia takiego pliku! Nawet sprawdziłem niezmienny bit i nie jest on ustawiony w tym pliku ... Otrzymuję ten sam błąd „rm: nie można usunąć '/ proc / sys / net / ipv4 / icmp_echo_ignore_all': Odmowa dostępu”. Ale magicznie mogę edytować plik zgodnie z opisem! Nie mogę zrozumieć, z czym jest problemrm
!/proc
tzn.procfs
żyje w pamięci i jest narażony przez jądro. Więc dostajesz widok jądra, a cokolwiek jądro pozwala ci robić z plikami na takim FS jest całkowicie zależne od jądra.