社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
刚刚在实验室CPU服务器上创建账号的时候发现出现以下提示:
root@user:~# adduser 20testuser
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX[_SYSTEM] configuration variable. Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.
adduser提示用户名需要与NAME_REGEX正则表达式匹配。
请输入与配置的正则表达式匹配的用户名,通过NAME_REGEX[_SYSTEM]配置变量。使用“--force-badname”选项放松此检查或重新配置NAME_REGEX。
于是我就用“adduser --help”查看了该选项的作用,如下图所示:
作用:允许不匹配NAME_REGEX[_SYSTEM]配置变量的用户名。默认在创建用户时会进行/etc/adduser.conf中的正则表达式检查用户名是否合法,如果想使用弱检查,则使用这个选项,如果不想检查,可以将/etc/adduser.conf中相关选项屏蔽。
root@user:~#vim /etc/adduser.conf
至此我就明白了为什么我用“adduser 20testuser”的时候会提示和配置文件里的正则表达式不匹配了,因为‘20’和正则表达式(#NAME_REGEX="^[a-z][-a-z0-9_]*$")不匹配。如果用“adduser testuser” 就不会有提示。如果用“ adduser20testuser --force-badname”也不会出现提示,直接进入输密码的阶段。
--------------------------------------------------------------------------------------------------------
这里再来说一下adduser和useradd的区别,刚接触linux命令的时候一直傻傻分不清楚,总是混用。
(1)adduser: 会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。因此建议使用这个命令。
(2)useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。
默认情况下:
(1)adduser 在创建用户时会主动调用 /etc/adduser.conf;
(2)在创建用户主目录时默认在/home下,而且创建为 /home/用户名
注:如果主目录已经存在,就不再创建,但是此主目录虽然作为新用户的主目录,而且默认登录时会进入这个目录下,但是这个目录并不是属于新用户,当使用userdel删除新用户时,并不会删除这个主目录,因为这个主目录在创建前已经存在且并不属于这个用户。
adduser常用选项:
常用参数选项为:
--home | 指定创建主目录的路径,默认是在/home目录下创建用户名同名的目录,这里可以指定;如果主目录同名目录存在,则不再创建,仅在登录时进入主目录。 |
--quiet | 即只打印警告和错误信息,忽略其他信息。 |
--debug | 定位错误信息。 |
--conf | 在创建用户时使用指定的configuration文件。 |
--force-badname | 默认在创建用户时会进行/etc/adduser.conf中的正则表达式检查用户名是否合法,如果想使用弱检查,则使用这个选项,如果不想检查,可以将/etc/adduser.conf中相关选项屏蔽。 |
--------------------------------------------------------------------------------------------------------
删除用户命令
一次性删除用户连同用户主目录一块删除:userdel -rf 20testuser
root@user:~# userdel -rf 20testuser
只删除用户不删除主目录:userdel 20testuser
root@user:~#userdel 20testuser
参考:https://blog.csdn.net/beitiandijun/article/details/41678251
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!