Pertanyaan Apa yang akan terjadi jika saya membuat akun yang disebut 'root'?


Jika saya membuat akun pengguna di Ubuntu disebut root, apakah ini secara otomatis memiliki izin root? Memecah sistem? Menyebabkan kesalahan dalam matriks? Apa yang akan terjadi?


30
2017-10-08 19:34


asal


Sudah ada akun yang disebut root. - mikewhatever


Jawaban:


Nama pengguna harus unik, jadi, seperti yang disebutkan oleh Jawaban Owen Hines, Anda tidak akan dapat membuat pengguna ini. Namun, titik kunci di sini adalah bahwa kekuatan superuser (semua izin yang mungkin) tidak diberikan oleh nama pengguna root, tetapi oleh UID.

Pengguna dengan UID 0 adalah superuser.

Jadi, jika pengguna dengan UID 0 memiliki nama yang berbeda, dan Anda membuat pengguna yang dipanggil root, mereka tidak akan memiliki status khusus.

Saya merujuk Anda ke  beri tag wiki!


44
2017-10-08 20:02



Bisakah Anda mengganti nama akar akun yang ada dan kemudian membuat root pengguna biasa? - emory
Sebagai catatan tambahan, tampaknya mungkin (meskipun saya belum mencoba) untuk mengubah nama pengguna uid 0 ke yang lain, jadi superuser tidak dipanggil root. Bukan ide bagus, tapi mungkin. Jadi seseorang bisa, misalnya, membuat akun superuser yang disebut god dengan uid 0, dan seorang pengguna biasa disebut root dengan cairan dari 1000 atau beberapa nomor lainnya. - Ian D. Scott


Itu tidak akan membiarkan Anda karena sudah akan ada root pengguna.

Tetapi sebagai Florian Diesch mengatakan di komentar:

Beberapa alat akan mengeluh tetapi Anda selalu dapat mengedit /etc/passwd dan etc/shadow secara manual untuk membuat nama pengguna kedua root.


15
2017-10-08 19:36



Dan jika Anda melakukan ini, apa yang terjadi chown root file? - fkraiem
@fkraiem, hmm .. pertanyaan bagus, saya tidak tahu jawabannya. - Owen Hines
Apa yang biasanya terjadi adalah yang pertama di file menang. Saya tidak tahu sekarang. - Joshua


Pertama bagaimana, sebagaimana orang lain telah nyatakan, Anda mengubah pengguna dengan UID 0 menjadi sesuatu yang lain. Kemudian Anda dapat membuat pengguna biasa dengan nama root dan UID lebih tinggi dari 1000. Ini akan bekerja "baik". Semua izin dan fungsi sistem inti menggunakan UID dan bukan nama pengguna. Sebenarnya ini adalah langkah pertama yang baik dalam pengerasan sistem Linux. (jauh lebih baik untuk menonaktifkan root, tetapi sebelum sudo kita digunakan untuk melakukan ini).

Sekarang seperti apa yang akan terjadi.

Sebagian besar waktu tidak ada. Semua panggilan sistem yang harus dilakukan dengan otorisasi atau otentikasi menggunakan UID (yang saya ketahui). Dan sudah seperti itu untuk beberapa waktu. Sistem Anda akan terus berjalan seperti biasa. Alat sistem akan mencerminkan nama pengguna baru, tetapi tetap berfungsi normal. Dengan kata lain "root" dalam konvensi dan tidak diatur dalam batu.

Yang mengatakan, saya yakin ada beberapa alat dan program yang ditulis dengan buruk. Program yang memeriksa variabel lingkungan $ USER dapat bertindak salah. Biasanya ini adalah skrip dan proyek kecil, tetapi Anda dapat meluangkan waktu untuk melacak satu yang buruk, 6 tahun yang lalu di fdisk yang terus membuat Anda pusing.

Ini adalah sesuatu yang biasa saya lakukan sepanjang waktu. Itu adalah langkah mudah, dan jatuh di bawah aturan "nama pengguna yang tidak dapat diprediksi". Ada banyak cara yang lebih baik untuk mencapai tujuan yang sama hari ini.


5
2017-10-10 09:33



Anda maksud UID saya pikir - Zanna


Seperti yang dijelaskan orang lain, itu adalah UID = 0 memberi pengguna "kekuatan super", bukan nama pengguna yang "root". Jadi, jika Anda entah bagaimana berhasil membuat pengguna lain yang disebut "root" (setelah mengganti nama / menghapus yang asli) - status super pengguna akan bergantung pada UID yang Anda berikan.

