Jak przełączyć się na użytkownika root, ale pozostać w tym samym katalogu
10
Niedawno przełączyłem się na Ubuntu i zauważyłem jedną rzecz, kiedy używam następującego polecenia, aby przełączyć się na użytkownika root
sudo su - root
Zabiera mnie bezpośrednio do home's root ( /root), więc tracę miejsce w systemie plików (katalogu, w którym wykonałem to polecenie). Czy jest jakiś sposób na przejście na root bez utraty bieżącego katalogu?
Przede wszystkim nie używaj sudo su. To nie jest złe, niebezpieczne ani nic, jest po prostu nieeleganckie i bezcelowe . Uruchamiasz dwa osobne programy, aby wykonać zadanie, które może być z łatwością wykonane przez jeden. Jeśli chcesz uruchomić powłokę jako root, sudomożesz to zrobić za Ciebie.
Jeśli chcesz uruchomić powłokę logowania (właśnie to sudo su -), użyj sudo -i. To jednak, ponieważ uruchamia powłokę logowania, domyślnie zabierze Cię do katalogu głównego root.
Aby uruchomić zwykłą powłokę bez logowania, możesz użyć sudo -s. To uruchomi dla Ciebie powłokę root i utrzyma Cię w katalogu, z którego ją uruchomiłeś:
Problemem może być to, że sudo -snie uruchamia profilu użytkownika docelowego, ponieważ nie jest to powłoka logowania. Być może więc prawdziwe pytanie brzmi, czy istnieje sposób na uzyskanie powłoki logowania sudo, ale bez zmiany katalogu. Prawdopodobnie nie.
Barmar
@Barmar nie, ale sudo -irobi. Użyłem, -sponieważ OP nie chciał powłoki logowania (nie chciałem się przenosić $HOME). Jeśli chcesz powłoki logowania, użyj sudo -i. Mam napisali porównanie środowisk sudo -i, su -, sudo -sa suna moje pytanie tutaj , jeśli chcesz mieć wygląd.
terdon
Właśnie teraz miałem bardzo złe doświadczenia z tym poleceniem, sudo -s. Nawet to nie zmienia katalogu, ale nie dało mi pełnego dostępu do roota. Niektóre z moich plików były obecne w katalogu, ale nie mogłem ich zobaczyć jako zwykłego użytkownika i użytkownika root w ten sposób (sudo -s). Potem użyłem starego sposobu (sudo su - root) i poszedłem do katalogu, a moje pliki były teraz dla mnie widoczne. Dlaczego sudo-s dały mi ograniczony dostęp?
Hammad Hassan
@HammadHassan nie ma mowy, żeby to, co opisałeś, mogło się wydarzyć. Musi się dziać coś innego. Co masz na myśli mówiąc „nie widzę” plików? Czy masz na myśli „niemożność odczytania plików”? Czy może używasz szyfrowania?
terdon
„nie można zobaczyć” oznacza proste polecenie „ls”. Nie pokazało mi moich plików. Brak szyfrowania. Moje pliki są proste. I tak się naprawdę stało.
Hammad Hassan
8
To jest bardzo proste. Po prostu wpisz
sudo su
zamiast
sudo su - root
Dzięki temu będziesz w tym samym folderze co root.
To nie jest złe, to znaczy, że działa, ale używanie sudo sunie ma większego sensu. Po to sudo -sjest. Nigdy nie zrozumiałem, dlaczego tak wiele poradników dotyczących Ubuntu sugeruje sudo su.
terdon
@terdon Nigdy też tego nie rozumiałem, ale wydaje się, że jest rozpowszechniony wśród wszystkich użytkowników Linuksa. Może aliteracja czyni go bardziej niezapomnianym.
Barmar
@Barmar osobiście, widziałem to tylko w świecie Ubuntu. Ponieważ większość systemów Linux ma domyślnie normalne konto root, kiedy potrzebujesz powłoki, którą zrobiłbyś su(sam, nie sudo). Ponieważ jednak Ubuntu domyślnie wyłącza konto root, sudo supojawiło się całkiem naturalnie. jest również, najwyraźniej , w przypadku niektórych zakątkach świata UNIX, jak również, ale w Linuksie, widziałem go tylko w Ubuntu.
terdon
@terdon Widziałem to od dziesięcioleci, nie jestem nawet pewien, jakich dystrybucji używaliśmy. Używamy Debiana w mojej obecnej firmie i używają go moi współpracownicy.
sudo -s
nie uruchamia profilu użytkownika docelowego, ponieważ nie jest to powłoka logowania. Być może więc prawdziwe pytanie brzmi, czy istnieje sposób na uzyskanie powłoki logowaniasudo
, ale bez zmiany katalogu. Prawdopodobnie nie.sudo -i
robi. Użyłem,-s
ponieważ OP nie chciał powłoki logowania (nie chciałem się przenosić$HOME
). Jeśli chcesz powłoki logowania, użyjsudo -i
. Mam napisali porównanie środowisksudo -i
,su -
,sudo -s
asu
na moje pytanie tutaj , jeśli chcesz mieć wygląd.To jest bardzo proste. Po prostu wpisz
zamiast
Dzięki temu będziesz w tym samym folderze co root.
źródło
sudo su
nie ma większego sensu. Po tosudo -s
jest. Nigdy nie zrozumiałem, dlaczego tak wiele poradników dotyczących Ubuntu sugerujesudo su
.su
(sam, niesudo
). Ponieważ jednak Ubuntu domyślnie wyłącza konto root,sudo su
pojawiło się całkiem naturalnie. jest również, najwyraźniej , w przypadku niektórych zakątkach świata UNIX, jak również, ale w Linuksie, widziałem go tylko w Ubuntu.