1.概念
什么是用户:我们在系统中的各种操作都会以某个身份进行,这些操作的发起者就是系统中的用户。
用户的账户作用: 用户的账户可用来的登录操作系统,可以实现访问控制。
多任务多用户的系统:允许用户同时执行多个任务,网站,数据库,存储等等,允许有多个用户登录系统。
超级管理员: root 可执行 rm -rf /*
普通用户 : zhangsan lisi wangermazi
用户模板目录: /etc/skel
2.重要的文件
①/etc/passwd #用户的基本信息文件
解释:
root:x:0:0:root:/root:/bin/bash
#每个字段含义解释:用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器程序
#UID:0 超级用户
#UID:1-499 系统伪用户,不能登录系统并且没有家目录
#UID:1000-65535 普通用户,管理员创建的用户
②/etc/default/useradd #存放用户默认值信息
解释:
# useradd defaults file
GROUP=100 #用户默认组
HOME=/home #用户家目录
INACTIVE=-1 #密码过期宽限天数(/etc/shadow文件第7个字段)
EXPIRE= #密码失效时间(/etc/shadow文件第8个字段)
SHELL=/bin/bash #默认使用的shell
SKEL=/etc/skel #模板目录
CREATE_MAIL_SPOOL=yes #是否建立邮箱
③/var/spool/mail/ #用户邮件目录
[root@localhost ~]# ls /var/spool/mail/
[root@localhost ~]# mail #查看邮件
④/etc/shadow #存放用户的密码信息,该文件默认任何人没有执行权限(不包括root )
解释:
第一字段:用户名;
第二字段:密码加密字符串,加密算法为SHA512散列加密算法,如果密码位是“*”或者“!!”表示密码已过期;
第三个字段:密码最后一次修改日期,日期从1970年1月1日起,每过一天时间戳加1;
第四个字段:密码修改的期限,如果该字段为0表示随时可以修改密码,例如:该字段为10,代表10天之内不可以修改密码;
第五个字段:密码有效期;
第六个字段:密码到期前警告时间(和第五个字段相比);
第七个字段:密码过期后的宽限天数(和第五个字段相比);
第八个字段:账号失效时间,日期从1970年1月1日起;
第九个字段:保留。
#chage命令用于修改/etc/shadow文件信息,修改文件内容第三个字段(密码最后一次修改时间)
[root@localhost ~]# chage -d 0 user8
3.常用命令
①useradd #创建用户
useradd命令用于创建新的用户。
命令格式:useradd [选项] 用户名
常用选项:
# -u 指定用户UID;
# -d 指定用户家目录;
# -c 用户描述信息;
# -g 指定用户基本组;
# -G 指定用户附加组;
# -s 指定用户的shell。
举例:
[root@localhost ~]# useradd user1
[root@localhost ~]# useradd -u 1100 user2 #创建用户并指定用户的UID
root@localhost ~]# useradd -d /opt/user3 user3 #创建用户并指定用户的家目录
[root@localhost ~]# useradd -u 1400 -c yunwei user4 #创建用户并指定UID与用户描述信息
[root@localhost ~]# groupadd test #创建test组
[root@localhost ~]# useradd -u 1500 -c xxoo@163.com -g test user5 #创建用户指定用户UID、描述信息、基本组
[root@localhost ~]# id user5 #查看用户的uid/gid/组信息
[root@localhost ~]# useradd -u 1600 -c yunwei -G test xiaozhang #创建用户指定用户UID、描述信息、附加组
[root@localhost ~]# id xiaozhang
[root@localhost ~]# useradd -u 1800 -c test -s /sbin/nologin user6 #/sbin/nologin :禁止用户登录系统
②id #用于查看系统用户和用户所在组的信息
命令格式: id [选项] 用户名
③passwd #用于设置用户密码
命令格式: passswd [选项] [用户名]
密码规范:长度不能少于8个字符,复杂度(数字,字母区分大小写,特殊字符 ),普通用户;本次修改的密码不能和上次修改的密码太相近123xxoo....A。
常用选项
* -S 查看密码信息
* -l 锁定用户密码
* -u 解锁用户密码
* -d 删除密码
* --stdin 通过管道方式设置用户密码
非交互式设置用户密码
命令格式:echo '密码' | passwd -stdin 用户名
举例:
[root@localhost ~]# passwd user1 #设置用户密码
[root@localhost ~]# passwd -S user1 #查看用户密码信息
[root@localhost ~]# passwd -l user1 #锁定用户当密码
[root@localhost ~]# passwd -u user1 #解锁用户密码
[root@localhost ~]# passwd -d user1 #删除用户密码
[root@localhost ~]# echo “1”| passwd --stdin user1 #非交互设置用户密码
④su #用于切换当前用户身份到其他用户身份
命令格式: su [选项] [用户名]
[root@localhost ~]# su user1 #只切换用户身份,环境没有改变
[root@localhost ~]# su - user1 #切换用户身份,连同环境一起切换
[user1@localhost ~]$ su - root #普通用户切换为root(需要输入root用户的密码)
⑤usermod #用于修改已存在用户的基本信息
命令格式: usermod [选项] 用户名
常用选项 :
* -u 修改用户UID
* -d 修改用户家目录
* -g 修改用户基本组
* -c 修改用户描述信息
* -G 添加用户附加组
* -s 修改用户shell
举例:
[root@localhost ~]# usermod -u 1111 user1 #修改用户UID(用户如果已登录系统,不允许修改)
[root@localhost ~]# id user1
[root@localhost ~]# usermod -c xxoo@163.com user1 #修改用户描述信息
[root@localhost ~]# usermod -G test user1 #修改用户的附加组
[root@localhost ~]# usermod -s /bin/bash user1 #修改用户的解释器
⑥userdel #删除用户
userdel用于删除给定的用户以及与用户相关的文件,改命令若不加选项仅删除用户账号,不删除用户相关文件。
命令格式: userdel [选项] 用户名
常用选项:
* -r #删除用户的同时,删除与用户相关的所有文件(推荐使用)
[root@localhost ~]# userdel -r user6 #删除用户,连同用户家目录一并删掉 [root@localhost ~]# ls /home
[root@localhost ~]# id user6