Zainstalowałem Ubuntu za pomocą GUI, podając sobie hasło i wszystko. Nie pamiętam dokładnie tego procesu. Martwi mnie jednak to, że nie znam następującego hasła:
$ su
Password: <the only password I've ever created on this machine>
su: Authentication failure
Po prostu nie wiem co robić. Nie mam kłopotów, ale chcę tylko wiedzieć, co się tutaj dzieje. Mogę również zablokować dostęp do katalogów:
starkers@ubuntu:~/Desktop$ mkdir foobs
starkers@ubuntu:~/Desktop$ sudo chmod 777 -R foobs
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
[sudo] password for starkers: <the only password I've ever created on this machine>
starkers@ubuntu:~/Desktop$ cd foobs
bash: cd: foobs: Permission denied
Jestem trochę zmieszany. Jak mogę się tak zablokować? Myślę, że sudo
jest to kluczowe polecenie tutaj. Ale sprawiam, że foobs
plik jest tak otwarty, jak to możliwe, przez chmod
, więc dlaczego mnie to blokuje?
chmod -R 777 whatever
, chyba że chcesz spowodować ogromne zagrożenie bezpieczeństwa.666
?chmod
, że zmienia ona tylko pliki, które zamierzałeś./var/lib/sudo
jest ustawiony do zapisu na całym świecie. To nie powinno się dziać i powinieneś spróbować dowiedzieć się, dlaczego tak się stało.Odpowiedzi:
Domyślnie
root
konto superuser ( ) jest wyłączone i nie ma hasła. Możesz go utworzyć, uruchamiając:Będziesz wtedy mógł zalogować się jako root,
su
używając tego hasła.Jeśli chodzi o
chmod
, prawidłowe polecenie to:Możesz także użyć:
aby zalogować się jako root przy użyciu hasła (bez tworzenia hasła roota, jak opisano powyżej).
źródło
sudo su
. Daje to również stałe uprawnienia su w terminalu.sudo su
, ponieważ psuje środowisko i rzeczy się psują. zamiast tego użyjsudo -i
.1. Dlaczego nie masz hasła roota?
Podczas gdy można utworzyć hasło dla konta superużytkownika pozwalającego zalogować się jako root
su
, to warto wspomnieć, że nie jest to zwykły sposób robienia rzeczy z Ubuntu (lub coraz częściej, inne dystrybucje również). Ubuntu zdecydowało się nie podawać loginu i hasła roota z jakiegoś powodu. Zamiast tego zostanie użyta domyślna instalacja Ubuntu wsudo
celu nadania uprawnień administratora. W domyślnej instalacji Ubuntu osoba, która zainstalowała system operacyjny, domyślnie otrzymuje uprawnienia „sudo”.Każdy, kto ma pełne uprawnienia „sudo”, może wykonać coś „jako superużytkownik”, oczekując
sudo
na polecenie. Na przykład, aby uruchomićapt-get dist-upgrade
jako superużytkownik, możesz użyć:Korzystanie z sudo zobaczysz wszędzie, gdzie przeczytasz tutorial o Ubuntu w Internecie. To alternatywa dla tego.
Dzięki sudo z góry wybierasz, którzy użytkownicy mają dostęp do sudo. Nie muszą pamiętać hasła roota, ponieważ używają własnego hasła. Jeśli masz wielu użytkowników, możesz odwołać dostęp do swojego administratora tylko poprzez usunięcie ich uprawnień sudo, bez konieczności zmiany hasła roota i powiadamiania wszystkich o nowym haśle. Możesz nawet wybrać, które polecenia użytkownik może wykonywać za pomocą sudo i które polecenia są dla niego zabronione. I wreszcie, w przypadku naruszenia bezpieczeństwa może w niektórych przypadkach pozostawić lepszą ścieżkę audytu pokazującą, które konto użytkownika zostało naruszone.
Sudo ułatwia wykonywanie pojedynczych poleceń z uprawnieniami administratora. Za pomocą
su
, na stałe upadasz do powłoki superużytkownika, którą należy zamknąć za pomocąexit
lublogout
. Może to spowodować, że ludzie pozostaną w powłoce superużytkownika dłużej niż to konieczne tylko dlatego, że jest to wygodniejsze niż wylogowanie i ponowne zalogowanie później.W sudo nadal możesz otworzyć stałą (interaktywną) powłokę superużytkownika za pomocą polecenia:
... i nadal można tego dokonać bez hasła roota, ponieważ
sudo
daje on superużytkownikowi uprawnienia dosu
polecenia.Podobnie, zamiast
su -
powłoki logowania można użyćsudo su -
lub jej skrótusudo -i
.Jednak robiąc to, musisz mieć świadomość, że działasz jako superużytkownik dla każdego polecenia. Dobrą zasadą bezpieczeństwa jest nie pozostawanie jako superużytkownik dłużej niż jest to konieczne, aby zmniejszyć możliwość przypadkowego spowodowania uszkodzenia systemu (bez niego możesz tylko uszkodzić pliki, które posiadasz).
Właśnie w celu wyjaśnienia, to może , jeśli zdecydujesz, daj użytkownik root hasło pozwalające logowania jako root, jak opisano w odpowiedzi @ Oli, jeśli konkretnie chcesz robić rzeczy w ten sposób zamiast. Chciałem tylko poinformować Cię o konwencji preferowania Ubuntu
sudo
zamiast tego i dać znać, że istnieje alternatywa.2. Problemy z poleceniem chmod 777 -R
Twoje pytanie ma także drugą część: twoje problemy z poleceniem
sudo chmod 777 -R foobs
.Po pierwsze, następujące ostrzeżenie wskazuje na potencjalnie poważny problem bezpieczeństwa na twoim komputerze:
Oznacza to, że na pewnym etapie masz
/var/lib/sudo
możliwość zapisywania na całym świecie. Wyobrażam sobie, że zrobiłeś to na pewnym etapie przy użyciu polecenia podobnego dosudo chmod 777 -R /
. Niestety, robiąc to, prawdopodobnie prawie złamałeś wszystkie uprawnienia do plików w całym systemie. Jest mało prawdopodobne, aby był to jedyny ważny plik systemowy, którego uprawnienia zostały zmienione, tak aby można je było zapisać na całym świecie. Zasadniczo masz teraz łatwy do zhakowania system, a jedynym łatwym sposobem na odzyskanie go jest ponowna instalacja.Po drugie, polecenie, którego użyłeś:
Podczas manipulowania plikami w katalogu domowym, w tym przypadku
~/Desktop
nie powinieneś używaćsudo
. Wszystkie pliki, które utworzysz w katalogu domowym, i tak powinny być przez ciebie modyfikowalne (a jeśli nie, dzieje się coś śmiesznego).Ponadto musisz być w pełni świadomy konsekwencji masowej zmiany uprawnień do plików, takich jak robienie tego rekurencyjnie lub na ogromną liczbę plików. W takim przypadku zmieniasz starannie skonfigurowane uprawnienia do plików, tak aby można je było zapisywać na całym świecie. Każdy inny użytkownik lub dowolne błędne oprogramowanie serwera na komputerze może mieć łatwy dostęp do zastąpienia wszystkich tych plików i katalogów.
Jest prawie pewne, że
chmod 777 -R [dir]
to nie odpowiednim rozwiązaniem dla cokolwiek problem, który staraliśmy się rozwiązać (a jak już wspomniano powyżej, istnieją dowody na to, że zrobiłeś go do systemu plików w / var / lib zbyt, i zakładam do wielu innych miejsca).Kilka podstawowych zasad:
Jeśli po prostu bawisz się własnymi plikami w katalogu domowym, na pulpicie itp., Nigdy nie powinieneś używać
sudo
praw administratora. Jeśli to zrobisz, będzie to znak ostrzegawczy, że robisz coś złego.Nigdy nie należy ręcznie modyfikować plików systemowych należących do pakietów. Wyjątek: chyba że robisz to specjalnie w sposób udokumentowany w tych pakietach, na przykład poprzez modyfikację ich konfiguracji
/etc
. Dotyczy to również zmiany uprawnień do plików. Jeśli samouczek lub próba rozwiązania problemu wymagasudo
uprawnień administratora lub nie jest to po prostu zmiana konfiguracji w / etc /, oznacza to, że robisz coś źle.źródło
sudo -i
ponadsudo su
.sudo -i
(lubsudo su -
) nie są ogólnie lepsze, ale po prostu inne - uruchamiają powłokę logowania, która symuluje środowisko logowania użytkownika root, które wykonuje na przykład.profile
plik lub.login
plik użytkownika root. Są one lepsze, jeśli chcesz, aby środowisko w powłoce było bardziej podobne do powłoki logowania roota niż do powłoki interaktywnej, która ma uprawnienia administratora. Prawdopodobnie lepiej jest używać powłok opartych na logowaniu, jeśli używasz powłoki, ale to jest dyskusja: chodzi o to, że Ubuntu jest przeznaczony główniesudo
do uruchamiania poleceń z uprawnieniami administratora.