4,Linux命令-权限管理

2020-07-08 00:00:00 用户 命令 文件 权限 用户组

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 访问控制列表)

一个针对文件/目录的访问控制列表,分为用户,用户同组人员,用户不同组人员

相关文章