我与Linux的爱恋:权限


外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

🔥个人主页guoguoqiang. 🔥专栏Linux的学习

Alt

Linux 权限管理

1.文件访问者的分类

Linux下有两种用户:超级用户(root)、普通用户。
1.超级用户(root)
root用户可以在Linux系统下做任何事情不受限制
2.系统用户(System Users):
系统用户是出于系统服务和管理任务需要创建的用户。这些用户通常不是为人而设的,而是为了让特定的服务(如web服务器进程、数据库服务等)运行在特定的权限下。
3.普通用户(Regular Users):
只能在linux下做有限的事情
4.虚拟用户(Virtual Users):
虚拟用户并非Linux系统本身使用或创建的用户账户,而是由一些具体应用程序(如FTP服务)为了特定需求而创建的用户。
这些用户可能没有系统上的一个真正的主目录,它们的用户信息可能存储在应用程序特定的数据库中。
5.用户组(Groups):
Linux中还有一个“用户组”的概念,这是将用户分类的一种方式。一个用户可以属于一个或多个用户组。
用户组允许你为一组用户设定特定的权限。这样,你可以授予特定组对特定文件或目录的访问权限,而无需逐一为每个用户设置。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
命令: su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su
root(root可以省略),此时系统会提示输入root用户的口令

2.文件类型和访问权限

Linux权限分为三类
1.读(r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
2.写(w/2): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
3.执行(x/1): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
4.“—”表示不具有该项权限
权限又分别给三个用户
1.文件拥有者(Owner):创建文件或目录的用户,拥有对该文件或目录的默认权限。
2.用户组(Group):文件拥有者所在的用户组。在Linux中,一个用户可以属于多个用户组,但是每个文件有一个主要的用户组。
3.其他用户(Others):除了拥有者和用户组以外的所有用户
在这里插入图片描述

​我们看到一个文件对应查看时,第一部分就是owner拥有者,第二部分为组,第三部分为其他用户 还包含了文件大小 以及文件最后的修改时间 还有文件名

文件类型:
d:文件夹
-:普通文件(文本文件,可执行程序,库等都叫普通文件)
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
​linux不通过后缀来区分文件类型,但是linux上面的工具(如gcc)可能会区分!
在这里插入图片描述

3.文件访问权限的相关设置方法

chmod 和 chown 是两种用于管理Linux文件和目录权限的命令。它们用途分明,以下是每个命令的基本使用方法:
1.chmod(对文件的权限进行修改)
可以通过符号模式来对文件的权限进行修改
在符号模式下,您可以为特定的用户(u:用户,g:组,o:其他,a:所有)指定要添加(+)、删除(-)或设置(=)的权限(r:读,w:写,x:执行)。
例如 可以给文件拥有者增加全部权限

chmod u+x+w+r filename

删除组的写权限

chmod g-w  filename

给其他用户设置只读权限

chmod o=r filename

然后值得注意的是 a代表ugw全部
给所有用户增加执行权限

chmod a+x filename

使用数字模式:
在数字模式中,权限由数字表示:4 stands for “读”(r),2 for “写”(w),1 for “执行”(x)。要为一个文件或目录设置权限,您需要为用户、组和其他用户选择它们的权限值。
给文件拥有者全部权限,给组读权限,给其他用户读权限

chmod 744 filename

如果想要移除所有账户的全部权限

chmod 000 filename

在这里插入图片描述
在这里插入图片描述
root账号不受权限的约束
在这里插入图片描述
然而对于普通用户来说,自身要受对应权限的约束,哪怕文件是自己的
2. chown(改变文件或目录的所有者)
chown 命令用于改变文件或目录的所有者和/或所属组。
chown [参数] 用户名 文件名
改变文件的拥有者

chown newowner filename

改变文件的拥有者和所属组

chown newowner:newgroup filename

只改变组别

chown :newgroup filename

chgrp newgroup filename

使用 chmod 和 chown 命令通常需要管理员权限,因此在使用它们时一般需要在命令前添加 sudo,这取决于您是否有足够的权限来对文件或目录进行更改。这里可以用su把自己变为root再修改

在Linux和其他类Unix系统中,“可执行权限”(execute permission),表示为 x,是用于控制用户或用户组是否有权限执行某个文件的一种文件权限。理解可执行权限需要考虑两种情况:对文件的可执行权限和对目录的可执行权限。
对文件拥有执行权限
当一个文件具有执行权限,意味着用户可以告诉操作系统运行这个文件。

./ adout.o

如果该文件没有可执行权限,您尝试执行它时会遇到 “Permission denied” 的错误。
对目录拥有可执行权限(x)
可执行权限表示用户(或用户组)能够"进入"该目录
如果一个目录没有可执行权限,即使用户有该目录的读(r)权限,也无法列出目录内容。此外,即使知道文件的完整路径,也无法直接访问目录中的文件,因为遍历该目录需要可执行权限。
在这里插入图片描述
在这里插入图片描述
创建的目录文件,起始权限是包含x的,普通文件,起始权限是去掉x的

4.umask

在Linux系统中,文件通常默认具有666(-rw-rw-rw-)的权限,而目录通常默认具有777(drwxrwxrwx)的权限。这些权限是在没有umask值作用时的默认权限。umask值用来从这些默认权限中减去特定的权限,以提供不同的默认设置。
假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
umask值默认为002
例如,如果umask值设置为022:

新文件将有 644(666-022)的权限,即 -rw-r–r–(所有者读写,组和其他只读)。
新目录将有 755(777-022)的权限,即 drwxr-xr-x(所有者读写执行,组和其他只读执行)。
当你要查找当前的umask值时只需输入umask

umask

一般建议设置umask值为022或者027

umask 022

umask的设置对系统安全非常重要。太宽松的umask(例如 ‘000’)可能会导致新创建的文件和目录过于开放,任何用户都可以读写执行,这是一个严重的安全风险。因此,通常推荐具有合理限制的umask设置,例如022或027,以确保系统不会无意中暴露敏感文件.
在这里插入图片描述

5.粘滞粒

当粘滞位设置在目录上时,它影响该目录中文件的删除。粘滞位可以确保只有文件的所有者或根用户(root)可以删除或重命名目录内的文件。
系统利用粘滞位可以防止用户删除或重命名不属于他们的文件。即便用户有目录的写权限,没有粘滞位他们也不能删除他人的文件。
设置粘滞粒
我们可以通过chmod来添加

chmod +t dir

那如果要取消粘滞粒呢?

chmod -t dir

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

权限设置表示法
使用八进制数字设置粘滞位时,前面会增加一个 1:

1777:代表所有用户都有读写执行权限,并且设置了粘滞位。
1755:代表所有者有读写执行权限,组和其他用户有读执行权限,并且设置了粘滞位。

本篇内容到此结束,感谢大家观看!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值