4,Linux命令-权限管理
1,Linux的用户分类
Linux是一个多用户的操作系统,它允许多个用户同时登录系统并操作系统资源。
各个用户之间的进程,任务互不干扰。
Linux用户分类
超级用户:root uid=0
普通用户:uid 500-60000
用户组
每个用户组可以包含多个用户
每个用户至少属于一个用户组
相关配置文件
/etc/passwd 保存用户信息
/etc/shadow 保存密码信息
/etc/group 保存用户组信息
/etc/gshadow 保存用户组密码信息
配置文件信息详解
用户名:密码位:UID:GID:描述信息:宿主目录:命令解析器
2,Linux用户组的操作
操作用户组
Groupadd 组名
Groupmod -n 新组名 旧组名
Groupdel 组名
Groups 显示用户所属的组
默认创建一个用户,也会自动创建一个用户组
3,操作用户
创建用户,并设置密码
useradd -g 组名 用户名
passwd 用户名
修改用户所属的组
usermod -g 组名 用户名
4,文件权限-理解1-10位的描述符
R 读的权限(read)
W 写的权限(write)
X 执行的权限(execute)
第1位:文件类型(d目录,-文件,l链接文件)
第2-4:所属用户的权限(u user)
第5-7:所属组权限(g group)
第8-10:其他用户权限(o other)
上述信息表示:
一个文件,
所属用户具有读写执行的权限,
所属组的用户具有读写执行的权限,
其他用户只有读的权限
5,更改文件的权限
Chmod 修改文件的权限(change mode)
更改操作的权限,有两种方案:
字符表示法
数字表示法
常用参数:
-r 下面的子目录做相同的权限操作(recursive)
案例:
给文件添加执行权限
chmod u+x startall.sh
Chmod u/g/o +rwx 文件夹名/文件名
通过数字统一设置权限
chmod 700 startall.sh
700表示什么意思?
6,sudo机制
作用:超级用户给普通用户赋予权限
区别于su,超级管理员可以给普通用户开放超级管理员的权限,但是不需要给普通用户公开其密码
/etc/sudoers文件,该文件默认是只读文件,需要管理员身份才能操作
所以我们采用直接输入visudo命令即可
sudoers文件的权限命令格式
root ALL=(ALL) ALL
用户名 被管理主机的地址 =(可使用的身份) 授权命令(路径)
(ALL)可以省略
kobe ALL=(ALL) /sbin/shutdown -r now
kobe ALL=(ALL) /usr/sbin/useradd
kobe ALL=/usr/bin/passwd 危险:这个授权用户可以改了root的密码
kobe ALL=/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
查看命令的路径:whereis 命令名
查看当前用户拥有的sudo权限:sudo -l
普通用户执行命令:sudo /usr/sbin/useradd kk
7,关于权限管理的补充
一般我们的业务系统采用的权限管理模型是RBAC(Role-Based Access Control基于角色的权限管理)
所以,一般我们的表设计会包含如下:
而linux的权限管理是基于ACL(Access Control List 访问控制列表)
一个针对文件/目录的访问控制列表,分为用户,用户同组人员,用户不同组人员
相关文章