Bagaimana cara menjalankan perintah sebagai administrator sistem (root)

66

Saya perlu menjalankan perintah dengan hak administratif. Seseorang berkata saya harus menjalankan perintah sebagai root. Bagaimana saya melakukan ini?

Stefan
sumber
2
silakan lihat diskusi meta tentang pertanyaan ini
Stefan

Jawaban:

94

Dua kemungkinan baris perintah utama adalah:

  • Gunakan sudan masukkan kata sandi root saat diminta.
  • Letakkan sudodi depan perintah, dan masukkan kata sandi Anda saat diminta.

Menjalankan perintah shell sebagai root

sudo (lebih disukai bila tidak menjalankan tampilan grafis)

Ini adalah metode yang disukai pada sebagian besar sistem, termasuk Ubuntu, Linux Mint, (boleh dibilang) Debian, dan lainnya. Jika Anda tidak tahu kata sandi root terpisah, gunakan metode ini.

Sudo mengharuskan Anda mengetik kata sandi Anda sendiri. (Tujuannya adalah untuk membatasi kerusakan jika Anda membiarkan papan ketik Anda tidak dijaga dan tidak dikunci, dan juga untuk memastikan bahwa Anda benar-benar ingin menjalankan perintah itu dan bukan misalnya kesalahan ketik.) Sering dikonfigurasikan untuk tidak meminta lagi beberapa menit agar Anda dapat menjalankan beberapa sudoperintah secara berurutan.

Contoh:

sudo service apache restart

Jika Anda perlu menjalankan beberapa perintah sebagai root, awali setiap perintah dengan sudo. Terkadang, lebih mudah untuk menjalankan shell interaktif sebagai root. Anda dapat menggunakannya sudo -iuntuk itu:

$ sudo -i
# command 1
# command 2
...
# exit

Alih-alih sudo -i, Anda bisa menggunakan sudo -s. Perbedaannya adalah bahwa -ire i nitializes lingkungan ke default waras, sedangkan -smenggunakan file konfigurasi untuk lebih baik atau buruk.

Untuk informasi lebih lanjut, lihat situs web sudo , atau ketik man sudosistem Anda. Sudo sangat dapat dikonfigurasi; misalnya itu dapat dikonfigurasi untuk membiarkan pengguna tertentu hanya menjalankan perintah tertentu sebagai root. Baca sudoershalaman manual untuk informasi lebih lanjut; gunakan sudo visudountuk mengedit file sudoers.

su

The superintah ada pada kebanyakan sistem unix-seperti. Ini memungkinkan Anda menjalankan perintah sebagai pengguna lain, asalkan Anda tahu kata sandi pengguna itu. Saat dijalankan tanpa pengguna yang ditentukan, suakan default ke akun root.

Contoh:

su -c 'service apache restart'

Perintah untuk menjalankan harus dilewatkan menggunakan -copsi. Perhatikan bahwa Anda memerlukan tanda kutip sehingga perintah tidak diuraikan oleh shell Anda, tetapi diteruskan secara utuh ke shell root yang suberjalan.

Untuk menjalankan banyak perintah sebagai root, lebih mudah untuk memulai shell interaktif.

$ su
# command 1
# command 2
...
# exit

Pada beberapa sistem, Anda harus berada dalam grup nomor 0 (dipanggil wheel) untuk menggunakan su. (Intinya adalah untuk membatasi kerusakan jika kata sandi root bocor ke seseorang.)

Masuk sebagai root

Jika ada kata sandi root yang diatur dan Anda memilikinya, Anda bisa mengetikkan rootprompt login dan memasukkan kata sandi root. Berhati-hatilah, dan hindari menjalankan aplikasi kompleks sebagai root karena mereka mungkin melakukan sesuatu yang tidak Anda inginkan. Masuk secara langsung sebagai root terutama berguna dalam situasi darurat, seperti kegagalan disk atau saat Anda mengunci diri dari akun.

Mode Pengguna Tunggal

