Dalam jawaban lain di sini di UNIX & Linux Stack Exchange Michael D Parker menulis , sebagai tanggapan terhadap seseorang yang mengatakan bahwa melakukan itu adalah "aman", bahwa:
Biasanya Anda TIDAK PERNAH mengedit file / etc / shadow secara langsung.
Begitu:
Mengapa Anda tidak boleh mengedit /etc/shadow
file secara langsung?
/etc/shadow
selama lebih dari 20 tahun tanpa masalah, pernah . Dan mohon bersikap sopan untuk membaca bantuan dua menit → tur , terutama "tanpa gangguan", "tanpa obrolan". Ini adalah pertama kalinya saya harus membaca lebih banyak obrolan yang tidak relevan dalam sebuah pertanyaan daripada membaca "pertanyaan" yang relevan.Jawaban:
Ada beberapa alasan untuk tidak mengedit
/etc/passwd
,/etc/shadow
,/etc/group
,/etc/gshadow
atau/etc/sudoers
langsung, melainkan menggunakanvipw
,vigr
atauvisudo
:passwd
,chsh
atauchfn
mengubah sesuatu tentang akun mereka. Jika Anda menggunakan alat yang sesuai, itu akan mencegah modifikasi bersamaan. Ini sebagian besar menjadi perhatian pada sistem dengan banyak pengguna, lebih sedikit jika Anda satu-satunya pengguna.vipw
memperbarui beberapa file (misalnya/etc/passwd
dan/etc/master.passwd
). Ini tidak berlaku untuk Linux.vipw
secara otomatis membuat cadangan (passwd-
,,shadow-
...), yang berguna jika Anda menyadari bahwa Anda secara tidak sengaja menghapus sebuah baris. Ini hanya berguna jika Anda menyadarinya sebelum pengeditan berikutnya, jadi itu tidak menggantikan kontrol versi dan cadangan, tetapi bisa sangat baik jika Anda segera menyadari kesalahan Anda.visudo
tidak melakukan ini.Anda dapat mengedit file secara langsung. Anda hanya akan mengambil risiko tambahan tanpa keuntungan nyata.
sumber
/etc/shadow
tidak ada dan/etc/passwd
file yang salah untuk diedit, karena itu adalah file yang dihasilkan bukan file sumber. ☺Pada dasarnya ada dua cara untuk melihatnya:
Jangan pernah mengedit file tertentu tanpa menggunakan alat yang ditentukan karena Anda mungkin tidak tahu apa yang Anda lakukan dan tidak apa-apa karena alat tersebut lebih tahu dan selalu tersedia.
Lebih realistis lagi, Anda bisa memecahkannya sekarang sambil memikirkannya sehingga Anda dapat merencanakan ke depan dengan salinan cadangan dan membandingkan perbedaan setelah melakukannya karena pengetahuan dasar tentang seluk beluk
login
proses awal dasar sistem Anda mungkin bernilai memiliki ketika Anda memecahkannya beberapa saat kemudian dan mengatakan alat tidak akan membantu Anda.Saya kira Anda mungkin bisa tahu mana yang saya rekomendasikan. Saya mengatakan bahwa jika suatu topik menarik minat Anda bahkan untuk sesaat, Anda mungkin bisa memanfaatkan keingintahuan itu dan mendapatkan keterampilan baru saat Anda melakukannya. Terutama yang seperti ini -
shadow
file ini dalam format yang cukup mendasar, dan sedikit yang saya ketahui tentang itu saya pelajari setelah memecahnya secara tidak sengaja - dan itu bukan hasil edit yang saya buat pada file itu.Sebaliknya masalah saya terjadi setelah beberapa kesalahan lain dengan database manajemen paket menyebabkan manajer paket menimpanya tanpa menyimpan cadangan dan semua pengguna pada sistem dibuat kaput . Upaya ceroboh lebih lanjut pada perbaikan hanya menyebarkan kerusakan ke file terkait lainnya dan itu tidak lama sebelum saya harus mengembalikan sebagian besar
/etc
file teks dari cadangan (kurang baru dari yang diharapkan) .Setelah saya melakukannya dan memverifikasi bahwa saya sudah dalam keadaan bisa diterapkan, saya memutuskan untuk dengan sengaja, dengan cermat melakukan semuanya lagi. Dan sekali lagi. Ini semua beberapa bulan yang lalu, tetapi hari ini saya tetap yakin bahwa saya dapat mendiagnosis sumber
login
masalah dengan satu kali logfile tunggal pada sistem saya dan mengatasinya dengan editor dasar (dan memberikan, mungkin, sekilas atau dua atman 5 problem_file
) hanya menyediakan akses dasar ke root fs yang terpengaruh. Itu tidak diperoleh dengan murah - saya butuh sebagian besar hari - dan file konfigurasi terkait tersebar di seluruh direktori (dan bahkan beberapa - seperti Linux PAM/var/run/no_login
- di gunung lain) - tapi itu layak dilakukan. Dan itu bisa lebih murah dengan sedikit pemikiran ke depan.Moral dari cerita ini adalah bahwa hal itu mungkin tidak hal yang baik bahwa format konfigurasi mission-critical seperti
shadow
,passwd
,groups
,shells
harus begitu buram kepada kita bahwa kita harus menggunakan alat mengedit khusus yang mungkin atau mungkin tidak benar pekerjaan kami dalam cara dan karena alasan kami tidak mengerti hanya untuk melakukan perubahan sederhana. Setidaknya, saya pikir, ada baiknya kita sementara memahami dengan tepat apa yang akan mereka lakukan berbeda dari yang mungkin kita lakukan.Mungkin ini adalah hal yang baik, bahwa begitu kita menjadi cukup akrab dengan mengedit file yang kita jalankan berisiko membuat di dalamnya dan kemudian menyimpannya kesalahan kesalahan sintaksis tipografi atau sederhana bahwa ada alat yang kita miliki yang dapat memeriksa ulang pekerjaan kami dengan berbagai cara dan untuk alasan yang telah kami pahami sebelum menerapkan suntingan blase kami.
sumber
Counter point - jika Anda perlu menyalin satu set login pengguna dari satu server ke server lain, tanpa mengetahui kata sandi mereka saat ini atau menugaskan mereka yang baru, maka Anda perlu mengedit / etc / shadow secara langsung untuk memasukkan bidang kata sandi hash. vipw tidak membiarkan Anda menyentuh bidang itu, itu hanya "*"
Perbarui: atau dalam hal ini gunakan chpasswd -e "kata sandi hash", tetapi itu hanya dapat dilakukan di komputer secara langsung. Jika Anda bekerja dengan sekumpulan file yang belum digunakan untuk mesin (mis. Mesin Virtual), maka mengedit secara langsung mungkin satu-satunya solusi Anda.
yaitu Biasanya ada alat untuk melakukan apa yang ingin Anda lakukan tanpa mengedit / etc / shadow secara langsung, Anda hanya perlu tahu apa itu ...
sumber
Alasan lain Anda perlu mengedit file-file ini adalah jika Anda mengedit file dalam gambar sistem file yang akan Anda boot di sistem lain, dan Anda perlu men-debug sistem setelah boot. Sebagai contoh, sistem file epheremal MAAS digunakan pada gagal komisioning atau dalam mode penyelamatan.
Tidak pernah mengatakan tidak pernah ... kecuali jika Anda bersungguh-sungguh.
sumber