Załóżmy, że istnieje katalog, do którego nie mam uprawnień dostępu. Oczywiście sudo cd foo
nie będzie działać, ponieważ cd
jest ona wbudowana w każdą powłokę.
Do tej pory używałem sudo bash
(tak, wiem, że są lepsze sposoby), aby uzyskać monit o rootowanie. Następnie mogę cd
wejść do katalogu, żeby się wkurzyć.
Czy jest na to lepszy sposób?
bash
sudo
cd-command
strugee
źródło
źródło
cd
jako root (chyba że faktycznie jesteś w powłoce root)?cd
.sudo ls
.Odpowiedzi:
Nie, nie ma sposobu na przejście do
cd
katalogu, który pozwala tylko na rootowanie bez rootowania. Naprawdę nie powinno być zbyt wielu katalogów, które mają takie ograniczenie. W większości przypadków dostęp do danego pliku jest ograniczony, na przykład/etc/shadow
plik lub określone pliki dziennika/var/log
.Możesz użyć,
sudo ls <dir>
aby je zobaczyć zamiastbash
. Również przy korzystaniusudo
z roota zwykle chcesz ustawić użytkownika (su
polecenie) zamiastbash
, więc zamiast tego użyj tego polecenia:Możesz to zrobić również za pomocą
-i
przełącznika sudo :fragment strony podręcznika dotyczący
sudo -i
Do plików, do których nie masz dostępu, możesz użyć jednego z następujących
sudo
poleceń:źródło
sudo su -
zamiastsudo -i
? Oba dają ci wszystkie uprawnienia superużytkownika, chociaż wszystko czego potrzebujesz to możliwość CAP_DAC_READ_SEARCH.sudo
środowisk Solaris, a jego wersjasudo
nie zawierała tego przełącznika. Przeglądając dziennik zmian sudo wygląda na to, że ta opcja została dodana w 2004 roku. Zgaduję, że się z tym umawiam, ale zapytałeś 8-). Zmienię odpowiedź, aby uwzględnić oba, dzięki!sudo -Hi
ponieważ ustawia także katalog domowy (domyślnie nie ustawia home w mojej dystrybucji, domyślnie może się różnić). Jeśli tego nie zrobisz, możesz skończyć z plikami należącymi do roota w domu, jeśli utworzą tam nowe pliki.Nie, nie ma. Potrzebujesz powłoki działającej jako root.
źródło
cd
chyba że uruchamiasz powłokę lub porównywalny proces.Racja, nie możesz. Oto obejście:
źródło