OS:Centos7
1.用户的分类
在Linux下用户角色划分如下:
超级用户:root 拥有对系统的最高的管理权限(UID=0)如果我们把普通用户的UID改为0系统也会将其视为root用户。
普通用户 系统用户(UID 1-999),在Centos6中为1-499;本地用户 (UID 1000+),Centos6中为500+ (注:UID:即每个用户的身份标示)
虚拟用户:也称做伪用户,一般不会用来登录系统,由系统中的服务使用,比如apache、zabbix等。
2.用户和组的对应关系
一对多:一个用户可以存在一个组中; 一对多:一个用户可以存在多个组中;
多对一:多个用户可以存在一个组中; 多对多:多个用户可以存在多个组中;
配置文件:
名称 | 账号信息 | 说明 |
---|---|---|
用户信息文件 | /etc/passwd | 记录了每个用户的一些基本属性,每一行对应一个用户,每个行记录之间通过:分割成了7列 |
组文件 | /etc/group | 用户组的所有信息存放位置,并且组名不能重复 |
密码信息文件 | /etc/shadow | 把密码从/etc/passwd中分离出来放入这个单独的文件,该文件的记录行与/etc/passwd中一一对应 |
组对应的密码信息 | /etc/gshadow | /etc/gshaow是/etc/group的加密文件,组的管理密码存放在该文件中 |
新增用户的信息文件 | /etc/skel | 当我们新增一个用户时,该目录下的隐藏文件自动复制到新增用户的家目录下 |
下面是上述文件参数的详解:
/etc/passwd
[root@centos7 ~]# cat /etc/passwd |head
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
该文件一行记录着一个用户,每行又以:分割成7列,其中每一列的参数含义:
用户名:密码占位符:UID:GID:描述信息(在图形界面我们登录前由原来的用户名变为我们自定义的描述信息):用户的家目录:登录shell
/etc/group
[root@centos7 ~]# cat /etc/group|head
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
每一列的参数含义:
组名:组的密码的占位符:GID:组内的成员列表
/etc/shadow
[root@centos7 ~]# cat /etc/shadow
root:sadadasdawerqwrxsadi0:18301:0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::
sync:*:17834:0:99999:7:::
shutdown:*:17834:0:99999:7:::
halt:*:17834:0:99999:7:::
mail:*:17834:0:99999:7:::
每一列的参数含义:
账号名称:加密的密码:最近更改密码的时间;从1970/1/1到上次修改密码的天数,(可用date -d "1970-01-01 [选项中对应的数字] days" 命令查看):密码不可被修改的天数:密码有效期:密码过期之前警告天数:密码过期的期限天数:帐号失效时间;从1970/1/1日起,到用户被禁用的天数:保留字段
/etc/gshadow
[root@centos7 ~]# cat /etc/gshadow
root:::
bin:::
daemon:::
sys:::
adm:::
tty:::
disk:::
lp:::
mem:::
kmem:::
wheel:::
每一列的参数含义:
组账号名称:加密后的密码(显示!或者为空表示没有密码):该组的管理员列表,该字段可以为空,如果有多个管理员则用,隔开:该组的成员列表,多个用户用,隔开
/etc/skel目录:
[root@centos7 ~]# ll -a /etc/skel/
总用量 28
drwxr-xr-x. 2 root root 4096 11月 5 23:09 .
drwxr-xr-x. 95 root root 12288 2月 10 00:16 ..
-rw-r--r-- 1 root root 18 8月 8 2019 .bash_logout
-rw-r--r-- 1 root root 193 8月 8 2019 .bash_profile
-rw-r--r-- 1 root root 231 8月 8 2019 .bashrc
[root@centos7 ~]#
/etc/skel目录是用来存放新增的用户的配置文件的目录,当我们创建新用户时,这个目录下的所有文件都会自动被复制到新创建的用户的家目录下,默认情况下,该目录下的所有文件都是隐藏文件。
/etc/default/useradd文件
/etc/default/useradd文件在使用useradd命令创建用户时需要调用的一个默认的配置文件。
[root@centos7 ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home #设置用户的家目录在/home中
INACTIVE=-1 #是否启用账号过期后禁用,-1表示不启用
EXPIRE= #账号终止日期,空值表示不启用
SHELL=/bin/bash #新建的用户的默认使用的shell类型
SKEL=/etc/skel #新建的用户家目录默认文件存放路径,也就是前文提到的/etc/skell目录
CREATE_MAIL_SPOOL=yes #是否创建mail文件
[root@centos7 ~]#
3.用户命令
-创建新用户的命令: useradd、adduser
注:adduser是useradd的软连接
- useradd [参数选项] 用户名
该命令常用的参数及含义:
-d:指定用户家目录
-M:不创建用户的家目录
-g:设置用户初始组的名称或ID,如果没有设置该选项,useradd 会根据/etc/login.defs 文件中的 USERGROUPS_ENAB 环境变量进行设置。默认 USERGROUPS_ENAB yes 会用和用户名相同的名字创建群组,GID 等于 UID
-G:指定用户要加入的附加组列表,使用,号分隔多个组,不要添加空格。(一个用户只允许有一个主组,可有多个附属组)
-s:创建用户时,指定用户的shell类型,设置成/sbin/nologin就可以禁止用户登录
-u:指定用户UID
-使用userdel删除用户:
用法:userdel [参数选项] 用户名
选项:-r 删除用户时同时删除用户的家目录和/var/mail下的目录
-使用groupadd命令创建新组:
用法 : groupadd [参数选项] 组名
该命令常用的参数及含义:
-g: 指定GID,必须是唯一的数值,除非指定-o选项
-r: 建立系统用户组
-f: 新增一个账户,强制覆盖已存在的用户组账户
-使用groupdel命令删除组:
用法:groupdel 组名
(注意:删除的目标组不能是用户的基本组)
-使用passwd命令修改密码:
用法:passwd [参数选项]
该命令常用的参数及含义:
-d:清空密码。仅root能操作
-f: 强制操作,仅root能操作
-l:锁定用户账户,锁定其用户无权更改其密码,仅root能操作
-u:解锁用户账户,仅root能操作
-s:查看用户的状态
-使用gpasswd命令管理组:
用法:gpasswd
该命令常用的参数及含义:
-A:定义组管理员列表
-a:添加组成员,每次只能加一个
-d:删除组成员,每次只能删除一个
-M:定义组成员,可设置多个,用,隔开
-r:移除组的密码
-R:将其成员限制访问组
-使用usermod命令修改用户信息:
用法:usermod [参数选项] 用户名
该命令常用的参数及含义:
-u:指定UID
-d:指定家目录
-g:指定起始组(只能有一个)
-G:附加组(可以有多个)
-s:指定用户登录的shell
-L:锁定用户账号
-d:-d一般跟-m一起使用,既指定新的家目录,又移动此前的文件到新的家目录中