set uid 权限
- 该文件限针对二进制可执行文件,使文件在执行阶段拥有文件所有者的权限
- 如:passwd命令就有该权限。当普通用户执行passwd 命令时,可以临时获得root权限,从而可以更改密码
- 例:给一个命令增加去除set uid权限
[root@centos001 ~]# ls -l /usr/bin/ls //首先找到一个没有set uid权限的文件
-rwxr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
[root@centos001 ~]# su awei //切换到普通用户awei 用命令su 切换
[awei@centos001 root]$ ls -l /root //使用ls -l 命令时 发现权限不够
ls: 无法打开目录/root: 权限不够
[awei@centos001 root]$ su root //再切换到root
密码:
[root@centos001 ~]# chmod u+s /usr/bin/ls //用chmod 命令给用户所有者增加s权限
[root@centos001 ~]# ls -l /usr/bin/ls //在用ls命令查看
-rwsr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls //已经加上set uid 权限了
[root@centos001 ~]# su awei //再次切换到普通用户
[awei@centos001 root]$ ls -l /root //发现已经可以使用 ls命令
总用量 4
drwxrwx---. 2 root root 6 9月 26 09:55 123
-rwxrwx---. 1 root root 0 9月 26 09:55 22.txt
[awei@centos001 root]$ su root
密码:
##去除set uid 权限
[root@centos001 ~]# chmod u-s /usr/bin/ls //去除权限
[root@centos001 ~]# chmod u=rws /usr/bin/ls // 增加权限命令的另一种写法
[root@centos001 ~]# ls -l !$
ls -l /usr/bin/ls
-rwSr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls //这里我们发现rwS里有个大S 是因为没有可执行权限x
[root@centos001 ~]# chmod u+x !$ //加上x权限
chmod u+x /usr/bin/ls
[root@centos001 ~]# ls -l !$
ls -l /usr/bin/ls
-rwsr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
set gid权限
- 该权限可以作用在文件上(二进制可执行文件),也可以作用在目录上。
- 当作用在文件上时,其功能同set uid 它会使文件在执行阶段具有文件所属组的权限。
- 目录被设置这个权限后,任何在此目录的文件都具有和该目录所属组相同的 组。
- 例:增加set gid权限
[root@centos001 ~]# chmod u=rwx !$ //先把刚才设置的set uid 权限取消
chmod u=rwx /usr/bin/ls
[root@centos001 ~]# chmod g+s !$ //增加所属组的set gid 权限
chmod g+s /usr/bin/ls
[root@centos001 ~]# ls -l !$
ls -l /usr/bin/ls
-rwxr-sr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
[root@centos001 ~]# ls -ld 234
drwxrwsr-x. 2 root root 6 9月 26 09:58 234 // 这里我们能看到234文件是root root
[root@centos001 ~]# chown :user1 234 //更改文件所属组
[root@centos001 ~]# ls -ld 234
drwxrwsr-x. 2 root user1 6 9月 26 09:58 234
[root@centos001 ~]# touch 234/awei //在234 文件下再创建一个文件awei
[root@centos001 ~]# ls -l 234/
总用量 0
drwxr-sr-x. 2 root user1 6 10月 26 11:52 am
-rw-r--r--. 1 root user1 0 10月 26 11:53 awei
[root@centos001 ~]# chmod g-s 234 //这里我们去掉 set gid 权限
[root@centos001 ~]# ls -l 234
总用量 0
drwxr-sr-x. 2 root user1 6 10月 26 11:52 am
-rw-r--r--. 1 root user1 0 10月 26 11:53 awei
[root@centos001 ~]# touch 234/awei111 //创建一个新的文件awei111
[root@centos001 ~]# ls -l 234
总用量 0
drwxr-sr-x. 2 root user1 6 10月 26 11:52 am
-rw-r--r--. 1 root user1 0 10月 26 11:53 awei
-rw-r--r--. 1 root root 0 10月 26 11:56 awei111 //取消set gid权限后所属组又变回了root
[root@centos001 ~]# mkdir 234/am1 //创建目录am1
[root@centos001 ~]# ls -l 234
总用量 0
drwxr-sr-x. 2 root user1 6 10月 26 11:52 am
drwxr-xr-x. 2 root root 6 10月 26 11:57 am1 //因为取消了set gid,创建目录后所属组也变回了root
-rw-r--r--. 1 root user1 0 10月 26 11:53 awei
-rw-r--r--. 1 root root 0 10月 26 11:56 awei111
[root@centos001 ~]# ls -ld 234
drwxrwxr-x. 4 root user1 54 10月 26 11:57 234
sticky bit权限
- 防止删除位
- 文件是否可以被某用户删除,主要取决于该文件所在的目录是否对该用户具有写权限。
- 如果没有写权限,则这个目录下的所以文件都不能删除,同时也不能添加新的文件
- 如果希望用户能够添加文件但不能删除该目录下的文件,则可以对父级目录增加该权限
- 设置该权限后,就算用户对目录具有写权限,也不能删除其他用户的文件
[root@centos001 ~]# ls -ld /tmp/ //tmp目录就有stick bit权限
drwxrwxrwt. 10 root root 4096 10月 26 10:10 /tmp/ //最后的rwt就是防删除位
[root@centos001 user1]# su - aming //切换到普通用户aming
[aming@centos001 user1]$ cd /tmp/
[aming@centos001 tmp]$ touch aming //在aming目录下创建aming文件
[aming@centos001 tmp]$ ls -l
总用量 120
-rw-r--r--. 1 root root 1008 10月 25 02:25 1.txt
-rw-rw-r--. 1 aming aming 0 10月 26 13:10 aming //能看到变化
[aming@centos001 tmp]$ vi aming //这时可以写入 但是用另一个普通用户不能删除
软链接
- 用法 ln -s 源文件 目标文件
- 软连接,类似Windows上的快捷方式,软连接是一个独立文件。
- 在创建软文件的软连接时,来源文件可以是不存在的文件,而目标文件---快捷方式必须是新文件。
- 仅适用于目录,若快捷方式-->目标目录不存在,会创建相应的目录;若已存在,会在目标目录里面创建一个以来源文件命名的子目录。
- 可跨分区当来源文件是普通文件时,目标文件名称不可以是已经存在的文件
- 当来源文件是目录时,目标文件名称可以软连接,删除来源文件,目标文件失效
- 所有软连接的权限都是777,但并非所有用户都对该链接可读可写可执行,是否有这个权限,要看软连接的源文件的权限
硬链接
- 用法 ln 源文件 目标文件
- 每个文件都有一个属于自己的inode
- 当使用硬链接时,硬链接文件直接链接到文件放置的块区域。也就是说,进行硬链接的时候实际上文件内容没有任何变化,只是制定了相同的inode。
- 硬链接文件直接链接到文件放置的块区域。也就是说,进行硬链接的时候实际上文件内容没有任何变化,只是制定了相同的inode。