Apa artinya “apakah Anda melakukan root?”?

16

Inilah yang saya dapatkan:

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:~$ 

Apa yang saya lakukan salah?

Ascendermedia
sumber

Jawaban:

29

rootadalah akun pengguna super pada sistem - itu (pada dasarnya) memiliki semua hak istimewa. Banyak sistem yang dikonfigurasi sehingga Anda dapat menggunakan sudoperintah di depan perintah lain untuk menjalankan perintah itu "sebagai root" - yaitu, seolah-olah Anda adalah pengguna root, dengan hak istimewa yang sama.

Biasanya Anda membutuhkan hak akses root untuk menginstal paket sistem, yang memang apt-getdemikian. Jadi, itu tidak berfungsi, pertama kali karena Anda tidak memiliki sudo; kedua kalinya karena sudotidak muncul secara ajaib hanya karena Anda menjalankannya dua kali; dan yang ketiga (dan kelima) kali karena apt-get(dan aptitude) benar-benar memerlukan root privat untuk menginstal paket seperti ini.

Seperti yang Anda lihat dari pesan kesalahan pertama Anda, sudo tidak diinstal atau tidak di jalur Anda, dan mungkin tidak dikonfigurasi. Anda mungkin dapat menggantikannya su -c, dan memberikan kata sandi root (kata sandi untuk rootakun) saat diminta.

Jika Anda tidak tahu kata sandi itu, Anda perlu a) meminta orang yang melakukan tugas ini untuk Anda, jika itu bukan sistem Anda, atau b) menemukan cara untuk memulihkannya.

mattdm
sumber
Ini sebagian besar benar, meskipun saya akan menyebutkan bahwa sudotidak hanya menjalankan perintah "seolah-olah Anda root," itu benar-benar menjalankannya sebagai root. Jika Anda melihat prosesnya, Anda akan melihatnya berjalan sebagai root, bukan sebagai id pengguna Anda. Kebetulan, pada mesin yang tidak diatur untuk memungkinkan login interaktif oleh root secara default, Anda bisa menjalankan sudo bashuntuk mendapatkan shell root. :)
reirab
@reirab Saya pikir itu sudo -ilebih disukai, karena itu menghormati shell Anda saat ini.
new123456
2
@ new123456 sudo -i akan menggunakan shell default untuk root. sudo -s akan menggunakan nilai $ SHELL untuk pengguna yang mengeksekusi.
bgvaughan
@reirab Anda mengutip dari bagian di mana saya memberikan penjelasan tentang apa artinya "sebagai root" dari sudut pandang pengguna yang disederhanakan.
mattdm
5

Anda memerlukan hak akses root untuk menjalankan pembaruan sistem melalui apt-get.

Anda dapat beralih ke akun root menggunakan su root. Tampaknya Anda tidak sudomenginstal program.

111 ---
sumber
2
OP tidak hanya kekurangan sudohak istimewa, dia bahkan belum sudomenginstal.
n.st
1
Sungguh, OP harus su untuk root cukup lama untuk menginstal dan mengatur sudo.
Kevin
1
@ n.st mungkin salah, mungkin tidak ada di PATH.
o11c
2
@ o11c Saya berpendapat mereka adalah orang yang sama yang tidak akan pernah menemukan masalah tanpa sudo karena mereka selalu masuk sebagai root.
Kevin
1
@ o11c Meskipun mungkin, sepertinya tidak mungkin, terutama karena sudodan apt-getkeduanya diinstal /usr/binsecara default (setidaknya pada Debian).
n.st
5

Apa artinya “apakah Anda melakukan root?”?

Untuk menginstal paket di seluruh sistem (apa yang apt-getdilakukan), ia membutuhkan hak akses root, karena Anda akan membuat dan mengubah file sistem ( rootadalah nama yang biasa untuk akun administrator * nix).

Pesan «are you root?» Adalah pengingat yang lembut bahwa Anda "harus menjadi root" untuk dapat berjalan apt-get install. Ini adalah alasan yang paling sering ditemui untuk masalah itu (ditunjukkan di atas):

/ var / lib / dpkg / lock - open (13: Izin ditolak)

.

Bagaimana cara menjadi root?

su

Cara tradisional "menjadi root" adalah menjalankan su(dan memberikan kata sandi pengguna root). su (1) adalah singkatan dari s uper u ser atau s witch u ser.

Catatan itu dapat digunakan untuk menjadi pengguna apa pun, sehingga Anda dapat menjalankan su johnuntuk mendapatkan shell sebagai john. Berjalan sutanpa nama pengguna adalah singkatan untuk su root.

Agar ini berfungsi, akun pengguna root harus diaktifkan dan memiliki set kata sandi. Beberapa sistem dikonfigurasikan (bahkan secara default), dengan akun root dinonaktifkan, untuk menghindari seseorang -eg. login penyerang- dengan akun administrator. Dalam kasus itu mereka menawarkan cara lain untuk menjalankan perintah administratif, seperti sudo.

sudo

sudo (1) adalah program yang memungkinkan Anda untuk menjalankan perintah sebagai pengguna lain (seperti di atas, biasanya dilakukan untuk root). Ini dikonfigurasi dalam /etc/sudoers, dan memungkinkan kontrol yang lebih baik, seperti hanya memungkinkan untuk menjalankan satu program sebagai root, untuk pengguna tertentu (yang mungkin diatur untuk memerlukan kata sandi mereka sendiri lagi), dan juga menyediakan fasilitas logging (mis. " john mengeksekusi sistem penghancuran sebagai root ").

Ada opsi lain untuk menjalankan dengan peningkatan hak istimewa (seperti calife ) tetapi penggunaannya jauh lebih rendah.

Log Anda di atas menunjukkan sudotidak diinstal pada magic2tower.

Malaikat
sumber
0

Mereka telah menjelaskan apa itu root, ketika Anda memiliki "perintah tidak ditemukan" mungkin karena Anda tidak menginstal program yang Anda coba jalankan, atau Anda tidak memiliki path dalam variabel env Anda.

Coba jalankan perintah seperti ini:

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

Dalam beberapa distro linux, Anda tidak dapat mengubah ke root sehingga setiap perintah mas dijalankan dengan sudo. =)

Carlos Andres Caro Perez
sumber
1
ya yakin jika Anda memiliki pesan seperti bash: sudo: command not foundide terbaik adalah menginstalnya sudo apt-get install sudo, dan jika itu memberi Anda kesalahan yang sama Anda akan belajar apa itu rekursi
pqnet
2
Anda tidak dapat menginstal sudo menggunakan sudo.
To Do