Co znaczy „jesteś rootem?”?

16

Właśnie to otrzymuję:

ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ apt-get install flashplugin-installer
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ sudo aptitude install flashplugin-nonfree
bash: sudo: command not found
ascendermedia@magic2tower:~$ aptitude install flashplugin-nonfree
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ 

Co ja robię źle?

Ascendermedia
źródło

Odpowiedzi:

29

rootjest kontem superużytkownika w systemie - (w zasadzie) ma wszystkie uprawnienia. Wiele systemów jest skonfigurowanych w taki sposób, że można użyć sudopolecenia przed innym poleceniem, aby uruchomić to polecenie „jako root” - to znaczy tak, jakbyś był użytkownikiem root z tymi samymi uprawnieniami.

Zwykle jest tak, że do zainstalowania pakietów systemowych potrzebne są uprawnienia roota apt-get. Więc to nie działa, po raz pierwszy, ponieważ nie masz sudodostępnego; drugi raz, ponieważ sudonie pojawił się magicznie tylko dlatego, że dwukrotnie go uruchomiłeś; i po raz trzeci (i piąty), ponieważ apt-get(i aptitude) naprawdę wymagają uprawnień roota, aby zainstalować takie pakiety.

Jak widać z pierwszego komunikatu o błędzie, sudo nie jest zainstalowane lub nie znajduje się na twojej ścieżce i prawdopodobnie nie jest skonfigurowane. Zamiast tego możesz zastąpić su -chasło i podać hasło roota (hasło do rootkonta) po wyświetleniu monitu.

Jeśli nie znasz tego hasła, musisz: a) poprosić osobę wykonującą to zadanie, jeśli nie jest to Twój system, lub b) znaleźć sposób na jego odzyskanie.

mattdm
źródło
Jest to w większości słuszne, chociaż wspomnę, że sudonie tylko uruchamiają polecenia „tak jakbyś był rootem”, ale tak naprawdę uruchamia je jako root. Jeśli spojrzysz na proces, zobaczysz, że działa on jako root, a nie jako identyfikator użytkownika. Nawiasem mówiąc, na komputerach, które nie są skonfigurowane tak, aby domyślnie umożliwiały interaktywne logowanie przez root, możesz po prostu uruchomić, sudo bashaby uzyskać powłokę root. :)
reirab
@reirab Myślę, że sudo -ijest to preferowane, ponieważ szanuje twoją obecną powłokę.
new123456
2
@ new123456 sudo -i użyje domyślnej powłoki dla roota. sudo -s użyje wartości $ SHELL dla wykonującego użytkownika.
bgvaughan
@reirab Cytujesz z części, w której wyjaśniam, co oznacza „jako root” z uproszczonego punktu widzenia użytkownika.
mattdm,
5

Aby wykonywać aktualizacje systemu za pośrednictwem, potrzebujesz uprawnień roota apt-get.

Możesz przełączyć się na konto root za pomocą su root. Wygląda na to, że nie masz sudozainstalowanego programu.

111 ---
źródło
2
OP nie tylko nie ma sudouprawnień, ale nawet nie sudozainstalował.
n.
1
Naprawdę, OP powinien suować się na rootowanie wystarczająco długo, aby zainstalować i skonfigurować sudo.
Kevin
1
@ n.st być może niepoprawny, może nie być w PATH.
o11c
2
@ o11c Twierdzę, że to ci sami ludzie, którzy nigdy nie spotkaliby się z tym problemem bez sudo, ponieważ zawsze są zalogowani jako root.
Kevin
1
@ o11c ile to możliwe, że nie wydaje się prawdopodobne, zwłaszcza że sudoi apt-getsą zarówno zainstalowany /usr/bindomyślnie (przynajmniej na Debianie).
n.
5

Co znaczy „jesteś rootem?”?

Aby zainstalować pakiety w całym systemie (co apt-getrobi), potrzebne są uprawnienia roota, ponieważ będziesz tworzyć i zmieniać pliki systemowe ( rootto zwykła nazwa konta administratora * nix).

Wiadomość „czy jesteś rootem?” To delikatne przypomnienie, że „musisz być rootem”, aby uruchomić apt-get install. Jest to najczęściej spotykana przyczyna problemu, który miał (pokazano powyżej):

/ var / lib / dpkg / lock - open (13: Odmowa dostępu)

.

Jak zostać rootem?

su

Tradycyjnym sposobem „zostania rootem” jest uruchomienie su(i podanie hasła użytkownika root). su (1) oznacza s uper u ser lub s witch u ser.

Zauważ, że może zostać użyty, aby stać się dowolnym użytkownikiem, więc możesz biegać, su johnaby uzyskać powłokę jako John. Bieganie subez nazwy użytkownika jest skrótem od su root.

Aby to zadziałało, konto użytkownika root musi być włączone i mieć ustawione hasło. Niektóre systemy są skonfigurowane (nawet domyślnie) z wyłączonym kontem root, aby uniknąć kogoś -eg. atakujący - zaloguj się przy użyciu konta administratora. W takich przypadkach oferują one inny sposób uruchamiania poleceń administracyjnych, np. Sudo.

sudo

sudo (1) to program, który pozwala wykonać polecenie jako inny użytkownik (jak wyżej, zwykle wykonywany dla roota). Jest skonfigurowany w/etc/sudoers i pozwala na dokładniejszą kontrolę, na przykład pozwala na uruchamianie pojedynczego programu jako root dla określonego użytkownika (który może być ustawiony tak, aby wymagał ponownego podania własnego hasła), a także zapewnia funkcje rejestrowania (np. „ John wykonał system niszczący jako root ”).

Istnieją inne opcje uruchamiania ze zwiększonymi uprawnieniami (takie jak calife ), ale ich użycie jest znacznie mniejsze.

Powyższy dziennik wskazuje, że sudonie jest zainstalowany w Magic2tower.

Anioł
źródło
0

Wyjaśnili już, czym jest root, kiedy masz „komendę nie znalezioną”, prawdopodobnie dlatego, że nie masz zainstalowanego programu, który próbujesz uruchomić, lub nie masz ścieżki w zmiennych env.

Spróbuj uruchomić komendę w następujący sposób:

/usr/bin/sudo apt-get install flashplugin-installer

W niektórych dystrybucjach Linuksa nie można zmienić na root, więc każde polecenie musi być uruchamiane za pomocą sudo. =)

Carlos Andres Caro Perez
źródło
1
tak, jeśli masz komunikat, bash: sudo: command not foundże najlepszym pomysłem jest zainstalowanie go sudo apt-get install sudo, a jeśli da ci ten sam błąd, dowiesz się, co to jest rekurencja
pqnet
2
Nie można zainstalować sudo przy użyciu sudo.
To Do