Jadi mengapa garis bawah dianggap sebagai karakter buruk untuk nama pengguna di Debian (dan mungkin distribusi lainnya) sementara itu telah dihapus dari adduser
NAME_REGEX di Ubuntu?
POSIX menentukan penggunaan seperangkat karakter portabel untuk nama pengguna dan grup.
_ - .
diperbolehkan karakter, NAME_REGEX
periksa apakah nama pengguna hanya berisi karakter yang ditentukan. Pengembang distribusi menentukan, jika karakter lebih lanjut ditolak. Ubuntu, misalnya, tidak melarang penggunaan .
secara default.
Menambahkan batasan ini menghindari gangguan dengan alat sistem lain, yang dapat menafsirkan karakter khusus. Pikirkan variabelnya $PATH
, ketika Anda memiliki pengguna dengan nama my:user
dan tambahkan direktori home Anda ke $PATH
:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
/home/my:user/bin
Direktori /home/my
dan user/bin
akan (mungkin) tidak ada. Selanjutnya, /etc/passwd
akan memiliki dua :
lebih dari yang dibutuhkan.
Edit:
Debian adduser
(versi 3.110) menggunakan /^[_.A-Za-z0-9][-\@_.A-Za-z0-9]*\$?$/
untuk memeriksa nama pengguna, _
yang diperbolehkan selama NAME_REGEX
tidak melarangnya.
_
tidak:
..._
diizinkan secara default, lihat hasil edit. Saya memberi contoh karakter terlarang:
untuk menunjukkan kemungkinan masalah dengan itu.Pertanyaan serupa sudah dijawab di sini
Secara teoritis Anda dapat menggunakan hampir semua karakter ASCII yang Anda inginkan sebagai nama pengguna, tetapi, untuk menghindari beberapa jenis bug, seperti yang disebutkan dalam artikel di atas, Anda dapat mengatur ekspresi reguler yang menghindari masalah tertentu.
sumber
:
, baris baru atau karakter nol dalam nama pengguna bahkan jika Anda mengedit/etc/passwd
(atau kebanyakan database pengguna lain) dengan tangan.Saya menggunakan Debian Squeeze dan saya berhasil membuat pengguna dengan garis bawah
adduser user_1
,. Mengapa Anda mengatakan mereka tidak diizinkan?sumber
NAME_REGEX
adalah regex nama yang diizinkan , bukan regex nama yang tidak diizinkan ... yaitu jika nama cocokNAME_REGEX
maka itu valid.NAME_REGEX
di/etc/adduser.conf
, dan bawaan bawaan melarang_
.