权限管理
概述
如果你有一个软件开发团队,你希望团队中的每个人都可以使用某一些目录下的文件,而非团队的其他人则不予以开放。通过前面章节的学习我们知道,只需要将团队中的所有人加入新的群组,并赋予此群组读写目录的权限,即可实现要求。反之,如果你的目录权限没有做好,就很难防止其他人在你的系统中乱搞。
比如说,本来 root 用户才能做的开关机、ADSL 拨接程序,新增或删除用户等命令,一旦允许任何人拥有这些权限,系统很可能会经常莫名其妙的挂掉。而且,万一 root 用户的密码被其他人获取,他们就可以登录你的系统,从事一些只有 root 用户才能执行的操作,这是绝对不允许发生的。
因此,在服务器上,绝对不是所有的用户都使用 root 身份登录,而要根据不同的工作需要和职位需要,合理分配用户等级和权限等级。
什么是权限:
操作系统对用户能够执行的功能所设立的限制,主要用于约束用户能对系统所做的操作,以及内容访问的范围
为啥要有权限:
因为在公司中,服务器可能就那么几台,但是运维可能有多个,我们多个运维要登录同一台服务器,那么不可能只有一个root用户,我们需要根据运维的等级,来分配用户权限。
权限与用户:三种身份,分别对应三种权限
例如:
当我们使用ls -l查看一个文件的详细属性时,能看到每个文件都有一个9位基本权限位
三个一组,分别是:属主权限位,属组权限位和其他用户权限位。
Linux通过这些权限位来控制文件用户(属主)、用户组(组内用户)以及其他用户对文件的访问权限。例如,下面这个root组内成员对文件有r和x权限。
各自代表含义:
字母 | 含义 | 对应数字 |
r | 可读 | 4 |
w | 可写入权限 | 2 |
x | 可执行权限 | 1 |
– | 没有权限 | 0 |
比如 -rw-r--r-- 这个文件的权限是(4+2) 4 4 即644
计算
# stat sky.txt
File: ‘001.txt’
Size: 23 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051dInode: 33575027 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2022-08-22 19:47:05.688543664 +0800
Modify: 2022-08-22 19:46:03.985548484 +0800
Change: 2022-08-22 19:46:03.987548484 +0800
Birth: -
# stat -c %a sky.txt 显示权限数字
644
设置和修改文件或目录权限:chmod命令
chmod用来修改文件或目录权限,只有文件的属主和root才能用这个命令
# 语法
chmod mode(模式) file
# 选项
-R 递归处理指定目录及其子目录下所有文件
# 模式一:数字(推荐)
格式:
chmod 数字 文件
# 模式二:用u g o a或者不写
chmod 用户类型 +-= 权限字符 文件名
u 代表属主user
g 代表属组group
o 代表其他用户other user
a或者不写 代表上面全部(all)
例如
chmod o+w 文件
所有权限都加
chmod a+w/r/x 文件
chmod +w/r/x 文件
普通文件对应权限的详细说明
r 可以看看内容 cat
w 可以修改、删除 echo、vim
# 注意:删除、移动或创建文件等的权限是受父目录(上一级目录)的权限控制的。
(因为文件名是在上级目录的block里存放着的。若修改上级目录的block (比如你要删文件),会受到上级目录的的权限控制),与文件本身的权限无关。因此,文件本身的可写 w 权限,与文件是否能被删除和改名无关。
eg:普通用户xxx想删除自己的文件,即使有w属性也不行。但如果把其上级目录授权为xxx用户且有w权限,则可删除。(ll -d查看)
x 可执行 比如执行脚本
# 对于可执行权限x,需要注意以下3点:
- 首先文件的本身要能够执行(文件为命令或脚本)。
- 如果是普通用户,同时还需要具备可读权限r配合才能执行文件。
- 如果是root用户,只要有可执行×的权限就能执行文件。
文件的w或x权限要顺利生效,必须要有r的配合。因为读不了内容,修改和执行都是有问题的。
比如,没有r的配合,用vim时会提示无法编辑,可以用echo追加
目录对应权限的详细说明
r 查看目录里有什么 ll 不能创建文件 看的下面是乱码
w touch 只w啥也干不了
x tree 只x啥也干不了
rw 可读可写 可以看 但是目录下是乱码 不能创建
wx 可创建文件 但无法查看目录内容
rx 可看可执行 可看目录内容属性 不在是乱码 但不能创建文件
rwx 啥都可以
# 总结:
# 对于目录
r权限表示可以浏览目录下的内容(ls以及1s-1)
w权限表示可以删、改目录下的文件,以及在目录下创建文件,
x权限表示可以切换到目录下。
没有x权限的配合,即使有w权限也无法删除和创建文件。
没有x权限的配合,即使有r权限,在查看目录内容区目录下的内容属性时也会报错或者显示问号,但依然可以看到列表的文件名。
更改文件属主属组命令chown
# 语法
chown 选项 用户:用户组 文件或目录(:也可用.代替,但建议用:,防止以为是小数点)
# 常用格式
chown 用户 文件或目录 (仅授权用户)
chown :用户组 文件或目录 (仅授权用户组)
chown 选项 用户:用户组 文件或目录 (同时授权)
-R:递归修改目录下所有文件的用户和用户组
示例1:
chown bin dir/ //修改所属主为bin
ll -d dir/ //检查属主
drwxr-xr-x 2 bin root 4096 7月 22 00:50 dir/
示例2:
chown :adm dir/ //修改所属组为adm
ll -d dir/ //检查属组
drwxr-xr-x 2 bin adm 4096 7月 22 00:50 dir/
示例3:
chown -R root.root dir/ //递归修改目录及目录下的所有文件属主和属组
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END