Yang juga mengarah ke ide lain yang menarik: sangat mungkin untuk memiliki beberapa pengguna dengan UID yang sama (yang membuat mereka pada dasarnya pengguna yang sama dari titik izin filesystem tetapi memungkinkan untuk memiliki yang berbeda, katakanlah, shell dan direktori home). Bahkan, beberapa sistem mirip UNIX memiliki akun superuser lain yang disebut toor (root backwards) yang memungkinkan untuk memiliki dua akun super-pengguna dengan pengaturan yang berbeda.


1
2017-10-11 20:11





Cara membuat 'root' ke-2:

Ya, secara teori, tidak boleh ada dua pengguna dengan nama pengguna atau ID yang sama. Dan utilitas standar sangat mudah dan tidak akan membuat pengguna seperti itu untuk Anda. Tetapi Anda selalu bisa mengedit / etc / passwd secara manual.

Sebagai contoh, saya melakukan:

$ sudo adduser root2 # created ordinary user
$ sudo vim /etc/passwd # edit last line, change 'root2' to 'root'. 
$ sudo -u '#1002' id # 1002 is UID of new user, it's in last line of /etc/passwd
uid=1002(root) gid=1002(root2) группы=1002(root2)

Seperti yang Anda lihat, kami adalah root sekarang! Ya, itu bukan root sebenarnya (bukan uid = 0), tapi itu sama dengan empat huruf. Mengesankan dan tidak berguna.

Cara membuat 2 'root' yang lebih baik:

Juga, Anda dapat melakukan modifikasi lainnya. Biarkan nama pengguna apa adanya, (nama Anda atau root2) tetapi ubah uid.

$ tail -n 1 /etc/passwd
root2:x:0:0:,,,:/home/root2:/bin/bash

(lihat, bidang UID dan GID adalah nol) Sekarang Anda memiliki pengguna biasa (non-root), dengan nama pengguna yang hampir tidak mencurigakan (atau membuat nama pengguna 'johndoe' untuk efek yang lebih baik), tetapi pada kenyataannya, pengguna ini memiliki kekuatan super!

$ fdisk /dev/sda
fdisk: unable to open /dev/sda: Permission denied
$ sudo -u root2 fdisk /dev/sda

Command (m for help):

Seperti yang Anda lihat, pengguna biasa tidak dapat menggunakan fdisk pada / dev / sda, tetapi root2 dapat melakukan apa saja!

Trik sederhana ini terkadang digunakan setelah sistem diretas untuk menyediakan backdoor. Bahkan jika root asli akan mengubah kunci / kata sandinya, hacker masih akan memiliki kontrol penuh atas sistem melalui pengguna lain dengan uid = 0.

Bagaimana matriks bekerja

Sebenarnya, nama pengguna 'root', atau uid = 0 tidak magis dengan sendirinya. Ini hanya masalah konvensi. Dan itu tidak selalu benar. (lihat pertanyaan ini: Apakah akun root selalu memiliki UID / GID 0? ) Kode Kernel itu ajaib. Sebenarnya, kode userspace diri - tidak bisa melakukan apa pun yang bisa dilakukan root. Bahkan jika berjalan sebagai root! Daya root ada di kernel. misalnya jika Anda melakukan "cat / etc / shadow" (hanya root biasanya dapat melakukan ini), / bin / cat program memanggil libc open () function yang masih merupakan kode userspace, dan fungsi open () ini melakukan system call ke kernel. Kemudian kernel sendiri memutuskan apa yang harus dilakukan. Sebagai contoh, kernel memungkinkan beberapa operasi jika pengguna yang efektif memiliki id == 0.

Secara teori, jika Anda akan mengubah beberapa kode di kernel dan menangani pengguna 'www-data' secara berbeda - beberapa operasi mungkin hanya diperbolehkan untuk pengguna 'www-data' (dan bahkan tidak diizinkan untuk melakukan root).


1
2017-10-13 18:58





Kebanyakan alat 'mudah digunakan' akan memeriksa ini dan tidak akan membiarkan Anda membuat akun dengan nama pengguna yang sudah diambil.

Jika Anda melewati ini, dan secara manual menambahkan akun root kedua ke / etc / passwd dan / etc / shadow Anda, lalu yang mana yang akan digunakan, saya kira akan tergantung jika Anda meletakkannya sebelum atau setelah yang asli. Seperti semua akun pengguna pada sistem unix, itu juga akan memiliki akses superuser hanya jika UID-nya nol, terlepas dari namanya.


0
2017-10-11 17:48