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