🌱博客主页:青竹雾色间
🌱系列专栏:Linux
😘博客制作不易欢迎各位👍点赞+⭐收藏+➕关注
目录
- 1. Linux权限概念
- 2. 文件访问者分类
- a) 文件和目录的访问者:
- b) 文件类型和访问权限
- 3. 文件权限值的表示方法
- a) 字符表示方法
- b) 8进制数值表示方法
- 4. 文件访问权限的设置方法
- a) chmod
- i) 用户符号+/-=权限字符
- ii) 三位8进制数字
- b) chown
- c) chgrp
- d) umask
- 示例
- e) sudo分配权限
- (1) 修改/etc/sudoers 文件分配文件
- (2) 使用 sudo 调用授权的命令
- 5. 目录的权限
- 6. 粘滞位
- 7. 关于权限的总结
Linux作为一种多用户、多任务的操作系统,合理的权限管理显得尤为重要。本文将详细介绍Linux权限的概念、不同类型的权限、权限设置以及相关命令。
1. Linux权限概念
在Linux系统下,有两种主要的用户:超级用户(root)和普通用户。
- 超级用户(root):
- 可以在Linux系统下进行任何操作,拥有最高权限,不受限制。
- 命令提示符为
#
。
- 普通用户:
- 在Linux下拥有有限的权限。
- 命令提示符为
$
。
2. 文件访问者分类
a) 文件和目录的访问者:
- 文件和目录的所有者:u - User(文件所有者,通常是文件创建者)
- 文件和目录的所有者所在的组的用户:g - Group(文件所有者所在的用户组)
- 其他用户:o - Others(系统中除了文件所有者和所在组的其他用户)
b) 文件类型和访问权限
-
文件类型:
- d:文件夹
- -:普通文件
- l:软链接(类似Windows的快捷方式)
- b:块设备文件(例如硬盘、光驱等)
- p:管道文件
- c:字符设备文件(例如屏幕等串口设备)
- s:套接口文件
-
基本权限:
- 读(r/4):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
- 写(w/2):对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
- 执行(x/1):对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
- “-”:表示不具有该项权限
3. 文件权限值的表示方法
a) 字符表示方法
- 权限表示:
- r:读权限
- w:写权限
- x:执行权限
b) 8进制数值表示方法
- 权限表示:
- r:4
- w:2
- x:1
4. 文件访问权限的设置方法
a) chmod
- 功能:设置文件的访问权限
- 格式:
chmod [参数] 权限 文件名
- 常用选项:
- R:递归修改目录文件的权限
i) 用户符号+/-=权限字符
-
u 表示用户
-
g表示用户组
-
o表示其它
-
a表示所有
-
+:向权限范围增加权限代号所表示的权限
-
-:向权限范围取消权限代号所表示的权限
-
=:向权限范围赋予权限代号所表示的权限
示例:
chmod a+x a.txt #给所有用户给予a.txt文件可执行权限
chmod o-x a.txt #其它用户取消执行a.txt文件的权限
ii) 三位8进制数字
示例:
chmod 764 a.txt # 111(rwx) 110(rw-) 100(r--)
b) chown
- 功能:修改文件的拥有者
- 格式:
chown [参数] 用户名 文件名
示例:
chown user1 f1
c) chgrp
- 功能:修改文件或目录的所属组
- 格式:
chgrp [参数] 用户组名 文件名
- 常用选项:
-R
递归修改文件或目录的所属组
示例:
chgrp users /abc/f2
d) umask
-
功能:查看或修改文件掩码
-
格式:
umask 权限值
在 Linux 系统中,umask
(用户文件创建掩码)是一个非常重要的概念,它影响着用户创建新文件和目录时的默认权限设置。凡是在umask中出现的权限,不会在最终的文件权限中存在。
权限掩码的工作原理
Linux 文件系统的权限由三组构成:所有者(owner)、组(group)和其他(others)。每组可以拥有读(read, r)、写(write, w)和执行(execute, x)权限。
umask
的值是一个八进制数,它与文件的默认权限相结合,以确定新文件或目录的实际权限。默认情况下,新文件的权限通常是 666
(可读可写),新目录的权限通常是 777
(可读可写可执行)。umask
值中的每一位都与默认权限相减,从而得到最终的权限。
常见 umask
值及其含义
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是:最终权限=起始权限&(~ unmask)
umask 022
:这是默认设置,意味着新文件默认权限为644
,新目录的默认权限为755
。umask 002
:相比022
,这个设置允许组和其他用户也能写入新创建的文件和目录,文件默认权限为664
,目录默认权限为775
。
如何使用 umask
要查看当前的 umask
值,只需在终端输入 umask
命令。要设置新的 umask
值,可以使用如下格式:
umask [权限值]
例如,要设置 umask
为 044
,可以输入:
umask 044
之后再次输入 umask
命令,可以查看到新设置的值。
示例
以下是如何使用 umask
命令的示例:
umask 044 # 设置新的umask值
umask # 查看当前的umask值
通过合理配置 umask
,可以提高系统的安全性,防止新文件或目录被默认设置为过于开放的权限。
e) sudo分配权限
(1) 修改/etc/sudoers 文件分配文件
- 格式:
接受权限的用户登陆的主机 =(执行命令的用户) 命令
(2) 使用 sudo 调用授权的命令
示例:
sudo -u 用户名 命令
sudo -u root /usr/sbin/useradd u2
5. 目录的权限
- x-可执行权限:如果目录没有可执行权限,则无法cd到目录中。
- r -可读权限:如果目录没有可读权限,则无法用ls等命令查看目录中的文件内容。
- w-可写权限:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件。
6. 粘滞位
为了解决普通用户可以删除其他用户文件的问题,Linux引入了粘滞位的概念。
- 当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由:
- 超级管理员删除
- 该目录的所有者删除
- 该文件的所有者删除
ps:t
是特殊的x
权限
示例:
chmod +t /home/ # 加上粘滞位
7. 关于权限的总结
- 目录的可执行权限:表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录。
- 目录的可读权限:如果目录没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,仍然没有权限读出目录下的文档。
示例:
chmod 0777 /home/
chmod 740 /etc/sudoers
在Linux系统下,合理的权限管理是系统安全的关键。通过本文的介绍,相信您对Linux权限管理有了更深入的了解。