`
wx1569466809
  • 浏览: 72074 次
文章分类
社区版块
存档分类
最新评论

文件特殊权限suid、sgid、stick_bit、软链接、硬链接

 
阅读更多

第二章 文件、目录管理

2.18 特殊权限之 suid

>SUID的作用就是:让本来没有相应权限的用户运行这个程序时,可以访问没有权限访问的资源。passwd是一个很鲜明的例子。
suid=set uid

# umask
0022

umask的数值0022中第一位代表的就是特殊权限,包括有suid、sgid、sticky_bit。

该权限针对二进制可执行文件(x),是文件在执行阶段具有文件所有者的权限。

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

passwd这个命令就有该权限,当普通用户执行passwd命令时,可以临时获得root权限,从而可以更改密码。
passwd属性找那个显示的是rws,并非传统的rwx,用数字表示为4755。
4是如何计算来的呢?
当有特殊权限时,第一位数字可以是0,1(--t),2(-s-),3(-st),4(s--),5(s-t),6(ss-),7(sst)。passwd是s--,所以数值为4。

  • 自定义一个set uid权限:
[root@adai001 ~]# su - adai  临时切换到用户adai
[adai@adai001 ~]$ ls -l /root/
ls: 无法打开目录/root/: 权限不够   **此时作为普通用户,没有查看(ls)/root/目录的权限所以报错
[adai@adai001 ~]$ exit
登出
[root@adai001 ~]# chmod u+s /bin/ls  给ls命令增加set uid权限
[root@adai001 ~]# ls -l /bin/ls
-rwsr-xr-x. 1 root root 117656 11月  6 2016 /bin/ls
[root@adai001 ~]# su - adai
上一次登录:三 6月  7 21:31:56 CST 2017pts/0 上
[adai@adai001 ~]$ ls -l /root/  ls获得查看root的权限
总用量 4
-rw-------. 1 root root 1422 5月  22 01:30 anaconda-ks.cfg
[adai@adai001 ~]$ exit
登出
[root@adai001 ~]# chmod u-x /bin/ls  去除所有者执行(x)权限
[root@adai001 ~]# ls -l /bin/ls  当所有者没有x权限之后s会变成S
-rwSr-xr-x. 1 root root 117656 11月  6 2016 /bin/ls
[root@adai001 ~]# chmod u-s /bin/ls
[root@adai001 ~]# ls -l /bin/ls
-rwxr-xr-x. 1 root root 117656 11月  6 2016 /bin/ls

注: 普通文件必须有x权限s权限才生效。

2.19 特殊命令之 sgid

sgid=set gid
该权限可以用于文件也可以用于目录。设置于可执行二进制文件时,作用和suid类似,即执行改文件的用户会临时获得改文件所属组的权限。设置在目录时,任何用户在此目录下创建的文件或目录都具有和该目录相同的所属组。
eg:

[root@adai002 ~]# mkdir /tmp/test
[root@adai002 ~]# chmod 777 !$
chmod 777 /tmp/test
[root@adai002 ~]# ls -ld !$
ls -ld /tmp/test
drwxrwxrwx 2 root root 6 6月   8 07:18 /tmp/test
[root@adai002 ~]# chmod g+s !$  给/tmp/test所属组增加s权限
chmod g+s /tmp/test
[root@adai002 ~]# ls -ld /tmp/test
drwxrwsrwx 2 root root 6 6月   8 07:18 /tmp/test
[root@adai002 ~]# useradd user1
[root@adai002 ~]# su - user1  临时切换到user1用户
[user1@adai002 ~]$ cd /tmp/test/  切换至test目录
[user1@adai002 test]$ mkdir adai001  在test目录下创建新目录
[user1@adai002 test]$ touch adai.txt  在test目录下创建新文件
[user1@adai002 test]$ ls -l
总用量 0
drwxrwsr-x 2 user1 root 6 6月   8 07:20 adai001
-rw-rw-r-- 1 user1 root 0 6月   8 07:21 adai.txt
在test目录下新创建的目录或文件均和test有相同的所属组

2.20 特殊权限之 stick_bit

>stick_bit可以理解为防删除位,当前只针对目录有效。一个文件是否可以被某用户删除,主要取决于该文件所在目录是否对该用户具有写权限。如果没有写权限,则这个目录下的所有文件都不能被删除,同时也不能添加新文件。如果希望用户能够添加文件但同时不能删除该目录下的其他用户的文件,则可以对其父目录增加该权限。

语法: chmod [o] [+,-] t filename
eg: /tmp/目录就设有该权限

[root@adai002 ~]# useradd user2
[root@adai002 ~]# su - user2
[user2@adai002 ~]$ touch /tmp/user1.txt 在user2用户的/tmp/目录下创建文件user1.txt
[user2@adai002 ~]$ echo "121">!$  向user1.txt写入文件
echo "121">/tmp/user1.txt
[user2@adai002 ~]$ exit
登出
[root@adai002 ~]# useradd user3
[root@adai002 ~]# su - user3  切换到user3用户下
[user3@adai002 ~]$ rm -f /tmp/user1.txt  在user3用户下对user2用户在/tmp/目录下创建的文件实施删除工作
rm: 无法删除"/tmp/user1.txt": 不允许的操作    操作无法完成

说明: 一个文件能否被删除,取决于该文件父目录的权限,/tmp/目录是777,任何人都可以写的,所以理论上任何人都可以删除/tmp/下的所以文件,但是刚才我们做的实验却表明,user3是不可以删除user2的文件的,就是因为/tmp/目录有stick bit权限。

2.21 软链接文件

>软链接(soft link)又叫符号链接(symbolic link),这个文件包含了另一个文件的路径名,可以是任意文件或目录,可以链接不同文件系统的文件。软链接文件有类似于Windows的快捷方式,删除源文件后链接会失效。

  • 创建软链接: ln -s [源文件] [目标文件]

2.22 硬链接

>硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。进行硬链接的时候该文件的内容并没有任何变化,只是指定了相同的inode index。

  • 硬链接有两个限制:
    1)不能跨文件系统创建硬链接,因为不同的文件系统有不同的inode index;
    2)目录不能创建硬链接。
  • 创建硬链接: ln [源文件] [目标文件]

软链接和硬链接的区别

1)硬链接就是同一个文件使用了多个别名(他们有共同的 inode)。软链接就是一个普通文件,只是数据块内容有点特殊(文件用户数据块中存放的内容是另一文件的路径名的指向,类似于Windows下的快捷方式)。
2)由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。
3)硬链接不能对目录进行创建,只可对文件创建。软链接可对文件或目录创建。

转载于:https://my.oschina.net/1995blog/blog/1592350

分享到:
评论

相关推荐

    特殊权限SUID SGID SBIT.doc

    例如,要将一个文件权限修改为 -rwsr-xr-x 时,因为 s 在用户权限中,所以是 SUID,因此在原先的 755 之前还要加上 4,也就是 chmod 4755 filename 来设置和设置普通的权限一样。如果要设置 SUID 又要设置 SGID,则...

    Linux文件特殊权限SGID-UID详解

    通过本文详细介绍的 SUID、SGID 和 Sticky Bit 这三种特殊的文件权限,我们可以更加深入地理解 Linux 文件系统的权限控制机制。这些特殊的权限不仅增强了系统的安全性,同时也为用户提供了更多的灵活性。掌握这些...

    linux基础教程之特殊权限SUID、SGID和SBIT

    普通用户和管理员通常了解基础的读(r)、写(w)和执行(x)权限,但Linux还提供了三种特殊的权限:SUID (Set User ID)、SGID (Set Group ID) 和SBIT (Sticky Bit)。这些特殊权限在特定情况下能赋予用户超出他们原本权限...

    Linux基础课件特殊权限设置SGID权限共9页.pdf

    - 这种机制允许团队成员在保持个人隐私的同时,方便地共享和协作,避免了频繁更改文件权限的问题。 3. **设置SGID权限**: - 使用`chmod`命令可以为文件或目录添加SGID权限。对于文件,可以输入`chmod g+s 文件名...

    Linux基础课件特殊权限设置SUID权限共10页.pdf

    课件首先会介绍Linux的文件权限模型,该模型由读(r)、写(w)和执行(x)三个基本权限构成,分别对应于文件的所有者、同组用户和其他用户的权限位。对于可执行文件,SUID权限会显示为一个额外的s字符,位于所有者...

    linux中SUID,SGID与SBIT的奇妙用途详解

    linux对文件的权限管理简直是让人叹为观止,又回顾了一下SUID,SGID和SBIT的作用,总结一下。 其实SUID和SGID的作用跟sudo是相似的。当用户A想执行一个原本属于用户B的可执行文件时,若B的文件设置了suid位,则A在...

    4-6文件的特殊权限.pdf

    在Linux操作系统中,文件权限是安全管理的核心组成部分。为了满足不同场景下的需求,除了基础的读(r)、写(w)和执行(x)权限之外,还存在三种特殊的权限:Set User ID (SUID)、Set Group ID (SGID) 和 Sticky Bit ...

    Linux中目录与文件的特殊权限位教学分析.pdf

    例如,创建一个具有SUID、SGID和Sticky Bit的文件或目录,然后模拟不同用户的行为,观察权限如何影响他们的操作。 3. **特殊情况** - **文件所有者即使没有写权限,也可能通过覆盖写入强制完成写操作。** - **...

    linux中特殊权限问题

    文件权限用三位一组的形式表示,分别代表用户、用户组和其他用户的读、写、执行权限。目录文件的可执行权限意味着用户能否进入该目录。 索引节点(inode)是文件系统中用于存储文件元信息的数据结构,包括文件的...

    Linux基础课件特殊权限设置SBIT权限共9页.pdf

    本次课件主要聚焦于一个特殊的权限设置——Set-User-ID(SUID)和Set-Group-ID(SGID),以及一个不那么常见的Sticky Bit(SBIT)。这三种权限在特定场景下能提供额外的安全性和功能,下面我们将深入探讨这些概念。 ...

    suid-locate:在Linux系统中轻松找到带有SUID或SGID位的文件

    SUID定位 正确使用带有SUID / SGID的文件可能非常方便,但是,它会使您的系统面临许多安全风险。 SUID-Locate可以在Linux系统中轻松找到带有SUID或SGID位的文件。 作者 Kfir Shtober(Kfiros)2015

    13671648877#MyNote#07_04_特殊权限suid等详解1

    否则显示为S.用户权限不够查看:修改cat 命令,增加suid权限:现在用cat命令访问使用的是root属主则chloroplast用户可以查看:运行某程序时,

    Linux中文件三种特殊权限的探讨 (1).pdf

    在Linux操作系统中,文件权限机制是保障系统安全的重要组成部分。除了基本的读(r)、写(w)和执行(x)权限外,还存在三种特殊的权限,分别是Suid(Set User ID)、Sgid(Set Group ID)以及Sticky。这三种权限在...

    linux-文件权限

    本文将深入解析Linux文件权限的核心知识点,包括基本的权限类型、特殊权限(如SUID、SGID和sticky bit)以及如何使用`chmod`命令来修改这些权限。 ### 基本权限类型 在Linux中,每个文件或目录都有三种基本的权限...

    Linux中文件三种特殊权限的探讨.pdf

    普通文件权限包括读(r)、写(w)和执行(x),但为了增强系统的安全性,Linux提供了三种特殊的文件权限:SUID(Set-User-ID)、SGID(Set-Group-ID)以及Sticky。这三种权限在特定场景下有着重要的应用。 SUID...

    day13-文件特殊权限.pdf

    【文件特殊权限】在Linux操作系统中,权限管理是至关重要的,尤其是一些涉及安全性的特殊权限。这些特殊权限包括setuid、setgid和粘滞位(sticky),它们都是12位权限模式的一部分,除了常见的读(r)、写(w)和...

Global site tag (gtag.js) - Google Analytics