1. Mengapa Anda tidak memiliki kata sandi root
Meskipun Anda dapat membuat kata sandi untuk akun pengguna super yang memungkinkan Anda untuk masuk sebagai root su
, perlu disebutkan bahwa ini bukan cara biasa dalam melakukan sesuatu dengan Ubuntu (atau semakin, distribusi lain juga). Ubuntu memilih untuk tidak memberikan login root dan kata sandi secara default karena suatu alasan. Sebagai gantinya, instalasi Ubuntu default akan digunakan sudo
untuk memberikan hak superuser. Secara default Ubuntu menginstal orang yang menginstal OS diberi izin "sudo" secara default.
Siapa saja yang memiliki izin "sudo" penuh dapat melakukan sesuatu "sebagai superuser" dengan menunggu sudo
perintah mereka. Misalnya, untuk menjalankan apt-get dist-upgrade
sebagai pengguna super, Anda dapat menggunakan:
sudo apt-get dist-upgrade
Anda akan melihat penggunaan sudo ini cukup banyak di mana saja Anda membaca tutorial tentang Ubuntu di web. Ini merupakan alternatif untuk melakukan ini.
su
apt-get dist-upgrade
exit
Dengan sudo, Anda memilih di muka mana pengguna memiliki akses sudo. Tidak perlu bagi mereka untuk mengingat kata sandi root, karena mereka menggunakan kata sandi mereka sendiri. Jika Anda memiliki banyak pengguna, Anda dapat mencabut akses pengguna super seseorang hanya dengan menghapus izin sudo mereka, tanpa perlu mengubah kata sandi root dan memberi tahu semua orang kata sandi baru. Anda bahkan dapat memilih perintah mana yang diizinkan dilakukan pengguna dengan menggunakan sudo dan perintah mana yang dilarang untuk pengguna itu. Dan terakhir, jika ada pelanggaran keamanan, dalam beberapa kasus dapat meninggalkan jejak audit yang lebih baik yang menunjukkan akun pengguna mana yang dikompromikan.
Sudo membuatnya lebih mudah untuk melakukan perintah tunggal dengan hak superuser. Dengan su
, Anda secara permanen jatuh ke shell pengguna super yang harus keluar menggunakan exit
ataulogout
. Hal ini dapat menyebabkan orang yang tinggal di shell pengguna super lebih lama dari yang diperlukan hanya karena lebih nyaman daripada keluar dan masuk lagi nanti.
Dengan sudo, Anda masih memiliki opsi untuk membuka shell superuser permanen (interaktif) dengan perintah:
sudo su
... dan ini masih dapat dilakukan tanpa kata sandi root, karena sudo
memberikan hak superuser pada su
perintah.
Dan demikian pula, alih-alih su -
untuk shell login Anda dapat menggunakan sudo su -
atau pintasannya sudo -i
.
Namun ketika melakukannya Anda hanya perlu menyadari bahwa Anda bertindak sebagai superuser untuk setiap perintah. Ini adalah prinsip keamanan yang baik untuk tidak bertahan sebagai pengguna super lebih lama dari yang diperlukan, hanya untuk mengurangi kemungkinan secara tidak sengaja menyebabkan kerusakan pada sistem (tanpanya, Anda hanya dapat merusak file yang dimiliki pengguna Anda).
Hanya untuk memperjelas, Anda dapat , jika Anda memilih, memberikan pengguna root kata sandi yang memungkinkan login sebagai root seperti yang dijelaskan dalam jawaban @ Oli, jika Anda secara khusus ingin melakukan hal-hal dengan cara ini. Saya hanya ingin memberi tahu Anda tentang konvensi Ubuntu lebih suka sudo
dan memberi tahu Anda bahwa ada alternatif.
2. Masalah dengan perintah chmod 777 -R Anda
Pertanyaan Anda juga memiliki bagian kedua: masalah Anda dengan perintah sudo chmod 777 -R foobs
.
Pertama, peringatan berikut menunjukkan masalah keamanan yang berpotensi serius pada mesin Anda:
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
Ini berarti bahwa pada tahap tertentu, Anda telah ditetapkan /var/lib/sudo
untuk dapat ditulis oleh dunia. Saya membayangkan Anda telah melakukan ini pada tahap tertentu menggunakan perintah seperti sudo chmod 777 -R /
. Sayangnya, dengan melakukan ini, Anda mungkin telah merusak hampir semua izin file di seluruh sistem Anda. Tidak mungkin bahwa ini akan menjadi satu-satunya file sistem penting yang izinnya telah diubah agar dapat ditulis oleh dunia. Pada dasarnya Anda memiliki sistem yang mudah diretas sekarang, dan satu-satunya cara mudah untuk mendapatkannya kembali adalah menginstal ulang.
Kedua, perintah yang Anda gunakan:
sudo chmod 777 -R foobs
Saat memanipulasi file dalam direktori home Anda, dalam hal ini dalam ~/Desktop
, Anda seharusnya tidak perlu menggunakannyasudo
. Semua file yang Anda buat di direktori home Anda harus dapat dimodifikasi oleh Anda (dan jika tidak, sesuatu yang lucu sedang terjadi).
Juga, Anda harus sepenuhnya menyadari konsekuensi dari mengubah izin file secara massal, seperti melakukannya secara rekursif atau pada sejumlah besar file. Dalam hal ini, Anda mengubah dengan hati-hati mengatur izin file agar dapat ditulis oleh dunia. Setiap pengguna lain, atau perangkat lunak server kereta pada mesin, mungkin memiliki akses mudah untuk menimpa semua file dan direktori ini.
Ini hampir pasti bahwa chmod 777 -R [dir]
itu tidak solusi yang tepat untuk masalah apa pun yang Anda coba selesaikan (dan seperti yang saya sebutkan di atas, ada bukti bahwa Anda telah melakukannya untuk sistem file di / var / lib juga, dan saya berasumsi banyak lainnya tempat).
Beberapa aturan dasar praktis:
Jika Anda hanya mengacaukan file Anda sendiri di direktori home Anda, desktop dll, Anda seharusnya tidak perlu menggunakan sudo
atau hak pengguna super. Jika Anda melakukannya, itu adalah tanda peringatan bahwa Anda melakukan sesuatu yang salah.
Anda tidak boleh secara manual memodifikasi file sistem yang dimiliki oleh paket. Pengecualian: kecuali jika Anda melakukannya secara khusus dengan cara didokumentasikan oleh paket-paket itu, seperti dengan memodifikasi konfigurasi mereka di /etc
. Ini berlaku juga untuk mengubah izin file. Jika tutorial atau upaya untuk memperbaiki masalah memerlukan sudo
atau hak pengguna super, dan itu bukan hanya perubahan ke konfigurasi di / etc /, itu adalah tanda peringatan bahwa Anda melakukan sesuatu yang salah.
chmod -R 777 whatever
, kecuali jika Anda ingin menimbulkan risiko keamanan yang sangat besar.