Mode pengguna tunggal, atau run-level 1, juga memberi Anda hak root. Ini dimaksudkan terutama untuk situasi pemeliharaan darurat di mana mem-boot ke level run multi-pengguna tidak dimungkinkan. Anda dapat boot ke mode pengguna tunggal dengan melewati singleatau emergencypada baris perintah kernel. Perhatikan bahwa mem-boot ke mode pengguna-tunggal tidak sama dengan mem-boot sistem secara normal dan masuk sebagai root. Sebaliknya, sistem hanya akan memulai layanan yang ditentukan untuk run-level 1. Biasanya, ini adalah jumlah layanan terkecil yang diperlukan untuk memiliki sistem yang dapat digunakan.

Anda juga bisa mendapatkan ke mode single user dengan menggunakan perintah telinit: telinit 1; Namun, perintah ini mengharuskan Anda untuk mendapatkan hak akses root melalui beberapa metode lain untuk menjalankannya.

Pada banyak sistem, boot ke mode pengguna tunggal akan memberi pengguna akses ke shell root tanpa meminta kata sandi. Khususnya, systemdsistem berbasis akan meminta Anda untuk kata sandi root ketika Anda boot dengan cara ini.

Program lain

Calife

Calife memungkinkan Anda menjalankan perintah sebagai pengguna lain dengan mengetikkan kata sandi Anda sendiri, jika diizinkan. Ini mirip dengan sudo yang jauh lebih luas (lihat di atas). Calife lebih ringan daripada sudo tetapi juga kurang bisa dikonfigurasi.

Op

Op memungkinkan Anda menjalankan perintah sebagai pengguna lain, termasuk root. Ini bukan alat lengkap untuk menjalankan perintah sewenang-wenang: Anda mengetik opdiikuti oleh mnemonic yang dikonfigurasi oleh administrator sistem untuk menjalankan perintah tertentu.

Super

Super memungkinkan Anda menjalankan perintah sebagai pengguna lain, termasuk root. Perintah itu harus diizinkan oleh administrator sistem.

Menjalankan perintah grafis sebagai root

Lihat juga Wikipedia .

PolicyKit (lebih disukai saat menggunakan GNOME)

Cukup awali perintah yang Anda inginkan dengan perintah tersebut pkexec. Ketahuilah bahwa meskipun ini berfungsi dalam banyak kasus, ini tidak bekerja secara universal.

Lihat man pkexecuntuk informasi lebih lanjut.

KdeSu, KdeSudo (lebih disukai saat menggunakan KDE)

kdesudan kdesudografis front-end untuk sudan sudomasing - masing. Mereka memungkinkan Anda untuk menjalankan program X Window sebagai root tanpa kesulitan. Mereka adalah bagian dari KDE . Tipe

kdesu -c 'command --option argument'

dan masukkan kata sandi root, atau ketik

kdesudo -c 'command --option argument'

dan masukkan kata sandi Anda (jika diizinkan untuk menjalankan sudo). Jika Anda memeriksa opsi "simpan kata sandi" di KdeSu, Anda hanya perlu mengetikkan kata sandi root sekali per sesi login.

Program lain

Ktsuss

Ktsuss ("menjaga su sederhana, bodoh") adalah versi grafis su.

Beesu

Beesu adalah front-end grafis untuk perintah su yang telah menggantikan Gksu dalam sistem operasi berbasis Red Hat. Ini telah dikembangkan terutama untuk RHEL dan Fedora.

Metode usang

gksu dan gksudo

gksudan gksudografis front-end untuk sudan sudomasing - masing. Mereka memungkinkan Anda untuk menjalankan program X Window sebagai root tanpa kesulitan. Mereka adalah bagian dari Gnome . Tipe

gksu command --option argument

dan masukkan kata sandi root, atau ketik

gksudo command --option argument

dan masukkan kata sandi Anda (jika diizinkan untuk menjalankan sudo).

gksudan gksudosudah usang. Mereka telah digantikan oleh PolicyKit di GNOME, dan banyak distribusi (seperti Ubuntu) tidak lagi menginstalnya secara default. Anda tidak harus bergantung pada mereka yang tersedia atau berfungsi dengan baik.

Secara manual melalui salah satu metode berbasis shell

Gunakan salah satu metode dalam "menjalankan perintah shell sebagai bagian root". Anda perlu memastikan bahwa DISPLAYvariabel lingkungan maupun XAUTHORITYlingkungan tidak diatur ulang selama transisi ke root. Ini mungkin memerlukan konfigurasi tambahan dari metode-metode yang berada di luar cakupan pertanyaan ini.

