权限管理-用户组管理
一.用户与组管理
1、什么是用户
用户是操作系统提供一种安全机制
用户是权限的化身
2、为何要有用户?
(1)划分权限,增强安全性
(2)每启动一个进程都会与一个用户关联
(3)进程能否访问到文件,和用户的权限关联.
3、组的概念
主组: 用户本身所在部门(基本组)
附加组:为用户添加的部门(附加组)
用户与组的关系:
一对一:一个用户可以属于一个组,用户默认就在自己的主组下
一对多:一个用户可以属于多个组,用户只有一个主组,但可以为用户添加多个附加组
多对多:多个用户可以属于多个组
总结:
linux系统把文件的权限分为了三类
(1)属主对应的权限
(2)属组对应的权限
(3)其他用户对应的权限
一个用户对文件的权限扫描的优先级:
(1)先看该用户是否是文件的属主
(2)在1失败的情况,看该用户是否是文件的属组
(3)在2失败的情况,该用户就属于其他用户权限
4.用户的分类(centos7)(约定)
0:超级管理员,最高的权限.
1-200:系统用户,用来运行系统自带的进程,系统自建.
201-999:系统用户,用来运行安装的程序,所以此类用户无需登录系统.
1000+:普通用户,正常可以登录系统的用户,权限比较小,能执行的任务有限.
注意: 在CentOS7系统之前, UID1-499用于系统用户, 而UID 500+则用于普通用户
二. 用户与组相关文件
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
root:x:0:0:root:/root:/bin/bash
第一字段:用户名
第二字段:口令,我们看到的是一个X,其实密码已被映射到/etc/shadow文件中(删除X,用户登录就不需要密码)
第一字段:用户名
第二字段:口令,我们看到的是一个X,其实密码已被映射到/etc/shadow文件中(删除X,用户登录就不需要密码)
第三字段:uid
第四字段:gid
第四字段:gid
第五字段:描述信息
第六字段:用户的家目录所在位置
第七字段:用户登录所用shell的类型
第六字段:用户的家目录所在位置
第七字段:用户登录所用shell的类型
/etc/skel/ 用户老家的模版
/home/用户名 用户的家目录
/var/spool/mail/用户名 用户邮箱文件
用户创建扩展知识
useradd创建用户时,系统会以/etc/login.defs、/etc/defaults/useradd两个配置文件作为参照物
用户创建目录时,会发邮件在/var/spool/mail,可以删除。
1./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
UID_MIN 1000
#普通用户最大uid
UID_MAX 60000
#系统用户最小uid
SYS_UID_MIN 201
#系统用户最大uid
SYS_UID_MAX 999
#普通用户最小gid
GID_MIN 1000
#普通用户最大gid
GID_MAX 60000
SYS_GID_MIN 201
#系统用户最大gid
SYS_GID_MAX 999
#是否创建家目录
CREATE_HOME yes
#创建家目录的权限(700)
UMASK 077
#创建用户的同时 创建组,删除用户的同时,删除组
USERGROUPS_ENAB yes
#密码的 加密算法
ENCRYPT_METHOD SHA512
2./etc/default/useradd
#依赖于/etc/login.defs的USERGRUUPS_ENAB参数,如果为no,则在此处控制
GROUP=100
#普通用户家目录
HOME=/home
#是否启用账号过期 -1表示不启用
INACTIVE=-1
#账号的终止日志 不设置表示不启用
EXPIRE=
#默认登录shell
SHELL=/bin/bash
#用户的家目录 环境变量
SKEL=/etc/skel
#创建邮件
CREATE_MAIL_SPOOL=yes
三. 用户管理命令
useradd 添加用户
usermod 修改用户信息
userdel 删除用户
-r 同时删除用户的家目录
四.组管理
groupadd 创建组
-g 指定gid
-r 创建系统组
groupmod 修改组信息
四.组管理
groupadd 创建组
-g 指定gid
-r 创建系统组
groupmod 修改组信息
-g 修改组gid
-n 修改组名称
groupdel 删除组
注意:如果一个组是一个用户的主组,那么该组不能被删除.,一个用户必须有一个主组.
gpasswd (创建组密码:gpasswd 组名)
-a 将某个用户加入到某个组
-M 将多个用户加入到某个组
-A 指定某个用户为某个组的组长,除了root以外该用户也可以执行gpasswd -a,将一个用户添加到组长所在的组里.
-d 把一个用户从一个组里删除
newgrp
将一个用户临时加入到一个组中,可以执行这个组所对应的权限,但需要输入组的密码.退出登录,也会退出该组
语法: newgrp 组名