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 w sudo
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ć:
sudo apt-get dist-upgrade
Korzystanie z sudo zobaczysz wszędzie, gdzie przeczytasz tutorial o Ubuntu w Internecie. To alternatywa dla tego.
su
apt-get dist-upgrade
exit
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
lub logout
. 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:
sudo su
... i nadal można tego dokonać bez hasła roota, ponieważ sudo
daje on superużytkownikowi uprawnienia do su
polecenia.
Podobnie, zamiast su -
powłoki logowania można użyć sudo su -
lub jej skrótu sudo -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:
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
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 do sudo 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ś:
sudo chmod 777 -R foobs
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 wymaga sudo
uprawnień administratora lub nie jest to po prostu zmiana konfiguracji w / etc /, oznacza to, że robisz coś źle.
chmod -R 777 whatever
, chyba że chcesz spowodować ogromne zagrożenie bezpieczeństwa.