Secara keseluruhan, ini adalah ide yang buruk, sebagian besar karena aplikasi grafis akan membaca dan menulis file konfigurasi sebagai root, dan ketika Anda mencoba menggunakan aplikasi itu lagi sebagai pengguna normal Anda, aplikasi tersebut tidak akan memiliki izin untuk membaca konfigurasi mereka sendiri.

Mengedit file sebagai root

Lihat Bagaimana cara mengedit file sebagai root?

Gilles
sumber
2
Perlu dicatat bahwa sudohanya akan berfungsi jika (1) diinstal dan (2) jika penggunaan Anda dalam file sudoers dan diizinkan untuk melakukan operasi.
n0pe
2
ini perlu diperbarui. pkexecsedang mengganti gksu/ gksudodalam banyak distribusi saat ini.
strugee
1
@ strugee - apakah Anda akan mencoba dan memperbarui ini? Hal-hal di bawah Redhat juga tidak benar.
slm
8

Gunakan su:

$ su -c command

atau

$ su
# command
# exit

Dalam kedua kasus tersebut, Anda akan dimintai rootkata sandi. Untuk informasi lebih lanjut, lihat halaman manual .

Steven D
sumber
3

Karena pertanyaannya bukan khusus untuk Linux, inilah cara Anda mencapai tujuan yang sama di Solaris 9+ (atau Solaris 8 Tepercaya):

Solaris, sejak versi 9, telah menyertakan seperangkat alat yang disebut RBAC, atau Kontrol Akses Berbasis Peran.

Inti dari RBAC adalah bahwa melalui pemberian Otorisasi dan Hak, kepada Pengguna dan / atau Peran, atau pemberian Peran kepada Pengguna, Anda dapat membuat model berbutir sangat bagus untuk siapa yang dapat menjalankan apa dengan hak istimewa apa.

Pada dasarnya, Anda mengidentifikasi otorisasi di / etc / security / auth_attr, lalu memberikannya kepada pengguna atau peran di / etc / user_attr.

Anda mendefinisikan profil di / etc / security / prof_attr. Anda kemudian mengaitkan perintah dengan profil tersebut di / etc / security / exec_attr, diikuti dengan menetapkan profil tersebut kepada pengguna di file / etc / user_attr.

Setelah hal-hal yang dilakukan, Anda benar-benar menjalankan pfexec <command>untuk menjalankan perintah dengan hak istimewa atau otorisasi yang diberikan kepada yang pengguna untuk itu perintah.

Yang menyenangkan tentang RBAC adalah bahwa tidak ada hak istimewa tambahan yang diberikan untuk perintah itu sendiri, atau pengguna, hanya untuk kombinasi perintah pengguna +. Jadi lebih aman daripada membuat biner, atau hanya menggunakan sudo untuk membuat pengguna dapat melakukan apa saja. (Saya tahu bahwa Anda dapat mengunci sudo, tetapi dalam pengalaman saya kebanyakan orang tidak)

Keuntungan lain dari RBAC adalah Anda dapat membuat root akun peran, dan menetapkan peran itu kepada pengguna yang dapat menjadi root dengan perintah 'su' dan kata sandi root. Pengguna root juga akan dapat masuk dalam Mode Pengguna Tunggal, yang lebih baik (menurut saya) daripada model Linux di mana Anda dapat menonaktifkan kata sandi root passwd -d root, atau mengunci akun root passwd -l root, yang keduanya menjadikan login sebagai root cukup sulit ketika terjadi kesalahan.

Ben Rockwood memiliki posting blog yang bagus tentang RBAC yang dapat dibaca di Menggunakan RBAC di (Buka) Solaris .

Tim Kennedy
sumber
3

Atau Anda bisa memberikan beberapa perintah kekuatan super. Saya sedang berbicara tentang izin khusus di mana perintah dijalankan dengan izin pemilik.

Dapatkan jalur perintah dengan #which <command>dan atur SUID atau SGID untuk jalur itu.

Bit PS - SUID dan SGID harus diberikan dengan hati-hati. Mereka dapat membuat sistem Anda tidak aman.

Ayush Goyal
sumber