Portál AbcLinuxu, 6. května 2025 12:40
Nevím proč, ale instalátor Ubuntu na jeho LiveCD nepovolí vytvořit uživatele s velkým písmenem v jeho uživatelském jménu. Chtěl jsem vytvořit uživatele Jarda, ale kvůli tomu stupidnímu instalátoru jsem musel vytvořit uživatele "jarda". Přitom s tím linux (a ani FreeBSD - vyzkoušeno) nemá žádné problémy. Kvůli tomu jsem musel po instalaci ručně spustit sed a změnit domovský adresář (který mě také nenechal nastavit, ale to by mě nevadilo jako nemožnost toho jména):
sudo su sed -i "s@jarda@Jarda@g" /etc/passwd sed -i "s@jarda@Jarda@g" /etc/passwd- sed -i "s@jarda@Jarda@g" /etc/shadow sed -i "s@jarda@Jarda@g" /etc/shadow- sed -i "s@jarda@Jarda@g" /etc/group sed -i "s@jarda@Jarda@g" /etc/group- mv /home/jarda /Users/Jarda
A teprve pak jsem se již mohl přihlásit jako "Jarda". Když vám tedy něco nedovolí instalátor, neznamená to nutně, že je to proto, že by to jinak nefungovalo. Na launchpadu jsem samozřejmě vyplnil bugreport, protože tohle je určitě bug z nevědomosti programátora, ne featura.
Tiskni
Sdílej:
# useradd Pokus useradd: chybné uživatelské jméno "Pokus"
$ sudo useradd Test $ cat /etc/passwd | grep Test Test:x:1001:1002::/home/Test:/bin/sh
root@svjet:/home/martin# useradd Kurva root@svjet:/home/martin# useradd 666 root@svjet:/home/martin#
# adduser 666 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.
HAL9000@root>useradd Pokus
useradd Pokus
useradd: chybné uživatelské jméno "Pokus"
HAL9000@root>useradd 666
useradd: chybné uživatelské jméno "666"
Arch
Zkus v konzoli useradd, klikátka zbytečně zakazujou a vědí ho..ho..hodně věcí.Ach jo... Co se tyce uppercase znaku, je to zakazano zcela umyslne, jak uz bylo vyse napsano, zkus se prihlasit jako
ROOT
a pak si v te konzoli zkus napsat neco malymi pismeny.
static int good_name (const char *name) { /* * User/group names must match [a-z_][a-z0-9_-]*[$] */ if (!*name || !((*name >= 'a' && *name <= 'z') || *name == '_')) return 0; while (*++name) { if (!((*name >= 'a' && *name <= 'z') || (*name >= '0' && *name <= '9') || *name == '_' || *name == '-' || (*name == '$' && *(name + 1) == '\0'))) return 0; } return 1; }
getty has several non-standard features that are useful for hard-wired and for dial-in lines: o Adapts the tty settings to parity bits and to erase, kill, end- of-line and uppercase characters when it reads a login name. The program can handle 7-bit characters with even, odd, none or space parity, and 8-bit characters with no parity. The following special characters are recognized: @ and Control-U (kill); #, DEL and back space (erase); carriage return and line feed (end of line).
ja sam by som si taky login z praktickych dovodov ani nikdy nezvolil
A v tom to je. Možnost volby. Někdo by si do uživatelského jména nikdy nedal velké písmeno, ale jiný by si ho tam rád dal, kdyby mohl. A s podobáním se OS MS Windows to vůbec nesouvisí. Jen jsem ho uvedl jako příklad, že tam to jde. Jistě to půjde i jinde a nevím, z jakého důvodu by to nemělo jít i na Linuxu jenom proto, že se to někomu nelíbí - ten si pak klidně může nechat svůj login z malých písmen a to, že tam jde i velké ho vůbec trápit nemusí.
if ($name !~ /^[_.A-Za-z0-9][-\@_.A-Za-z0-9]*\$?$/) { printf STDERR (gtx("%s: To avoid problems, the username should consist only of letters, digits, underscores, periods, at signs and dashes, and not start with a dash (as defined by IEEE Std 1003.1-2001). For compatibility with Samba machine accounts \$ is also supported at the end of the username\n"), $0); exit 1; }
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.