/etc/group
File sampel berisi entri berikut:
root:*:0:
adm:!:4:logcheck
antoine:x:1000:
Halaman manual yang saya baca (Debian & OSX) mengatakan bidang kedua adalah menyimpan kata sandi grup. Karena jarang digunakan, tanda bintang *
atau a x
biasanya ditempatkan di dalamnya daripada dibiarkan kosong.
The shadow
halaman manual juga mengatakan bahwa bidang kedua ini harus menyimpan hasil dari crypt
fungsi. Dan jika hasil yang tidak valid disimpan (seperti *
atau !
) itu berarti kata sandi tidak dapat digunakan sebagai metode otentikasi.
Apakah itu berlaku untuk group
file juga? Mengapa saya berakhir dengan 3 karakter berbeda di group
file saya semua memiliki arti yang sama? Bisakah saya mengubah semua dengan aman *
?
*
?!
yang digunakan untuk satu grup pada server tunggal dari 10+ yang saat ini saya kelola. Demi kesederhanaan dari beberapa skrip yang memeriksa, selalu memiliki karakter yang sama di sana akan membersihkan semuanya. Nah, kalau itu sebenarnya berarti sama, tentu saja.Jawaban:
Anda berpikir bahwa
!
,*
ataux
memiliki makna khusus di sini, dan karena itu khawatir bahwa mungkin ada perbedaan di antara mereka.Faktanya adalah bahwa karakter-karakter ini dipilih hanya karena mereka menonjol, paling tidak di mata Barat. Karakter-karakter ini berkonotasi dengan nilai yang hilang, atau pengecualian, atau peringatan. Anda dapat menempatkan di
boogabooga
sini dan memiliki efek yang persis sama.Ini karena cara penanganan kata sandi pada sistem tipe Unix. Ketika sistem menerima entri kata sandi, hash dan membandingkannya dengan hash yang disimpan. Karenanya, yang penting di sini adalah Anda menggunakan beberapa karakter atau urutan karakter yang tidak mungkin berupa hash kata sandi yang valid. (Ini juga tidak boleh termasuk titik dua, karena alasan yang jelas.)
Meskipun tidak ada perbedaan antara karakter ini dari perspektif OS inti, ada beberapa konvensi:
Ketika
pwconv(8)
program Linux melihatnyax
, itu berarti "Saya sudah memindahkan hash kata sandi publik ini ke file shadow password."Itu bukan kasus penting dalam praktik karena hari-hari konversi ke (atau, surga membantu Anda, dari ) kata sandi bayangan ada di belakang kami sekarang.
Jika Anda menggunakan
usermod -L
ataupasswd -l
untuk mengunci pengguna,!
memiliki arti khusus/etc/shadow
karena itulah konvensi untuk "hancurkan hash ini sehingga tidak cocok lagi."Menambahkan karakter lain ke hash yang disimpan akan memecahnya juga. Melanggar konvensi ini hanya mencegah
usermod -U
ataupasswd -u
dari membuka login pengguna. Sama juga benarnya, karena Anda menguncinya dengan tangan dengan menambahkan karakter palsu, Anda dapat membukanya dengan tangan dengan menghapusnya.Namun, semua itu hanya hal-hal sepele sehubungan dengan pertanyaan ini. Tidak ada
groupmod -L
ataugpasswd -l
, karenanya tidak ada!
konvensi dalam/etc/group
.Lebih trivia: jika Anda sedang akan account kunci pengguna dengan tangan, Anda harus tinggal jauh dari
[A-Za-z0-9/\]
set, karena mereka adalah karakter hukum untuk hash. Itulah salah satu alasan mengapausermod
menggunakan di!
sinix
.Saya tidak melihat ada yang salah dengan menormalkan semua
/etc/group
bidang kata sandi Anda , jika itu membuat Anda merasa lebih baik. Dengan melakukannya, Anda sudah mengatakan bahwa Anda senang meretas file-file ini dengan tangan, jadi Anda mungkin bukan orang yang menggunakan alat yang peduli dengan perbedaan itu. Apapun, perubahan itu tidak akan berpengaruh pada operasi sistem sehari-hari.sumber
getpwent(3)
dan berteman. Perl memiliki pembungkus untuk ini di perpustakaan standarnya, sebagaimana seharusnya bahasa scripting terfokus sysadmin Unix lainnya. Jika Anda menggunakan bahasa tanpa pembungkus seperti itu, ini akan menjadi alasan yang baik untuk berdagang. :)x
dan*
untuk menandai bidang kata sandi "yang tidak digunakan". Hanya ingin tahu meskipun ... halaman manual mengatakan bahwa bidang tersebut mungkin dibiarkan kosong (apa yang di bidang basis data dapat disebut NULL - terutama di Oracle yang mendefinisikan NULL dan string kosong menjadi sama). Jadi, kembali ke / etc / group: mengapa penggunaanx
atau!
atau*
, bukan hanya meninggalkan lapangan kosong? Dua titik dua berturut-turut menonjol sama seperti karakter-karakter ini. Tidak penting - hanya ingin tahu/etc/shadow
. Juga, saya menolak anggapan bahwa usus besar ganda sama jelasnya. Cepat, ada berapa bidang kosong di sini::::::
:? Sekarang berapa banyak:x:*:!:x:*:
:? Jumlah titik dua yang sama, tetapi jawaban yang berbeda, saya percaya.