Linux笔记 8 (特殊权限位)
2014-11-18 14:43
218 查看
Linux的特殊权限
我们都知道文件和目录最常见的权限有三个:可读(r)、可写(w)、可执行(x),它们分别对应的值是:4(r)、2(w)、1(x)。但是,事实上Linux系统中,文件还具有SUID、SUID、SBIT这三种常见的特殊权限,分别对应的值也是:4(SUID)、2(GUID)、1(SBIT)。下面就探讨下有关SUID、GUID、SBIT这三个特殊权限的作用。SUID
SUID(SetUID):该权限位的作用是让普通用户可以以文件所有者的身份去运行程序或命令。先看下 /etc/passwd 文件的权限信息:
[root@localhost ~]# ls -l /etc/passwd -rw-r--r--. 1 root root 1516 Oct 6 13:44 /etc/passwd
我们通过ls -l 命令可以看到,/etc/passwd 文件的权限是 rw-r--r-- ,也就是说除了root用户可以对 /etc/passwd 文件进行修改之外,其他的普通用户都是不允许修改的。
再看下 /usr/bin/passwd 文件的权限信息:
[root@localhost ~]# ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 25980 Feb 22 2012 /usr/bin/passwd通过 ls -l 命令可以看到,/usr/bin/passwd 文件的权限是rwsr-xr-x,其中权限位中的s就是SUID 的意思,其作用就是普通用户在对 /usr/bin/passwd 文件进行修改的时候,是临时变成了root 用户对 /etc/passwd 进行修改,进而达到修改登录密码的目的。
也就是说,如果一个文件拥有了s权限,那么普通的用户执行该文件的话,将会以该文件的所有者的身份去执行。例如上面的 /usr/bin/passwd 文件所有者是root,那么用户在执行该文件的时候,会瞬间切换到 root 用户进行执行,执行完成之后再切换回用户本身。(TIPS:如果我们将touch 命令设置SUID权限,那么普通用户使用 touch 命令进行创建文件的话,创建出来的新文件所有者为 root ,也即是 touch
命令的所有者,但是,文件的用户组还是该普通用户所在的用户组)。
设置SUID:
chmod u+s 或者 chmod 4[权限值] 如:chmod 4755 [文件名]
取消SUID
chmod u-s 或者 chmod [权限值] 如:chmod 755 [文件名]
TIPS:设置SUID 必须是可执行的文件才可以。如果是不可以执行的文件设置了SUID,就会出现下面的情况。
[root@localhost ~]# chmod u+s /home/suners/2.txt [root@localhost ~]# ls -l /home/suners/2.txt -rwSrw-r--. 1 root suners 0 Oct 7 06:51 /home/suners/2.txt出现一个大写的'S' , 这说明该文件是不可执行的。
SGID
SGID(SetGID):此权限只对目录起作用,目录被设置该位后,任何用户在此目录下创建的文件都具有与该目录所属组相同的组。直接看下面的例子:
[root@localhost test]# mkdir sgid [root@localhost test]# chmod 2777 sgid/ [root@localhost test]# ls -dl sgid/ drwxrwsrwx. 2 root root 4096 Oct 7 07:22 sgid/上面的命令中,创建了一个 sgid 的目录,并且给目录添加了SGID 的权限,目录的所有者和所属组是 root ,并且普通用户对该目录具有读写权限。现在切换到其他账号,进入该目录进行添加文件的操作:
[suners@localhost sgid]$ mkdir dir1 [suners@localhost sgid]$ touch test.txt [suners@localhost sgid]$ ls -dl dir1 test.txt drwxrwsr-x. 2 suners root 4096 Oct 7 07:27 dir1 -rw-rw-r--. 1 suners root 0 Oct 7 07:27 test.txt从上面的执行结果可以看出,当我们切换到 suners 账号之后,在 sgid 目录里面创建了 一个dir1目录 和 test.txt 文件,无论是创建的目录还是文件,所有者是 suners 但 所属组就是与sgid
一样的 root,这就是SGID的作用。
设置SGID:
chmod g+s 或者 chmod 2[权限值] 如:chmod 2755 [目录名]
取消SGID
chmod g-s 或者 chmod [权限值] 如:chmod 755 [目录名]
SBIT
SBIT(Sticky粘着位):当一个目录具有SBIT(粘着位)这个权限之后,用户可以在这个目录下进行创建文件或目录,但是,删除文件的时候,用户只能删除所有者为自己的文件或目录。直接看下面的例子:
[root@localhost test]# mkdir sbit [root@localhost test]# chmod 1777 sbit/ [root@localhost test]# ls -dl sbit/ drwxrwxrwt. 2 root root 4096 Oct 7 07:50 sbit/上面的命令中,创建了sbit 目录,并且给该目录分配了 SBIT 权限。接下来,分别登录两个不同的用户,在sbit 目录里面添加文件,并且,让其中一个用户尝试删除另一个用户创建的文件,我们可以看到如下结果:
[jack@localhost sbit]$ ls -al total 8 drwxrwxrwt. 2 root root 4096 Oct 7 07:56 . drwxr-xr-x. 6 root root 4096 Oct 7 07:50 .. -rw-rw-r--. 1 jack jack 0 Oct 7 07:56 test_jack.txt -rw-rw-r--. 1 suners suners 0 Oct 7 07:54 test_sun.txt [jack@localhost sbit]$ rm ./test_sun.txt rm: remove write-protected regular empty file `./test_sun.txt'? y rm: cannot remove `./test_sun.txt': Operation not permitted从上面的结果中,可以得到在具有SBIT 权限的目录里面,删除非自己所有的文件是不被允许的,这就是SBIT的作用。
设置SBIT:
chmod o+t 或者 chmod 1[权限值] 如:chmod 1755 [目录名]
取消SBIT
chmod o-t 或者 chmod [权限值] 如:chmod 755 [目录名]
-
-
相关文章推荐
- linux笔记-特殊权限SUID等详解
- Linux学习笔记:Linux文件系统上的特殊权限
- 菜鸟学Linux 第021篇笔记 特殊权限SUID、FACL、Linux 终端
- Linux下文件的特殊权限笔记
- Linux 笔记 - 特殊权限
- linux笔记 第七天 文件查找find命令、文件特殊权限、while和until循环
- 文件的特殊权限:SUID,SGID,SBIT---linux学习笔记(3)
- Linux笔记之身份与权限3:文件的特殊权限
- Linux 第六周学习笔记 (2),特殊权限列表,at延时任务及定时机制,系统临时文件的管理
- Linux笔记(43)——文件特殊权限
- 【linux学习笔记 特殊权限和隐藏权限】
- linux 文件特殊权限位小结
- linux rwt rwT rws rwS 特殊权限
- Linux文件特殊权限 SUID/SGID/Sticky Bit
- linux特殊文件权限 suid、sgid和sticky-bit的作用
- linux 三种特殊权限简介 s suid sgid sticky-bit
- Linux技术研究-基础篇(特殊权限和高级命令)
- Linux文件特殊权限 SUID/SGID/Sticky Bit
- Linux文件特殊权限 SUID/SGID/Sticky Bit
- linux之 简略介绍网络服务 手动添加用户 及特殊权限