Jawaban:
POSIX menentukan penggunaan seperangkat karakter portabel untuk nama pengguna dan grup.
_ - .diperbolehkan karakter, NAME_REGEXperiksa 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:userdan tambahkan direktori home Anda ke $PATH:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/my:user/bin
Direktori /home/mydan user/binakan (mungkin) tidak ada. Selanjutnya, /etc/passwdakan 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_REGEXtidak melarangnya.
_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.
:, 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?
NAME_REGEXadalah regex nama yang diizinkan , bukan regex nama yang tidak diizinkan ... yaitu jika nama cocok NAME_REGEXmaka itu valid.
NAME_REGEXdi /etc/adduser.conf, dan bawaan bawaan melarang _.
_tidak:...