Linux'ta kullanıcı adlarında hangi karakterleri kullanmalı veya kullanmamalıyım?


39

Bir alan adından sonra adlandırılmış kullanıcı hesapları oluşturmak istiyorum. adduser, kullanıcı adlarının NAME_REGEXnormal ifadeyle eşleşmesi gerektiğinden şikayetçi .

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.

Useradd kullanarak kullanıcıları şikayet etmeden ekleyebilirim. Ben izin düzenli ifade değiştirmek gerektiğini bir neden var mı ., -ve _?

Hangi karakterler sorunlara neden olur ve kullanıcı adlarında izin verilmemelidir?

Bu varsayılandır NAME_REGEX.

NAME_REGEX="^[a-z][-a-z0-9]*\$"

1
NAME_REGEXZaten -ilk karakter olmadığı sürece kabul ettiğini unutmayın .
Yüzük,

Neden eklenmiyor .? .Veya adlı bir kullanıcıyı düşünün ... Sonra rmbu kullanıcı adını verdi ...
Jon

1
@Jon, rmbir kullanıcıyı silerken kullanılacak komut olmadığı için bu bir sorun değil. Ben katılıyorum ..benzer nedenlerle mantıklı bir isim değil, ama rmonlardan biri değildir.
toon81

Yanıtlar:


26

Sana tavsiyem varsayılan NAME_REGEX tarafından önerilen standardı takip etmektir. Aslında * NIX altındaki bir kullanıcı adına neredeyse her şeyi koyabilirsiniz ancak varsayımlar yapan kütüphane koduyla ilgili garip sorunlarla karşılaşabilirsiniz. Konuşma konusu olan mesele:

http://blog.endpoint.com/2008/08/on-valid-unix-usernames-and-ones-sanity.html

Size sorum şu: sıradışı noktalama işaretlerini kaldırırsanız birbiriyle çarpışacak bir sürü etki alanı adınız var mı? Örneğin, etki alanı adları olarak hem “KALİTE GÜVENCESİ” hem de KALİTE GÜVENLİĞİ ”var mı?

Ayrıca, "gerçek adı" bölümünü kullanabilirsiniz GECOS alanında orijinal, değiştirilmemiş domaain adını depolamak için / etc / passwd bilgilerinde ve komut oldukça kolay ayıklamak.


Endişelendiğim, rastgele beklenmedik hatalarla karşılaşmak. Süreleri kolayca kaldırabilirim ve hala isim çatışması şansım yok, ancak - bir soruna neden olabilir. Hala çok düşük bir ihtimal.
Ed Haber

Yani kullandığım debian sistemi bir kullanıcı www-data kullanıyor. Öyle gözüküyor - kullanıcı adlarında kullanılmaya uygun olmalı.
Ed Haber,

Aslında, bu normal ifade kullanıcı adlarında '-' izni veriyor! İlk harfin az olması gerekir, ancak kullanıcı adlarının sonraki harfleri '-', az veya 0-9 olabilir.
steveha

Ohh! haklısın. Ekstra özledim - baktığımda.
Ed Haber

22

Daha spesifik olarak, POSIX ("Unix için Taşınabilir İşletim Sistemi Arabirimi") standardı (IEEE Standardı 1003.1 2008) ;


3.431 Kullanıcı Adı

Bir kullanıcıyı tanımlamak için kullanılan bir dize; ayrıca bkz. Kullanıcı Veritabanı. POSIX.1-2008'e uygun sistemler arasında taşınabilir olması için değer, taşınabilir dosya adı karakter kümesindeki karakterlerden oluşur. <hyphen>Karakter taşınabilir kullanıcı adının ilk karakteri olarak kullanılmamalıdır.


3.278 Taşınabilir Dosya Adı Karakter Seti

The set of characters from which portable filenames are constructed.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 . _ -

Bu standarda uyan herhangi bir kullanıcı adı POSIX uyumludur ve güvenli olması gerekir.


6
Bu doğru olsa da, genellikle kullanıcı adlarında büyük harf karakterlere sahip olmak üzerine kaşlarını çattı - insanlar büyük küçük harf duyarlı şifrelerle yeterince sorun yaşıyorlar ve kullanıcı adlarında küçük harfleri hatırlamak zorunda kalmaları sadece düştüklerinde onları tekmeliyorlar. (İstisna: Kullanıcı adı kuralınız ALL UPPERCASE CHARACTERS.)
voretaq7

1
POSIX.1-2017'den itibaren, bu tanımlar biraz değişti. 3.431 Kullanıcı Adı şimdi 3.437 Kullanıcı Adı ve 3.278 Taşınabilir Dosya Adı Karakter Seti şimdi 3.282 Taşınabilir Dosya Adı Karakter Seti
Chuck Wolber

@ voretaq7 Yasal olduğunu düşündüğüm şey bir kullanıcı adındaki durumu korumak , ancak oturum açmayı büyük / küçük harf duyarsız hale getirmektir. Böylece bir kullanıcı adı CatInTheHat olabilir, ancak catinthehat veya catintheHAT veya her neyse belirtmek için oturum açın.
StackOverflowUser

1

NAME_REGEX’ten büyük ve küçük harflerde a ile z dışında her şeyin ve 0 ile 9 arasında sayının kötü olacağı sonucuna varılabilir.


Aradığınız kelime "çıkarılır".
wfaulk

regex bakmak yine -de (. Sadece ilk karakter olarak) kabul edilmektedir Ayrıca varsayılan olarak büyük hayır yoktur (kabul edilmediğine dikkat gbayrak, ne olduğu A-Zdahil NAME_REGEX OP tarafından sağlanan regex.NAME_REGEX="^[a-z][-a-z0-9]*\$"
SherylHohman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.