useradd 选项 用户名
一般我们不加任何选项,都使用默认值创建用户即可。(推荐不使用任何选项)
下边可以了解一下常用选项。
选项:
useradd -g 组名 用户名
useradd -G 组名 用户名
/etc/passwd
文件中每一行最后的一列)注意:
执行完用户添加命令useradd 选项 用户名
之后,一定要设置这个用户设置密码。
添加完用户不设置密码,在/etc/passwd
文件中,信息是正常的,但是在/etc/shadow
文件中,密码的位置是!!
,表示无法登陆。
设置密码命令为passwd 用户名
,然后输入两次密码即可。
useradd添加用户时参考的默认值文件主要有两个,分别是/etc/default/useradd
文件和/etc/login.defs
文件。
1)/etc/default/useradd
文件[root@localhost ~ ]# vi /etc/default/useradd
下面挨个解释下:
GROUP=100
:HOME=/home
:INACTIVE=-1
:/etc/shadow
文件的第七个字段。EXPIRE=
:/etc/shadow
文件的第八个字段。SHELL=/bin/bash
:/bin/bash
是Linux的标志shell,所以所有新建立的用户默认都具备shell赋予的权限。SKEL=/etc/skel
:/etc/skel/
目录中的文件都会复制到新建用户的家目录当中。CREATE_MAIL_SPOOL=yes
:/var/spoo1/mail/
下和用户名相同。2)/etc/login.defs
文件
下面是文件内容
- #这个文件有些注释,把注释删除掉,文件内容就变成下面这个样子了
- [root@localhost ~ ] # vi /etc/login. defs
- MAIL_DIR /var/spool/mail
-
- PASS_MAX_DAYS 99999
- PASS_MIN_DAYS 0
- PASS_MIN_LEN 5
- PASS_WARN_AGE 7
-
- UID_MIN 500
- UID_MAX 60000
-
-
- GID_MIN 500
- GID_MAX 60000
-
-
- CREATE_HOME yes
-
- UMASK 077
-
- USERGROUPS_ENAB yes
- ENCRYPT_METHOD SHA512
我们一行一行解释下文件内容:
MAIL_DIR=/var/spool/mail
:/var/spool/ma il/user1
PASS_MAX_DAYS=99999
:/etc/shadow
文件的第五字段。代表多少天之后必须修改密码,默认值是99999。PASS_MIN_DAYS=0
:/etc/shadow
文件的第四字段。代表第一次修改密码之后,几天后才能再次修改密码。默认值是0。PASS_MIN_LEN=5
:PASS_WARN_AGE=7
:/etc/shadow
文件的第六字段。代表密码到底有效期前多少天开始进行警告提醒,默认值是7天。UID_MIN=500
和UID_MAX=60000
:GID_MIN=500
和GID_MAX 60000
:CREATE_HOME=yes
:UMASK=077
:USERGROUPS_ENAB=yes
:ENCRYPT_METHOD=SHA512
:总结
以上命令基本上不用改动,记住文件的作用,了解就好。
[root@localhost ~ ] # passwd [选项] 用户名
/etc/shadow
文件中的密码位置,最前边加入了两个!
。(手工修改也行,同样的效果)/etc/shadow
文件中的密码位置,取消最前边的两个!
。举例
- #passwd直接回车代表修改当前用户的密码
- [root@localhost ~ ] # passwd
- 注意:普通用户修改自己的密码,密码要符合规范,如果不符合规范修改不了。
- #更改用户user1的密码。
- [root@localhost ~] # echo "123" | passwd --stdin user1
- 说明:echo "123" 输出123字符串,通过管道符交给passwd,
- 由--stdin选项来支持把passwd收到的密码,设置给user1用户。
注意:
--stdin
选项来设置密码,不用再输入现有密码和两次新密码的交互了,非常适合批量添加用户时使用。
当我批量创建完用户之后,密码一般都是统一的一个默认值,我需要用户登陆时,第一时间就要修改密码,需要怎么做?
可以通过命令,把密码修改日期归零(shadow第3字段),这样用户一登陆就要修改密码,
(因为修改密码的时候为0,证明该用户从1970年到现在一次密码都没有修改过,Linux系统会认为这是不对的,需要你马上进行修改密码。),例如:
[root@localhost ~ ] # chage -d 0 user1
再次登陆,一上来就会要求你修改密码。如下图:
先输入旧密码,在输入新密码,新密码要求符合规范。然后会登出,需要你重新登陆。
linux设置密码规则
1.使用数字,小写字母,大写字母,特殊符号中的三种;
2.密码长度足够长,大于7位;
usermod
命令是修改已经添加的用户的信息的,命令如下:[root@localhost ~ ] # usermod [选项] 用户名
/etc/passwd
文件的第五个字段。/etc/passwd
文件的第四个字段。/bin/bash
。/etc/shadow
文件的第八个字段。你仔细对比一下,usermod
命令和useradd
命令的选项基本一样。
useradd
命令是在创建新用户的同时,指定属性。
usermod
命令是修改系统中已存在用户的属性。
这些选项一般也不建议修改。常用的也就-G
选项。[root@localhost ~ ] # usermod -G user1(组) user2(用户)
当然可以,但是不建议修改用户名。因为是修改了用户名,而初始组等与用户名对应的信息都没有修改,以后用起来及其痛苦。建议删除旧用户,再建立新用户!
- #修改用户名
- [root@localhost ~ ] # usermod -l 新名 旧名
[root@localhost ~ ] # userdel [-r] 用户名
选项:
su命令可以切换成不同的用户身份(包括切换成root用户)。
注意:超级用户切换成任何其他普通用户都不用密码。
命令格式如下:[root@localhost ~ ] # su [选项] 用户名
选项:
注意:“-”绝不能省略,它代表切换用户身份时,用户的环境变量也要切换成新用户的环境变量(用户身份完整切换)。
练习:
- [user1@localhost ~ ]$ su - user2
- 密码:
- [user2@localhost user1]$ whoami
- user2
-
- [user2@localhost user1]$ exit
- exit
- [user1@localhost ~ ]$ whoami
- user1
查看系统生效的变量用
env
命令。
那么在这里我也精心准备了上述大纲的详细资料在下方链接如下