`
tiankefeng0520
  • 浏览: 146487 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

Linux学习记录--文件特殊权限

阅读更多

文件特殊权限

 

文件除了读写(r),写(w),执行(x) 权限,还有些特殊权限(s,t)

SUID

功能:

SUID权限仅对二进制程序有效

执行者对于程序需要有X可执行的权限

执行者将均有改程序所有者的权限

本权限只在执行程序过程中有效

 

举例:

普通用户也可以通过命令passwd修改自己的密码。修改的密码内容将会记录/etc/shadow文件中,但是普通用户对这个文件无任何权限,那如何修改这个文件呢?

 

以上步骤可以理解为这样

普通用户执行passwd命令修改密码èèpasswd命令程序修改/etc/shadow文件将密码记录其中

 

[root@localhost /]# ll /etc/shadow/usr/bin/passwd

-r-------- 1 root root  1352 02-14 10:36 /etc/shadow

-rwsr-xr-x 1 root root 23420 2010-08-11/usr/bin/passwd

 

这就是SUID的功能,当普通用户在执行passwd程序命令时,由于passwd具有SUID权限,同时普通用户对于passwd命令具有X权限,那么在passwd执行过程中普通用户将程序所有者(root)的权限,因此/etc/shadow就可以被修改

 

SGID

SGID对于二进制程序来说,功能和SUID差不多

SGID权限对二进制程序有效

执行者对于程序需要有X可执行的权限

执行者将均有改程序用户组的权限

本权限只在执行程序过程中有效

 

SGID也可以针对目录设置,功能如下

用户在具有SGID权限的目录下创建的文件或目录其所属的用户组就是目录所有的有户组

 

说明,默认情况下用户创建的文件所属的用户组为用户的有效用户组

 

举例

 

[root@localhost /]# mkdir -m 777 /tmp/newdir;ll -d /tmp/newdir
drwxrwxrwx 2 root root 4096 03-10 12:35 /tmp/newdir
[root@localhost /]# cd /tmp/newdir/
[root@localhost newdir]# touch rootfile
[root@localhost newdir]# ll rootfile 
-rw-r--r-- 1 root root 0 03-10 12:35 rootfile
=>所属用户和所属用户组都是root
[root@localhost newdir]# su tkf
=>切换到普通用户
[tkf@localhost newdir]$ touch tkffile
[tkf@localhost newdir]$ ll 
-rw-r--r-- 1 root root 0 03-10 12:35 rootfile
-rw-rw-r-- 1 tkf  tkf  0 03-10 12:36 tkffile
=>所属用户和所属用户组都是tkf

[root@localhost ~]# chmod g+s /tmp/newdir/
=>给newdir添加SGID权限
[root@localhost ~]# ll -d /tmp/newdir/
drwxrwsrwx 2 root root 4096 03-10 12:36 /tmp/newdir/

[root@localhost ~]# su tkf
[tkf@localhost root]$ touch /tmp/newdir/sgidfile;ll /tmp/newdir/
-rw-r--r-- 1 root root 0 03-10 12:35 rootfile
-rw-rw-r-- 1 tkf  root 0 03-10 12:40 sgidfile
-rw-rw-r-- 1 tkf  tkf  0 03-10 12:36 tkffile
=> sgidfile文件所属用户组发生变化,和目录(newdir)的用户组一样

 

 

SBIT

 

SBIT只针对目录有效,其主要功能是

当用户拥有目录的WX权限时,用户可以删除(删除,重命名,移动)目录下的任意文件

当目录拥有SBIT权限时,即使用户拥有目录的WX权限,用户只能删除自己创建的文件(可以修改不是自己创建的文件)。root用户都可以删除

举例

 

[root@localhost ~]# mkdir -m 1777 /tmp/bitdir
[root@localhost ~]# su tkf
[tkf@localhost root]$ ll -d /tmp/bitdir/
drwxrwxrwt 2 root root 4096 03-10 12:59 /tmp/bitdir/
=>tkf用户拥有目录的rwx权限
[tkf@localhost root]$ touch /tmp/bitdir/tkffile ;ll /tmp/bitdir/
-rw-rw-r-- 1 tkf tkf 0 03-10 12:59 tkffile
=>在目录下创建文件

[tkf@localhost root]$ su userA
=>切换另一个用户
[userA@localhost root]$ ll -d /tmp/bitdir/
drwxrwxrwt 2 root root 4096 03-10 12:59 /tmp/bitdir/
=> userA用户拥有目录的rwx权限

[userA@localhost root]$ cd /tmp/bitdir/
[userA@localhost bitdir]$ touch userfile;ll
-rw-rw-r-- 1 tkf   tkf   0 03-10 12:59 tkffile
-rw-rw-r-- 1 userA userA 0 03-10 13:04 userfile
=>在目录下创建文件userfile

[userA@localhost bitdir]$ rm tkffile 
rm:是否删除有写保护的 一般空文件 “tkffile”? y
rm: 无法删除 “tkffile”: 不允许的操作
=>由于目录具有SBIT权限 虽然userA对目录具有WX权限,但是不能删除非他创建的文件

[root@localhost ~]# chmod o-t /tmp/bitdir/
=>将目录SBIT权限去掉
[root@localhost ~]# su userA
[userA@localhost root]$ cd /tmp/bitdir/
[userA@localhost bitdir]$ ll
-rw-rw-r-- 1 tkf   tkf   0 03-10 12:59 tkffile
-rw-rw-r-- 1 userA userA 0 03-10 13:04 userfile
[userA@localhost bitdir]$ rm tkffile 
rm:是否删除有写保护的 一般空文件 “tkffile”? y
[userA@localhost bitdir]$ ll
-rw-rw-r-- 1 userA userA 0 03-10 13:04 userfile
=>可以删除不是自己创建的文件

 

 

权限设置方法

 

和设置和基本权限(rwx)方法基本,可以通过数字设置也可以通过符号设置

数字设置

SUID:4

SGID:2

SBIT:1

符号设置(+-=)

SUID:u+s

SGID:g+s

SBIT:o+t

举例:

[root@localhost ~]# touch test
[root@localhost ~]# chmod 4755 test; ll test 
-rwsr-xr-x 1 root root 0 03-10 13:14 test
[root@localhost ~]# chmod 6755 test; ll test 
-rwsr-sr-x 1 root root 0 03-10 13:14 test
[root@localhost ~]# chmod 1755 test; ll test 
-rwxr-xr-t 1 root root 0 03-10 13:14 test
[root@localhost ~]# chmod 7666 test; ll test 
-rwSrwSrwT 1 root root 0 03-10 13:14 test
=>这里S,T都是大写是因为文件本身不具有X权限,而S,T权限设置成功的
=>前提是文件具有X权限,因此大写的ST代表文件无这些特殊权限



0
2
分享到:
评论

相关推荐

    linux学习笔记-01linux操作基础

    ### Linux学习笔记—01 Linux操作基础 #### 1. Linux 基础命令与用法 在Linux操作系统中,掌握一系列的基础命令是非常重要的。这些命令可以帮助用户进行各种日常操作,比如文件管理、目录切换、文件查看等。下面将...

    Linux学习笔记.pdf

    根据提供的信息,《Linux学习笔记.pdf》是一份关于Linux操作系统的基础学习材料,主要涵盖了Linux的基本概念、文件系统特性、权限管理以及一些常用命令的使用方法。接下来,我们将详细解析这份文档中提到的重要知识...

    Linux学习资料--用户和用户组管理

    赋予普通用户特殊权限 - 使用`sudo`命令允许非管理员用户执行某些管理员级别的操作,提高了系统的灵活性和安全性。 #### 结语 Linux中的用户和用户组管理是维护系统安全和效率的重要环节。通过合理的账号和权限...

    linux-inject-master.zip

    `linux-inject-master.zip`包含了一个实现这种技术的项目,我们可以从这个压缩包中学习到如何在Linux环境下进行进程注入。 该项目基于GitHub上的开源项目`https://github.com/gaffe23/linux-inject`,由gaffe23开发...

    linux学习笔记

    ### Linux学习笔记知识点详解 #### 文件命名规则 在Linux中,文件命名有一定的规范,以便于管理和维护文件系统的一致性。 1. **除了 `/` 之外的所有字符都是合法的**:这表明除斜杠(/)外,几乎任何字符都可以...

    权限管理-文件特殊权限SetGID

    了解并熟练掌握SetGID这一特殊权限,对于管理和保护Linux系统的安全至关重要,尤其是在需要控制用户间协作和资源访问的环境中。正确应用SetGID能帮助确保数据的安全性和系统操作的有效性,是每一位系统管理员和...

    Linux学习笔记

    ### Linux学习笔记知识点详解 #### 一、安装日志与远程管理工具 1. **安装日志** - `/root/install.log`: 记录安装在系统中的软件包及其版本信息。 - `/root/install.log.syslog`: 存储安装过程中留下的事件记录...

    Linux学习笔记+个人对linux的命令总结

    ### Linux学习笔记与命令总结 #### 一、Linux基础概念 1. **Kernel 内核**: Linux 的核心部分,负责管理系统的硬件资源,并提供必要的服务给其他系统软件和应用程序。 2. **Shell 外壳**: 用户与操作系统之间的...

    鸟哥的私房菜Linux学习笔记

    ### 鸟哥的私房菜Linux学习笔记关键知识点解析 #### 第一章 计算机概论 **1. CPU的种类** - **精简指令集(RISC)** - 特点:指令数量少,每条指令执行周期简单且快速。 - 例子:ARM架构。 - **复杂指令集...

    Linux文件系统.pdf

    总结来说,Linux文件系统是一个复杂而精细的设计,它结合了各种文件系统类型、虚拟文件系统抽象层以及如/proc这样的特殊文件系统,为用户提供了一致、高效的文件操作体验。通过学习Linux文件系统,我们可以更深入地...

    Linux自学笔记,0基础到实战

    本笔记将带您踏上 Linux 学习的旅程,从基础命令到实战项目的实现。 目录常见目录 ---------------- Linux 文件系统中,目录是组织和存储文件的基本单元。常见目录包括 `/bin`、`/boot`、`/dev`、`/etc`、`/home`...

    RH033Linux基础笔记九-文件系统和TAR的打包压缩介绍.pdf

    软链接和硬链接不同,软链接有自己的 inode,是 Linux 特殊文件的一种,它的数据是它所连接的文件的路径名。 TAR 打包工具是一个备份工具,用于在磁带机、软盘、ZIP 设备上做备份。它可以备份到一个硬盘文件上。TAR...

    Linux快速入门02-文件系统管理

    Linux文件系统管理是操作系统的核心部分,它涉及到对文件和目录的操作、权限管理、磁盘空间的使用以及系统安全。在Linux环境中,理解并熟练掌握文件系统管理至关重要。 首先,我们来看文件属性的基本概念。每个文件...

    Linux学习笔记完整版

    Linux操作系统学习笔记详细地记录了从基础概念到高级应用的多个方面,涵盖了Linux的起源、版本、特色、优势、安装、管理、进程、文件系统、用户权限、网络管理、SHELL编程等众多知识点。接下来将详细说明这些知识点...

Global site tag (gtag.js) - Google Analytics