Saya ingin membuat akun pengguna dengan nama domain. adduser mengeluh bahwa nama pengguna harus cocok dengan NAME_REGEX
ekspresi reguler.
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX configuration variable. Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.
Saya dapat menambahkan pengguna menggunakan useradd tanpa keluhan. Apakah ada alasan mengapa saya tidak boleh mengubah ekspresi reguler untuk mengizinkan .
, -
dan _
?
Karakter apa yang akan menyebabkan masalah dan tidak boleh diizinkan dalam nama pengguna?
Ini standarnya NAME_REGEX
.
NAME_REGEX="^[a-z][-a-z0-9]*\$"
linux
user-accounts
Ed Haber
sumber
sumber
NAME_REGEX
sudah menerima-
selama itu bukan karakter pertama..
? Pertimbangkan pengguna bernama.
atau..
. Kemudian,rm
pengguna itu bernama..
.rm
bukan perintah untuk digunakan ketika menghapus pengguna. Saya setuju..
bukan nama yang masuk akal untuk alasan yang sama, tetapirm
bukan salah satu dari itu.Jawaban:
Saran saya kepada Anda adalah mengikuti standar yang direkomendasikan oleh NAME_REGEX default. Anda benar-benar dapat memasukkan hampir segala sesuatu dalam nama pengguna di bawah * NIX tetapi Anda mungkin mengalami masalah aneh dengan kode perpustakaan yang membuat asumsi. Inti masalah:
http://blog.endpoint.com/2008/08/on-valid-unix-usernames-and-ones-sanity.html
Pertanyaan saya kepada Anda: apakah Anda memiliki banyak nama domain yang akan saling bertabrakan jika Anda menghapus tanda baca yang tidak biasa? Misalnya, apakah Anda memiliki "QUALITY-ASSURANCE" dan QUALITYASSURANCE "sebagai nama domain? Jika tidak, Anda cukup mengadopsi kebijakan menghapus karakter yang tidak biasa dan menggunakan yang tersisa sebagai nama pengguna.
Juga, Anda dapat menggunakan bagian "nama asli" dari bidang GECOS di informasi / etc / passwd untuk menyimpan nama domaain asli yang tidak dimodifikasi, dan skrip dapat mengekstraknya dengan mudah.
sumber
Lebih khusus lagi, standar POSIX ("Portable Operating System Interface for Unix") (Standar IEEE 1003.1 2008) menyatakan :
3.431 Nama Pengguna
3.278 Set Karakter Nama File Portabel
Setiap nama pengguna yang memenuhi standar ini adalah POSIX-compliant, dan harus aman.
sumber
ALL UPPERCASE CHARACTERS
.)Dari NAME_REGEX dapat disimpulkan bahwa semuanya kecuali z melalui huruf besar dan kecil dan angka 0 hingga 9 akan buruk.
sumber
-
juga diterima (tidak hanya sebagai karakter pertama.) Juga perhatikan bahwa huruf besar default tidak diterima (tidak adag
bendera, juga tidakA-Z
termasuk dalamNAME_REGEX
regex yang disediakan oleh OP.NAME_REGEX="^[a-z][-a-z0-9]*\$"