linux之用户、组及权限管理
用户、组和权限管理
每个使用者:
用户标识、密码
组:用户组,用户容器
用户类别:
管理员
普通用户
系统用户
登录用户
用户标识: UserID,UID
16bits二级制数字:0-65535
管理员:0
普通用户:1-65535
系统用户:1-499(Centos6),1-999(Centos7)
登录用户:500-60000(Centos6),1000-60000(Centos7)
名称解析:名称转换
Username <--> UID
根据名称解析库进行:/etc/passwd
组类别1:
管理员组
普通用户组
系统组
登录组
组标识:GroupID, GID
管理员组: θ
普通用户组: 1-65635
系统用户组:1-499(Centos6), 1-999(Centos7)
登录用户组:500- 60000(Centos6),1000- 60000(Centos7)
名称解析:Groupname <--> GID
解析库:/etc/group
组类别2:
用户的基本组
用户的附加组
组类别3:
私有组:组名同用户名,且只包含一个用户
公共组:组内包含了多个用户
认证信息:
通过比对事先存储的,与登录时提供的信息是否一致:
password:
/etc/shadow
/etc/gshadow
加密算法:
对称加密:加密和解密使用同一个密码:
非对称加密:加密和解密使用的一对儿密钥:
密钥对儿:
公钥: public key
私钢: private
单向加密:只能加密,不能解密:提取数据特征码
定长输出
雪崩效应
算法:md5...
/etc/passwd:用户的信息库
name : password:UID:GID:GECOS: directory : shell
name:用户名
password:可以是加密的密码,也可是占位符x
UID:
GID:用户所属的主组的ID号
ECOS:注释信
directory:用户的家日录
shell
ll:用户的默认shell,登录时默认shel1程 序
/etc/shadow:用户密码
用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段
/etc/group:组的信息库
group_name:password:GID:user list
user_list: 该组的用户成员:以此组为附加组的用户的用户列表
Linux用户和组管理
安全上下文:
进程以发起者的身份运行
进程对文件的访问权限,取决于发起此进程的用户的权限
系统用户:为了能够让那后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从不用登录系统
groupadd:添加组
-g:指定GID:默认是上一个组的GID加一
-r:创建系统组
groupmod:修改组属性
-g:修改GID
-n:new_name,修改组名
groupdel:删除组
useradd:创建用户
-u:指定UID
-g:指定基本组ID, 此组得事先存在
-G:指明用户所属的附加组,多个组之间用迅号分隔
-c: 指明注释信息
-d:以指定的路径为用户的家目录:通过复制/etc/skel此目录并重命名实现:指定的家目录路径如果事先存在,则不会为用户复制环境配置文件
-s:指定用户的默认shell, 可用的所有shell列表存储在/etc/shells文件中
-r:创建系统用户
注意:创建用户时的诸多默认设定配置文件为/etc/login.defs
useradd -D: 显 示创建用户的默认配置
useradd -D 选项:修改默认选项的值
修改的结果保存于/etc/default/useradd文件中
usermod命令:修改用户属性
usermod [选项]登陆
-u:修改用户的ID为此处指定的新UID
-g:修改用户所属的基本组
-G:修改用户所属的附加组:原来的附加组会被覆盖;
-a:与-G-同使用,用于为用户追加新的附加组
-c:修改注释信息
-d:修改用户的家日录:用户原有的文件不会被转移至新位置
-m:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录
-1:修改用户名
-s:修改用户的默认shell
-L:愤定用户密码:即在用户原来的密码字符串之前添加一个"!"
-U:解锁用户的密码
userdel命令:删除用户
-r:删除用户时一并删除其家目录
passwd命令:
passwd:修改用户自己的密码
passwd USERNAME:修改指定用户的密码,但仅root有此权限
gpasswd命令:
组密码文件:/etc/gshawod
-a USERNAME:向组中添加用户
-d USERNAME:从组中移除用户
newgrp命令:临时切换指定的组为基本组
newgrp [-] [group]
-:会模拟用户重新登陆以实现初始化其工作环境
chage命令:更改用户密码过期信息
id命令:显示用户的真和有效ID
su命令:
登陆式切换:会通过读取目标用户的配置文件来重新初始化
su - USERNAME
su -l USERNAME
非登录式切换:不会读取目标用户的配置文件进行初始化
su USERNAME
注意:管理员可无密码切换至其他任何用户
linux权限管理
ls -l
rwxrwxrwx:
左三位:定义user的权限
中三位:定义group的权限
右三位:定义other的权限
进程安全上下文:
进程对文件的访问权限应用模型:
进程的属主与文件的属主是否相同:如果相同,则应用属主权限
否则,则检查进程的属主是否属于文件的属主:如果是,则应用属组权限
否则,就只能应用other权
权限:
r:read,读权限
w:write,写权限
x:excute,执行权限
文件:
r:可获取文件的数据
w:可修改文件的数据
x:可将此文件运行为进程
目录:
r:可使用ls命令获取其下的所有文件列表
W:可修改此日录下的文件列表:即创建或删除文件
x:可cd至此目录中,且可使用1s -l来获取所有文件的详细属性信息
注:-为没有读权限
权限组合机制(八进制权限组合法):
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 110 7
权限管理命令:(u属主 g属组 o其他 a所有)
chmod命令:
chmod u=rwx g=rwx o=rwx 文件(直接操作一类用户的所有权限位rwx)
chmod(u- g+ g- o+ o- a+ a-)文件(直接操作一类用户的一个权限位)
选项:
-R:递归修改
chown命令:
chown(修改属主和属组)
chgrp命令:
chgrp group file
umask:文件的反向掩码,遮罩码:
文件:
666-umask
目录:
777-umask
注:之所以文件用666去减,表示文件默认不能拥有执行权限:如果减得的结果有执行权限,则需要将其加一
unask: 023
666- 023=644
777- 023=754
umask命令:
umask:查看当前umask
umask MASK:设置umask
注意:此类设定仅对当对shell进程有效
install命令:
单源复制:
install 源 目
将某个文件复制到某个目录下
多源复制:
创建目录:
install -d 123 :创建文件123
常用选项:
-m:设置文件权限,默认为755
-o:设置目标文件属主
-g:设置目标文件属组