Lihat kode sumber, secara khusus libmisc/chkname.c. Bayangan cukup konservatif: nama harus cocok dengan regexp [_a-z][-0-9_a-z]*\$?dan mungkin paling GROUP_NAME_MAX_LENGTHpanjang karakter (opsi konfigurasi, default 16; nama pengguna biasanya bisa naik hingga 32 karakter, tergantung pada penentuan waktu kompilasi).
Debian banyak bersantai. Pada pemerasan, apa pun kecuali spasi dan :diizinkan. Lihat bug # 264879 dan bug # 377844 .
POSIX membutuhkan huruf yang memungkinkan dari kedua case, digit dan ._-( seperti dalam nama file ). POSIX tidak menetapkan batasan apa pun jika Anda tidak peduli tentang portabilitas. Sejumlah batasan yang disarankan berasal dari penggunaan:
Titik dua, baris baru dan nol sama sekali keluar; Anda tidak bisa menggunakannya di /etc/passwdatau /etc/group.
Nama yang hanya terdiri dari digit adalah ide yang buruk - chowndan chgrpseharusnya memperlakukan urutan digit sebagai nama jika berada dalam basis data pengguna / grup, tetapi aplikasi lain dapat memperlakukan nomor apa pun sebagai id numerik.
Inisial -atau .dalam nama pengguna sangat tidak disarankan, karena banyak aplikasi berharap dapat beralih $user.$groupke utilitas eksternal (misalnya chown $user.$group /path/to/file) ¹. A .dalam nama grup seharusnya tidak terlalu merepotkan, tetapi saya tetap merekomendasikan untuk tidak melakukannya.
/ kemungkinan akan menimbulkan masalah juga, karena beberapa program berharap dapat menggunakan nama pengguna dalam nama file.
Karakter apa pun yang akan diperluas shell mungkin berisiko.
Karakter non-ASCII harus ok jika Anda tidak peduli berbagi dengan sistem yang mungkin menggunakan pengkodean yang berbeda.
Expect Semua implementasi modern mengharapkan chown $user:$group, tetapi mendukung chown $user.$groupkompatibilitas mundur, dan ada terlalu banyak aplikasi di luar sana yang melewati titik untuk menghapus dukungan kompatibilitas itu.
chownArgumen ulang : sintaks saat ini, setidaknya dalam GNU coreutils, adalah user:group, dengan titik yang diterima hanya untuk kompatibilitas. Orang bisa menggunakan j.smith:j.smith.
user1686
1
@grawity: Ini bukan hanya GNU coreutils, tetapi masalahnya bukan chownsendiri, skrip yang ada dan program lain yang memanggil chown $user.$groupbukannya chown $user:$group- bahkan jika chownimplementasi mencoba untuk melakukan hal yang benar, beberapa kasus secara intrinsik ambigu.
Gilles 'SO- stop being evil'
1
Jika Anda ingin bertualang, Anda dapat mengedit /etc/groupsecara langsung dan memasukkan nama grup apa pun yang Anda suka. Juga, ini memiliki bonus tambahan bahwa ketika Anda menemukan salah satu masalah yang disebutkan @Gilles, Anda mungkin tidak dapat memuat editor untuk memperbaiki masalah, atau bahkan masuk sama sekali - memberi Anda pengalaman berharga dalam memulihkan sistem yang rusak!
chown
Argumen ulang : sintaks saat ini, setidaknya dalam GNU coreutils, adalahuser:group
, dengan titik yang diterima hanya untuk kompatibilitas. Orang bisa menggunakanj.smith:j.smith
.chown
sendiri, skrip yang ada dan program lain yang memanggilchown $user.$group
bukannyachown $user:$group
- bahkan jikachown
implementasi mencoba untuk melakukan hal yang benar, beberapa kasus secara intrinsik ambigu.Jika Anda ingin bertualang, Anda dapat mengedit
/etc/group
secara langsung dan memasukkan nama grup apa pun yang Anda suka. Juga, ini memiliki bonus tambahan bahwa ketika Anda menemukan salah satu masalah yang disebutkan @Gilles, Anda mungkin tidak dapat memuat editor untuk memperbaiki masalah, atau bahkan masuk sama sekali - memberi Anda pengalaman berharga dalam memulihkan sistem yang rusak!sumber
/etc/gshadow
saat menambahkan grup. Juga, gunakanvigr(8)
daripada langsung mengedit file.