Linux权限概念

权限的理解

 

从整体来看,在Linux系统下存在两种用户,一种是超级用户,也就是管理员用户,另一种是普通用户。显而易见点的是这两种用户的受到的限制是不一样的,可以将权限粗略地理解为——用户是否具备进行某种操作的能力。用户间的切换可以采用 su [用户名]指令来进行。

文件权限管理

文件访问者的角度来看,存在三种文件访问者:

1,u--user

2,g--group

3,o--other

如上图所示,最前面的十个字符代表的是文件的访问权限与文件的类型。

第一位表示文件类型:d表示目录,-表示普通文件,l表示软链接(类似Windows的快捷方式),b表示块设备文件(例如硬盘,光驱),p表示管道文件,c表示字符设备文件(例如屏幕),s表示套接口文件。

后九位每三位为一组,分别表示文件所属者的权限,文件所属者所在的组的权限,其他用户的权限。

举个形象的例子就是:林三是文件的所属者,他在一家公司打工,这个公司有几个组相互竞争,林三不想让其他人有访问文件的权限,但想让自己的组员可以访问权限,这个时候他的组员就有了“文件所属者所在的组”的权限。

r对文件而言表达的是读取文件内容的权限,对目录而言表达的是浏览目录信息的权限

w对文件而言表达的是修改文件内容的权限,对目录而言表达的是删除或者移动文件的权限

x对文件而言表达的是执行文件的权限,但值得注意的是文件是否是可执行文件;对目录而言表达的是能否进入目录的权限。

这样一来,我们就可以用八进制来表达这些权限,例如111表达的是rwx,可读可写可执行文件,101表达的是r-w,可读不可写可执行文件。

文件访问权限的设置方法

chmod [参数] 权限 文件名

权限字符

+:向权限范围增加权限符号所代表的权限

- :向权限范围取消权限符号所代表的权限

=:向权限范围赋予权限符号所代表的权限

用户符号

u:拥有者

g:拥有者所属组

o:其他用户

a:所有用户

举例

# chmod u+w /home/abc.txt

# chmod o-x /home/abc.txt

除此之外,我们还可以通过八进制直接更改多个类别的用户权限

比如说:# chmod 640 /home/abc.txt

更改文件拥有者的命令

chgrp [参数] 用户组名 文件名

更改文件拥有者所属组的命令

chgrp [参数] 用户组名 文件名

umask

新建文件默认权限=0666

新建目录默认权限=0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。

原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask。

在这行命令mask & ~umask中,&~是位运算符,用于对文件权限掩码进行操作。

  1. & 运算符是位与(AND)运算符:

    • 当对两个二进制数字进行位与运算时,如果相应的位都是1,则结果的相应位为1;否则,结果的相应位为0。
  2. ~ 运算符是按位取反(NOT)运算符:

    • 当对一个二进制数字进行按位取反运算时,所有的0将变为1,所有的1将变为0。

在Linux中,文件权限由一个3位的掩码来表示,即读取(r)、写入(w)和执行(x)权限,分别用数字表示为4、2和1。例如,读取和写入权限被表示为6(4 + 2),读取和执行权限被表示为5(4 + 1)。

umask是一种权限掩码,用于在创建新文件时从默认权限中去除某些权限。默认情况下,新创建的文件会继承一定的权限,但umask允许通过禁用一些权限来增加文件的安全性。

所以,mask & ~umask这行命令将对mask(文件权限掩码)和umask(要去除的权限掩码)进行按位与和按位取反运算,从而得到新的权限掩码,用于限制文件的访问权限。

超级用户默认掩码值为0022,普通用户默认掩码值为0002

file指令

file [选项] 文件或目录

用来辨别文件的类型,常用选项:

-c 详细显示指令执行过程,便于排错或分析程序执行的情形。

-z 尝试去解读压缩文件的内容

使用sudo分配权限

$ sudo –u 用户名 命令

实例:$sudo -u root /usr/sbin/useradd u2

粘滞位

为何要有粘滞位?

不妨设想一个情景:林三对一个文件设置了权限,将其他用户的权限设置为000,也就是说对文件无法进行任何的读写操作。此时王五对于自己被隔绝在外心怀不满,于是直接将这个文件给删除了,这岂不是十分地不妙。

基于这一点,粘滞位应运而生。

当一个目录被设置为"粘滞位"(用chmod +t),

则该目录下的文件只能由

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值