Bagaimana Anda mengganti nama root?

27

Bukan berarti itu ide yang sangat baik untuk mengubahnya, tetapi untuk bersenang-senang. Menurut ini posting, masih ada beberapa masalah bahkan setelah mengubah entri dalam /etc/passwd, /etc/shadowdan /etc/sudoers. Ada saran?

yxkb
sumber
nama akun "root"? direktori tingkat atas "/"?
akira
4
root nama pengguna
yxkb
1
maka tolong jelaskan pertanyaan Anda ...
akira
7 tahun kemudian, saya ingin tahu apakah Anda meneruskannya dan BadStuff macam apa yang terjadi karenanya ... ^ _ ^
Mioriin

Jawaban:

29

Secara teoritis, mengubahnya /etc/passwddan /etc/shadowakan menjadi semua yang Anda butuhkan untuk 'mengganti nama' root. Masalahnya terjadi karena hampir setiap bagian dari perangkat lunak Unix yang ada mengasumsikan bahwa 'root' nama pengguna ada dan bahwa itu adalah pengguna super - alias mail, berbagai daemon, cron ...

Jika Anda benar-benar ingin mencobanya, find /etc -type f -exec grep -l root {} +harus menjadi awal yang baik untuk menemukan daftar setiap file konfigurasi yang mungkin perlu Anda ubah - tetapi seperti yang sudah Anda katakan, ini adalah ide yang sangat buruk di hampir setiap situasi yang mungkin terjadi.

EDIT Pikiran lain - jika Anda belum (yang seharusnya ), pastikan yang /etc/aliasesberisi entri untuk rootdan nama pengguna yang ada atau alamat email yang mengevaluasi dengan benar. Banyak tugas seluruh sistem otomatis ( cronmisalnya) mengirim output mereka melalui email ke root, yang secara tradisional alias ke administrator sistem yang bertanggung jawab untuk operasi sistem itu.

Shadur
sumber
2
/ etc / group juga memiliki nama pengguna ...
vrdhn
Hanya nama pengguna ketika grup yang dimaksud bukan grup default mereka, tetapi bagus.
Shadur
3
Apakah itu? saya pikir sebagian besar aplikasi pergi untuk UID dan bukan nama. Saya pikir idealnya, tidak ada aplikasi yang harus berasumsi "root = UID 0"
yxkb
2
@yxkb: Kau benar ada aplikasi harus berasumsi bahwa. Tapi saya benar-benar ingin menerima $ 1 untuk setiap aplikasi atau skrip yang melakukannya! :)
Bram
1
Memang. Mari kita pikirkan semua saat kita semua menulis secara pribadi chown root …atau serupa dalam skrip shell.
derobert
24

Semua ketakutan ini mongering, mengatakan "Jangan lakukan itu!" itu konyol. Pada suatu waktu, ya, itu mungkin memecah banyak skrip yang ditulis dengan buruk, tapi saya curiga itu tidak begitu umum lagi; setidaknya tidak dalam distribusi standar.

Kami telah diberitahu untuk mengganti nama akun root pada subset dari server linux. Jadi, setelah mencoba meneliti bagaimana cara melakukan ini dengan benar, saya, alih-alih menemukan banyak, banyak posting yang mengatakan "Jangan lakukan itu!" dengan banyak peringatan "buruk" terjadi jika Anda memilih untuk melakukan ini. Tapi, saya belum menemukan contoh konkret dari "hal-hal buruk" yang bisa terjadi.

Jadi, izinkan saya kembali dan menjelaskan di mana saya berada, dan bagaimana kami sampai di sini. Kami sedang membangun lingkungan yang memenuhi PCI, dan salah satu alat yang membantu kami memenuhi "persyaratan" tersebut adalah memberi tahu kami bahwa kami perlu mengubah nama root dan administrator serta akun tamu menjadi sesuatu yang lain. Bagi mereka yang tidak berpendidikan tentang PCI, Anda memiliki pilihan untuk mengikuti pedoman atau mendokumentasikan mengapa Anda tidak dapat atau memilih untuk tidak mengikuti pedoman itu, dan strategi mitigasi apa yang Anda miliki untuk menjaga sistem tetap aman. Jadi, saya membayangkan sebagian besar tempat mendokumentasikan mengapa mereka tidak akan mengganti nama akun root mereka, namun, grup kami telah memutuskan bahwa, jika kami dapat mengganti nama akun administrator windows tanpa masalah, akan mengubah nama akun root linux juga.

