Bagaimana cara saya memberi komentar di file / etc / shadow saya?

10

Saya menjalankan beberapa peningkatan sistem dan manajer paket saya menunjukkan perubahan antara upstream / etc / shadow dan mine.

Saya ingin memasukkan beberapa komentar dalam file untuk kali ini terjadi. Bagaimana saya bisa menyelesaikan menempatkan komentar di file / etc / shadow tanpa merusak sesuatu.

Saya pikir default "#" kemungkinan akan melakukannya, tetapi jika saya salah, reboot tidak akan menyenangkan.

DarkSheep
sumber
Gunakan dllkeeper dan catat komentar Anda dalam pesan komit.
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

14

Pada sistem Linux yang menggunakan GNU libc, baris yang diawali dengan #diabaikan /etc/shadow. Penguraian dilakukan oleh __fgetspent_r(), dan kode sumbernya secara eksplisit menangani (dan mendokumentasikan) perilaku ini.

Jadi pada sebagian besar sistem Linux Anda dapat berkomentar /etc/shadowdengan #tanpa menyebabkan masalah.

Sayangnya komentar dihapus ketika /etc/shadowdiperbarui, misalnya oleh passwd; jadi menyimpan komentar sebenarnya tidak aman (dari sudut pandang komentar).

Ini berarti Anda harus mencari tempat lain untuk menyimpan komentar Anda: dua saran yang baik adalah dr01 's ide menggunakan /etc/shadow.README, atau lebih baik lagi Gilles ' ide menggunakan pesan komit dengan etckeeper .

Stephen Kitt
sumber
Hampir semua entri yang tidak valid tampaknya hilang dengan passwd. Saya mencoba menggunakan entri pengguna palsu, atau yang valid dan menambahkan karakter ke entri akhir, tetapi semua tidak berhasil.
Otheus
7

Setiap baris /etc/shadowdianggap sebagai catatan pengguna. Seperti yang ditulis oleh Stephen Kitt yang meninjau kode sumber parser, Anda dapat meletakkan baris diawali dengan #komentar di file atau bahkan baris kosong dan mereka akan diabaikan.

Namun, saya belum pernah melihat /etc/shadowfile dengan komentar di atasnya. Tampaknya ini bukan praktik yang umum, dan untuk alasan yang sangat bagus: mengeditnya dengan tangan sangat tidak dianjurkan . Untuk alasan ini, saya lebih suka menyarankan Anda membuat /etc/shadow.READMEfile daripada menyimpan komentar Anda. Ingatlah chmod 000file untuk menghindari pengguna non-root yang mengintipnya.

dr_
sumber
Jadi mengapa 000? Dimiliki oleh root:rootdan kemudian ug=r,o=tidak cukup?
0xC0000022L
000 adalah izin /etc/shadow(setidaknya di Red Hat, saya belum melihat di distro lain) dan memastikan bahwa hanya root yang memiliki akses ke file. 440, seperti yang Anda sarankan, buat file tersebut dapat dibaca oleh pengguna biasa jika ia bergabung dengan kesalahan grup root. Pada mesin yang dikelola dengan benar, dan untuk semua tujuan praktis, nilainya sama. Saya pikir 000 lebih baik menyampaikan arti "file penting keamanan - jauhkan tangan", tapi itu hanya pendapat saya.
dr_
@ dr01: tidak yakin bagaimana pengguna normal akan bergabung dengan grup root tanpa superuser melakukan itu. Dan jika superuser melakukan kesalahan seperti itu, semua taruhan dibatalkan. Misalnya ada kemungkinan orang itu sudah sudoer dan dapat mengakses file terlepas. Saya menganggap keamanan karena ketidakjelasan, tapi YMMV.
0xC0000022L
Itulah yang saya maksud dengan "pengguna biasa bergabung dengan kesalahan grup root". Kasus saya adalah bahwa seorang pengguna super bisa (walaupun kemungkinannya kecil) menempatkannya di grup root secara tidak sengaja. Sementara 000 izin hanya akan memungkinkan rooting untuk mengakses file. Saya tahu itu mungkin kasus tepi, tetapi saya menganggap cara ini jauh lebih bersih juga karena file komentar akhirnya memiliki izin yang sama seperti /etc/shadow.
dr_
3

Tentu saja Anda memiliki perubahan pada /etc/shadow. Anda tidak ingin informasi akun masuk /etc/shadowdi server Anda - kata sandi hash, kedaluwarsa akun, dll - menjadi salinan byte-ke-byte dari upstream /etc/shadow.

Dan saya harap Anda tidak menimpa saat ini /etc/shadowdengan apa pun yang Anda dapatkan dari sumber data hulu.

Andrew Henle
sumber