Linux权限管理:基本权限详解

权限管理

概述

如果你有一个软件开发团队,你希望团队中的每个人都可以使用某一些目录下的文件,而非团队的其他人则不予以开放。通过前面章节的学习我们知道,只需要将团队中的所有人加入新的群组,并赋予此群组读写目录的权限,即可实现要求。反之,如果你的目录权限没有做好,就很难防止其他人在你的系统中乱搞。

比如说,本来 root 用户才能做的开关机、ADSL 拨接程序,新增或删除用户等命令,一旦允许任何人拥有这些权限,系统很可能会经常莫名其妙的挂掉。而且,万一 root 用户的密码被其他人获取,他们就可以登录你的系统,从事一些只有 root 用户才能执行的操作,这是绝对不允许发生的。

因此,在服务器上,绝对不是所有的用户都使用 root 身份登录,而要根据不同的工作需要和职位需要,合理分配用户等级和权限等级。

什么是权限:

操作系统对用户能够执行的功能所设立的限制,主要用于约束用户能对系统所做的操作,以及内容访问的范围

为啥要有权限:

因为在公司中,服务器可能就那么几台,但是运维可能有多个,我们多个运维要登录同一台服务器,那么不可能只有一个root用户,我们需要根据运维的等级,来分配用户权限。

权限与用户:三种身份,分别对应三种权限

例如:

当我们使用ls -l查看一个文件的详细属性时,能看到每个文件都有一个9位基本权限位

三个一组,分别是:属主权限位,属组权限位和其他用户权限位。

Linux通过这些权限位来控制文件用户(属主)、用户组(组内用户)以及其他用户对文件的访问权限。例如,下面这个root组内成员对文件有r和x权限。

图片[1]-Linux权限管理:基本权限详解-不念博客

各自代表含义:

字母含义对应数字
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