Saya fasih dalam argumen "keamanan melalui ketidakjelasan"; Saya tahu hanya mengubah nama akun root sebenarnya tidak meningkatkan keamanan banyak, root harus dinonaktifkan di SSH, dll. Saya tahu, bukan itu intinya, saya tidak tertarik mendengar lebih banyak. Saya juga tidak tertarik pada lebih banyak peringatan "langit akan jatuh". Saya mencari pernyataan seperti ini: "> hal buruk ini <akan terjadi dengan> paket standar ini <(kecuali Anda> melakukan ini <)".

Sejauh ini saya memiliki sistem 3 CentOS (RHEL) yang ternyata tidak memiliki masalah dengan penggantian nama akun root. Inilah yang saya lakukan: Saya mengubah nama akun di / etc / passwd, / etc / shadow, / etc / group, dan / etc / gshadow. Kemudian mencari root nama di / etc / dan memodifikasi file alias postfix sehingga root adalah alias untuk nama akun baru kami, sebut saja rojotoro. (Hal serupa harus dilakukan untuk sistem email lainnya). Saya juga menemukan bahwa saya perlu mengubah beberapa konfigurasi untuk logrotate ketika menjelaskan siapa yang harus memiliki file yang akan dibuat secara otomatis. Dan itu saja yang telah saya ubah sejauh ini.

Saya telah melihat banyak skrip init.d, tetapi belum mengubah apa pun, dan semuanya tampak baik-baik saja saat boot. Saya harus menentukan akun baru saat menggunakan sudo: "sudo -u rojotoro vim / etc / passwd" sebagai contoh, tetapi saya tidak perlu mengubah apa pun dalam file sudoers. Saya berharap mungkin beberapa masalah dengan selinux yang kami miliki dan tegakkan, tetapi sejauh ini saya tidak perlu menyentuh sistem itu.

Saya juga dapat melihat bahwa skrip mkdev atau mkfs mungkin perlu disesuaikan, tetapi saya tidak berencana untuk menggunakannya, jadi saya belum melihatnya dengan pengawasan yang layak.

Jika memang ini mudah untuk diubah tanpa efek buruk pada sistem yang diaktifkan selinux, mengapa kelanjutan dari semua ketakutan ketakutan?

5mi11er
sumber
11
Ini akan menjadi jawaban yang lebih baik jika Anda memotong beberapa paragraf yang didedikasikan untuk menyebut orang-orang bodoh; itu tidak benar-benar diperlukan
Michael Mrozek
3
Anda benar, tetapi perlu beberapa saat bagi saya untuk mengakuinya. Maksudnya adalah untuk membantu memastikan bahwa orang lain memiliki pengalaman yang sebenarnya dengan mengubah nama pengguna root sebelum hanya menghancurkan ide, tetapi itu benar-benar tidak diperlukan.
5mi11er
3
Karena Anda menggunakan CentOS: dapatkah Anda memeriksa apa yang rpm -Vatertulis di sistem tempat akun root diubah namanya? Menurut panduan RPM Maksimum "Pengguna dan pengidentifikasi grup harus non-numerik" sehingga setiap RPM yang menentukan file harus dimiliki oleh root tidak akan dapat melakukannya pada waktu instalasi. Hanya ingin tahu bagaimana sistem Anda akan menghadapinya.
Bram
1
Di mana dalam PCI apakah dikatakan Anda perlu mengganti nama ROOT?
Kidburla
@MichaelMrozek, Biasanya saya setuju jawaban tidak harus memiliki cerita latar seperti ini. Namun, pencarian internet untuk topik ini sarat dengan begitu banyak peringatan yang tepat OP menghabiskan tiga paragraf yang dibicarakan, saya pikir itu disebut dalam kasus ini. Itu membantu membingkai paragraf "How To" -nya dan membuatnya lebih mudah bagi saya untuk mengikuti mengetahui konteks solusinya mirip dengan saya sendiri.
user1717828
7

saran: jangan lakukan itu.

Beberapa alat mencoba untuk berbicara dengan root melalui uid, di sana Anda seharusnya tidak memiliki masalah. beberapa alat menganggap akun root Anda disebut root, dan akan rusak. kecuali Anda siap, seperti, mengkompilasi ulang setengah sistem Anda "untuk bersenang-senang", jangan mencoba.

