Linux权限

本文介绍了Linux下的权限系统,包括用户身份如u、g、o和a,以及读、写、执行权限。讨论了用户分类,如root用户和普通用户,以及如何切换用户。详细阐述了如何通过chown和chgrp改变文件的所有者和组,以及使用chmod修改权限。此外,还提到了文件和目录的默认权限,如umask影响的初始权限,以及粘滞位在多用户环境中的作用。
摘要由CSDN通过智能技术生成

一、权限的理解

Linux下的身份

u -user 拥有者

g -group 所属组

o -other 其它人

a -all  以上所有

权限与身份对应

linux下,一个用户对于某个dir或file,只能有唯一一种身份,而每种身份所对应的权限大小/有无是确定的。

 这是一般情况下的权限。对于一个dir或file你是否具有以下功能。

读(r):read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
写(w):write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

注:权限还对应事物属性。例如对于一个文本文件,它本身就是无法执行的,此时无论你是怎样的身份,都不可能做到执行该文件。

二、用户分类

创建/删除用户

分为超级用户root和普通用户。

root用户拥有一切权限,例如:该文件不让其它人读写,但是root可以。同时我们可以使用sudo指令让某个用户的某条命令短暂提权,但需要提前加入到白名单中。

我们可以在root账号下,使用adduser增加账户,deluser -r 递归删除该用户相关的dir和file

用户间的切换

使用su指令+用户名  来切换用户  (root到普通用户,不用密码。普通用户之间互相切换需要。普通用户到root都需要密码)

且su仅仅改变用户,改变后工作目录pwd不变。

使用su - 切换到root账号,且回到  /root 目录下。

用户与身份间的对应关系

 root和普通用户,都可以作为任意一个dir/file 的o/g/o,但是root可以无视权限限制。

更改用户与身份间的对应关系

 每次新创建一个 dir/file 它的默认  user和group都是本身。

注:对于other这里没有给出。因为当other操作该dir/file时,会自动对比这个other用户是否与user和group相同,因此没必要也做不到在 属性这里列出来。

chown

功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
chgrp

功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组

由于改变身份与用户的对应关系需要两方面的权限(既要给出去,又要允许接收,普通用户不使用sudo提权是无法完成的)

这里我切换回root,将Tohka用户下的dir文件的拥有者和所有组都改为LZF。-R是将dir和其下面所有的子目录/文件的 g/u 都改变。

三、不同身份对应权限的修改 

chmod

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
chmod
用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

同时,由于仅有r/w/x 3种权限,因此可以用1个八进制的数来表示3个二进制数,1/0表示是否拥有该权限。

 由于之前我已经把dir/file的u/g权限都交给了LZF,此时Tohka便不能修改了。

之前讲过,每次创建一个用户,其家目录都是700的权限,即自己有所有权限,group和other没有任何权限,因此普通用户LZF是打不开另一个普通用户Tohka的家目录的,更别说改变其中dir目录的权限了。

可以这样理解:之前改变Tohka下的dir目录的user和group时,需要借助root的权限,因此想要

改变这个不在自己目录下的dir的权限时,也是需要root权限的。

这里我用a+rwx,给所有身份都加上了所有权限,等价于chmod 777

四、文件/目录权限/粘滞位

从上面的规则可以知道:只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。

例如:在多人协同开发时,由于普通用户不能相互进入各自的/home,因此需要在/home外创建一个目录(如DIR),可以将DIR设置为777,其它用户可以通过x进入DIR,r读取DIR内的子目录和file,w目录增加或减少或修改 子目录/file。

但是这里有个问题,如果用户A在DIR下创建了一个目录,但是没有给用户B写(w)权限,但是由于目录rwx的原因,可以删除别人的目录/文件,这一点是矛盾的。

为了解决这个问题,增加了粘滞位权限。(只能给目录添加,防止该目录下的子目录/file被普通用户之间互删)。

  五、dir/file初始化权限问题 

 在Tohka下新创建一个目录dir和文件file,可以发现

目录初始权限为:775    文件初始权限为:664

为了保护文件,other的w权限默认都是没有的。对于文件,都是先默认没有执行权限。

这是由于umask系统默认的权限掩码导致的。(没有时为777和666)

默认权限=权限&(~umask)(umask中出现的,最终的权限就不会出现)

只看后3位,默认为002,即 000  000  010,将other的写权限去掉 

目录

一、权限的理解

Linux下的身份

权限与身份对应

二、用户分类

创建/删除用户

用户间的切换

用户与身份间的对应关系

更改用户与身份间的对应关系

三、不同身份对应权限的修改 

四、文件/目录权限/粘滞位

​编辑 

五、dir/file初始化权限问题 


评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值