linux文件权限有几种(文件权限之特殊权限)
Linux下一切皆文件, 是文件就要有权限,Linux中将文件面对的人分为三种:分别是拥有者,所属组,其他(other)这三种人有不同的权限,其中other是除了拥有者和所属组之外的人拥有者一般用u表示所属组一般用g表示other就是用o表示对于一个文件,一般的权限就是读(r),写(w),执行(x),今天小编就来说说关于linux文件权限有几种?下面更多详细答案一起来看看吧!
linux文件权限有几种
一、权限介绍Linux下一切皆文件, 是文件就要有权限,Linux中将文件面对的人分为三种:分别是拥有者,所属组,其他(other)这三种人有不同的权限,其中other是除了拥有者和所属组之外的人拥有者一般用u表示所属组一般用g表示other就是用o表示对于一个文件,一般的权限就是读(r),写(w),执行(x)
然而除了这些常用的权限外,linux还有一种特殊的权限,s,t 这两个权限很少使用,却是很实用
二、特殊权限详解当s权限在文件所有者 x 权限上时,例如:-rwsr-xr-x,此时称为Set UID,简称为SUID的特殊权限,即当执行该文件时将具有该文件所有者的权限,注意该权限只针对二进制文件生效
当s权限在文件组 x 权限上时,例如:-rwx--s--x,此时称为Set GID,简称为SGID的特殊权限,即当执行该文件时将具有该文件所在组的权限。
还有一个t权限,只针对目录有效,为SBIT权限,当用户对此目录具有 w, x 权限,当用户在该目录下创建文件或目录时,仅有自己与 root用户才有权限删除该文件或目录
二、特殊权限测试s权限测试
我用Python 写了一个小程序用来测试,代码如下
[root@localhost /usr/local/src/test -> ]# cat test.py
#!/bin/env python
#coding = "utf-8"
import time
with open("/tmp/tmp.txt","wb") as f:
f.write(str(time.time()))
print(time.time())
代码很简单,往tmp目录下的tmp.txt文件写入当前时间戳
当用户为root时,给文件增加s权限
[root@localhost /usr/local/src/test -> ]# chmod s test.py
当已root用户执行该文件执行时,该文件被顺利执行
当将用户切换到test用户,用python执行 该程序时,提示错误
我们将test.py 文件转换为二进制文件再次尝试
可以使用pyinstaller对文件进行打包,打包后的二进制文件可以在当前目录的dist目录找到,添加s权限后再次尝试
[root@localhost /usr/local/src/test -> ]# pyinstaller -F test.py
[root@localhost /usr/local/src/test/dist -> ]# ll
总用量 4.7M
-rwxr-xr-x 1 root root 4.7M 7月 13 21:21 test
这次尝试可以看出,在root用户和普通用户下程序都执行成功,s权限只能应用于二进制文件
那么该权限有什么用途呢,最典型的就是系统命令passwd了,任何用户都可以通过passwd命令对自己进行密码或者其他属性修改,但是却无法直接通过修改/etc/passwd进行权限修改
t权限测试
在/usr/local/src/test/目录下创建一个dir 文件夹目录权限设置为777,这样所有的用户都可以在该文件夹下进行操作
使用test1用户在该目录创建一个文件
使用test2用户在该目录可以将test1创建的文件删除
s权限测试
当我们给该目录增加t权限再次测试,发现test创建的文件 test2用户无法删除
t权限测试
linux系统/tmp 目录默认就有t权限,任何用户都可以创建用户,但是除root外的其他普通用户都无法删除其他用户创建的文件,哪怕该文件权限是777
如果有对此文章比较有兴趣的朋友,大家可以点个关注,欢迎大家收藏、点赞、转发,我将经常发表一些比较实用的文章,请大家多多关照
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com