首页 > 系统相关 >Linux基本命令之文件权限(二)

Linux基本命令之文件权限(二)

时间:2023-11-28 10:22:57浏览次数:45  
标签:文件 权限 CHENDAJIE Linux home txt root 目录

一、文件的特殊权限:suid sgid sticky
1、SUID(set uid设置用户ID):限定:只能设置在二进制可执行程序上面。对目录设置无效
功能:程序运行时的权限从执行者变更成程序所有者的权限
2、SGID:限定:既可以给二进制可执行程序设置,也可以对目录设置
功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会,继承上级目录的所属组
3、Stickybit:粘滞位权限是针对目录的,对文件无效,也叫防删除位
这3个特殊权限对应的数值为

SUID u+s或u=4
SGID g+s或g=2
Stickybit o+t或o=1
suid:
SUID属性一般用在可执行文件上,当用户执行该文件时,会临时拥有该执行文件的所有者权限,使用" ls -l "或“ ll ”命令浏览文件时,如果可执行文件所有者权限的第三位是一个小写的“ s ”就表明该执行文件拥有SUID属性。比如/usr/bin/passwd文件

[root@CHENDAJIE ~]# which "passwd"
/usr/bin/passwd
[root@CHENDAJIE ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd

这就是普通用户不能读取shadow文件但是可以该密码的原因,当普通用户执行passwd命令时,会临时拥root的权限,所以可以修改成功。

SGID:
限定:既可以给二进制可执行程序设置,也可以给目录设置。
功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的权限。

[root@CHENDAJIE test]# mkdir a
[root@CHENDAJIE test]# ll -d a
drwx-w--w- 2 root root 6 10月 17 16:13 a
[root@CHENDAJIE test]# chmod g+s a
[root@CHENDAJIE test]# !ll
ll -d a
drwx-wS-w- 2 root root 6 10月 17 16:13 a

测试sgid效果

[root@CHENDAJIE test]# chown :bin a/
[root@CHENDAJIE test]# touch a/b.txt
[root@CHENDAJIE test]# ll !$
ll a/b.txt
-rw--w--w- 1 root bin 0 10月 17 16:15 a/b.txt


sgid是针对用户组权限位的
对于文件来说,sgid的功能如下:
sgid仅对二进制命令程序有效
二进制命令或程序需要有可行权限x
执行命令的任意用户可以获得该命令程序执行期间所属组的权限

sgid基于目录的功能如下:
linux里默认情况所有用户创建文件,默认用户和组都是自身。
sgid可以让用户再此目录下创建的文件和目录,具有和此目录相同的用户组设置。
setgid位主要用在目录中,当为某个目录设置了setgid位以后,在该目录中新创建的文件具有该目录的所属组权限,而不是创建该文件的用户的默认所有者。这样,使得在多个用户之间共享一个目录中的文件变得简单。提示:用八进制数2000表示setgid 权限位。

Stickybit
限定:只作用于目录
功能:目录下创建的文件只有root、文件创建者、目录所有者才能删除
例:系统中的tmp目录就是这样的

[root@CHENDAJIE ~]# ll -d /tmp/
drwxrwxrwt. 15 root root 4096 10月 17 16:22 /tmp/

用法:
chmod o+t /tmp/test

文件扩展权限ACL
扩展ACL:access conteol list
例:设置用户chendajie对文件a.txt拥有rwx权限,chendajie不属于啊。txt的所属主和组,chendajie是other。怎么做?

[root@CHENDAJIE home]# touch a.txt
[root@CHENDAJIE home]# getfacl a.txt
# file: a.txt
# owner: root
# group: root
user::rw-
group::-w-
other::-w-

[root@CHENDAJIE home]# setfacl -m u:chendajie:rwx a.txt
[root@CHENDAJIE home]# getfacl a.txt
# file: a.txt
# owner: root
# group: root
user::rw-
user:chendajie:rwx
group::-w-
mask::rwx
other::-w-

[root@CHENDAJIE home]# su chendajie
[chendajie@CHENDAJIE home]$ vim a.txt
[chendajie@CHENDAJIE home]$ cat a.txt
Hello,Linux

例2:给目录加扩展权限

[root@CHENDAJIE home]# mkdir b
[root@CHENDAJIE home]# ll -d b
drwxr-xr-x 2 root root 6 10月 17 16:30 b
[root@CHENDAJIE home]# setfacl -m d:u:chendajie:rwx b
[root@CHENDAJIE home]# getfacl b
# file: b
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:chendajie:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

[root@CHENDAJIE home]# touch b/b.txt
[root@CHENDAJIE home]# mkdir b/data
[root@CHENDAJIE home]# getfacl b/b.txt
# file: b/b.txt
# owner: root
# group: root
user::rw-
user:chendajie:rwx #effective:rw-
group::r-x #effective:r--
mask::rw-
other::r--


因为-d参数,所以test下所有创建的文件和目录都继承了默认的acl权限

例3:给目录下所有文件都加扩展权限

[root@CHENDAJIE home]# setfacl -R -m u:lee:rw- testdirectory/ #-R一定要在-m前面,表示目录下所有文件

[root@CHENDAJIE home]# setfacl -x u:mk /tmp/a.txt # 去掉单个权限
[root@CHENDAJIE home]# setfacl -b /tmp/a.txt # 去掉所有acl权限

标签:文件,权限,CHENDAJIE,Linux,home,txt,root,目录
From: https://www.cnblogs.com/GSHZ/p/17847188.html

相关文章

  • vue引入外部样式只在当前文件生效
    引入外部文件时,想要只在当前组件使用,但是我们使用如下方式时,会在全局使用。因为在scoped起作用的时候,import还没有引入这个文件<stylescoped>@import"../../xx.css"</style>使用以下方式即可<stylescopedsrc="../../xx.css"></style> ......
  • 本地Linux 服务器实现内网穿透,SSH远程连接
     公网SSH远程连接Linux的好处在于可以在任何地方通过互联网连接到Linux服务器,无需在服务器所在的局域网内。这样可以方便地进行远程管理、维护和操作,提高了工作效率和灵活性。同时,公网SSH连接还可以加强服务器的安全性,因为可以通过SSH协议进行加密通信,保护数据的安全性。下面简......
  • Linux文件查找,打包,压缩及解压
    1.find命令:2.find命令用于在文件系统中搜索文件和目录。3.例如,要在/home目录下查找所有以.txt结尾的文件,可以使用:find/home-name"*.txt"。4.grep命令:5.grep命令用于在文件中搜索特定模式。6.例如,要在当前目录下的所有文件中查找包含"keyword"的行,可以使用:grep"keyw......
  • C++ 查找文本文件中字符串是否存在
    简介查找文本文件中字符串是否存在代码#include<iostream>#include<fstream>#include<vector>#include<string>usingnamespacestd;boolSearchString(stringfilePath,stringstrF){vector<string>lines;stringline;ifst......
  • C++ 修改文件创建时间、修改时间属性
    简介        修改文件创建时间、修改时间、大小等属性。        博客《C++获取文件创建时间、修改时间、大小等属性》分享后,好兄弟“古月”发来一段代码,说可以修改文件的创建时间等。测试了一下真可以,下面是运行效果和代码:代码#include<windows.h>#include<f......
  • C++ 使用Windows的API CreateDirectory 创建多层级文件夹
    简介使用Windows的API创建多层级文件夹效果代码#include<windows.h>#include<direct.h>#include<iostream>#include<string>#include<sstream>#include<vector>//创建多层级文件夹boolCreateDir(conststd::string&path){ std::......
  • C++ 获取文件创建时间、修改时间、大小等属性
    简介获取文件创建时间、修改时间、大小等属性代码#include<iostream>#include<string.h>#include<time.h>voidmain(){std::stringfilename="E:\\LiHai123.txt";struct_statstat_buffer;intresult=_stat(filename.c_str(),&stat_b......
  • 使用Pugixml库,轻松处理XML文件
    文章作者:里海目录1.介绍2.Pugixml库3.配置VisualStudio开发环境4.节点5.常见的节点类型6.命名空间pugi  7.xml_document装载整个XML文档结构 8.xml_node文档节点 9.xml_attribute 属性10.例子1.生成xml文件2.读xml文件并解析3.修改xml文件1.介绍        Pugixml是轻......
  • 论Linux文件系统
    每台通用计算机都需要将各种数据存储在硬盘驱动器(HDD)或其他类似设备上,比如USB存储器。这样做有两个原因。首先,当计算机关闭以后,内存(RAM)会失去存于它里面的内容。尽管存在非易失类型的RAM,在计算机断电以后还能把数据存储下来(比如采用USB闪存和固态硬盘的闪存),但是,闪存和标准的......
  • Linux下Perl的安装
    Linux下Perl的安装 855  2022-07-3122:31:371、在官方网站下载新版本的源码包:http://www.perl.org/get.html,版本自己选择,我下载的是perl-5.34.0.tar.gzcd /backup/soft/wget https://www.cpan.org/src/5.0/perl-5.34.0.tar.gz 2、解压/backup/soft/下的perl-5.......