kuhkatz
sumber
2
Saya tidak berpikir ada orang yang membantah bahwa mengganti nama root, paling tidak, adalah ide yang sangat buruk.
Shadur
kuhkatz, itu hanya pencegahan. jika seseorang melakukan itu, mungkin membantu untuk mengembalikannya jika Anda tahu apa yang terjadi ketika seseorang mengubah root
yxkb
artikel yang Anda dapatkan dari catatan yang melakukan itu memecah login sebagai root, seperti menggunakan sudo. Oleh karena itu, Anda satu-satunya cara untuk mengembalikannya adalah menginstal ulang bersih. karena itu, Anda tidak perlu mencobanya, itu jelas cara mengembalikannya. juga, miliki LART di tangan, untuk berjaga-jaga jika pengguna Anda mencoba.
kuhkatz
Karena mengkompilasi ulang ... gogo gentoo? Satu tambalan ke setiap Ebuild untuk mengatur semuanya?
Bananguin
4

Menurut saya, hal termudah untuk dilakukan adalah membuat pengguna baru (alias), dengan UID 0 dan /rootsebagai home.

Mengapa Anda tidak mengganti shell default root Anda ke /bin/falseatau /sbin/nologin(jadi tidak ada yang bisa login ke sana, tetapi sistem masih menggunakannya) dan login ke alias baru yang dibuat?

razvan@naboo ~ $ head -2 /etc/passwd
root:x:0:0:root:/root:/bin/nologin
root2:x:0:0:root:/root:/bin/bash
razvan@naboo ~ $ su -
Password:
su: Authentication failure
razvan@naboo ~ $ su root2
Password:
naboo razvan # whoami
root

Jika Anda mengganti shell root ke nologin, sudo, mail atau ftw tidak akan rusak.

fromnaboo
sumber
Diakui seperti @ 5mi11er tunjukkan saya belum mencoba ini tetapi jika shell root diatur ke /bin/falseatau /sbin/nologintidak akan dapat memulai layanan apa pun. Jadi semua itu harus dikonfigurasi ulang. Plus seluruh tujuannya adalah untuk meningkatkan keamanan, menambahkan akun kedua dengan izin "root" hampir tidak meningkatkan keamanan.
Bram
Saya pikir solusi ini adalah yang terbaik sejauh ini, memungkinkan nama untuk mencari root dan menonaktifkan login untuk root. Anda bisa menukar urutan baris sehingga root2 muncul sebelum root, lalu whoami akan melaporkan root2, yaitu. lookup uid untuk nama berhenti ketika entri uid pertama dicocokkan. Saya tidak setuju bahwa layanan tidak akan dapat memulai, karena kernel memulai proses dan memberikannya 0 untuk mensetup sistem (init, pemula, ...)
X Tian
2

Linux bukan Windows dan root saat ini tidak dapat diganti nama dengan mudah tanpa menciptakan masalah di masa depan yang tidak diketahui.

Menonaktifkan login lokal dan bahkan remote sebagai root adalah pendekatan yang lebih aman karena secara aktif menonaktifkan root akun! UBUNTU pada dasarnya melakukan ini dan memaksa sudo alih-alih akses root.

Pada dasarnya tidak ada yang dapat menggunakan akun root untuk menyerang sistem Anda karena tidak lagi dapat digunakan untuk masuk ke sistem!

Akan lebih baik jika cara standar dibuat untuk dengan mudah memodifikasi kedua nama akun root serta secara acak menghasilkan UID pada saat instalasi dan jika memungkinkan pada setiap awal yang dingin untuk mencegah penargetan UID tetapi saat ini tidak ada.

Menyesuaikan / etc / passwd Memodifikasi root: x: 0: 0: root: / root: / bin / nologin

Buat akun admin cadangan tunggal HANYA UNTUK PENGGUNAAN DARURAT! fallbackadmin: x: 0: 0: root: / root: / bin / bash

Terapkan sudo untuk semua admin sehingga perubahan audit log dapat diterapkan untuk melacak secara akurat siapa yang membuat perubahan untuk akuntabilitas!

Ini mengimplementasikan persyaratan PCI US Gov untuk menonaktifkan akun admin / tamu default dan membuat akun admin penggunaan darurat tunggal.

Salah satu cara untuk mengarsipkan log untuk audit adalah dengan mengumpulkan riwayat terminal dari semua pengguna dengan akses akun sudo jika AAA terpusat tidak diterapkan.

Solusi untuk menerapkan akun hanya admin adalah membuat satu akun hanya pengguna dan satu akun sudo diaktifkan kemudian memaksa pengguna untuk su ke akun sudo diaktifkan mereka untuk akses administratif.

Anda juga dapat menerapkan otentikasi kartu pintar jika Anda ingin keamanan yang lebih baik ada solusi yang tersedia untuk GNU / Linux yang dibandingkan dengan Solusi CAC Kartu Akses Umum AS untuk otentikasi dua faktor.

Timothy Butterworth
sumber