一. 特殊权限

1. Set UID

[root@localhost ~]# which passwd    #/usr/bin/passwd
[root@localhost ~]# ls -l /usr/bin/passwd    #rwsr-xr-x红色目录,s为set_uid权限
[root@localhost ~]# ls -l /etc/shadow    #密码文件,无权限

而普通用户再修改passwd时有Set UID权限,当普通用户执行Set UID命令时,临时拥有root用户的权限,拥有改命令所有者的身份

切换到普通用户实验
[root@localhost ~]# su - user1

[user1@localhost ~]# whoami	#确认是否是再普通用户下,也可以看光标左侧主机名前的当前用户,这里使用普通用户为user1
[user1@localhost ~]# ls /root/	#尝试进入/root/目录,发现无权限
[user1@localhost ~]# ls -ld /root/	#r-xr-x---	蓝色
[user1@localhost ~]# which ls	#/usr/bin/ls
[user1@localhost ~]# ls -ld /usr/bin/ls	#rwxr-xr-x	绿色
[user1@localhost ~]# su -
passwd:

[root@localhost ~]# ls -ld /usr/bin/ls	#rwxr-xr-x	绿色
[root@localhost ~]# chmod u+s /usr/bin/ls
[root@localhost ~]# ls -ld /usr/bin/ls	#rwsr-xr-x	红色
[root@localhost ~]# su - user1

[user1@localhost ~]# ls /root/	#可查看
[user1@localhost ~]# ls -ld /root/	#r-xr-x---	目录权限没有变化
[user1@localhost ~]# ls -ld /usr/bin/ls	#rwsr-xr-x	红色
[root@localhost ~]# chmod u-s /usr/bin/ls    #撤销权限
[root@localhost ~]# chmod u=rws /usr/bin/ls    #rwSr-xr-x    红色    缺少x权限,同样也可以用
[root@localhost ~]# chmod u+x /usr/bin/ls    #rwsr-xr-x    红色

2. Set GID

切换到普通user1用户实验
[root@localhost ~]# su - user1

[user1@localhost ~]# ls /root/	#没有权限
[user1@localhost ~]# ls -l /usr/bin/ls	绿色
[user1@localhost ~]# su -
passwd:

[root@localhost ~]# chmod g+s /usr/bin/ls
[root@localhost ~]# su - user1

[user1@localhost ~]# ls /root/	#拥有临时权限
[user1@localhost ~]# ls -l /usr/bin/ls	黄色
[root@localhost ~]# mkdir /home/111
[root@localhost ~]# touch /home/1.txt
[root@localhost ~]# mkdir /home/111/222
[root@localhost ~]# touch /home/111/2.txt
[root@localhost ~]# ls -l /home/
    #rwxr-xr-x	111蓝色
    #rw-r--r--	1.txt白色
[root@localhost ~]# ls -l /home/111/
    #rwxr-xr-x	222蓝色
    #rw-r--r--	2.txt白色

[root@localhost ~]# chmod g+s /home/111/
[root@localhost ~]# ls -l /home/
    #rwxr-sr-x	111蓝色
    #rw-r--r--	1.txt白色
[root@localhost ~]# ls -l /home/111/
    #rwxr-xr-x	222蓝色
    #rw-r--r--	2.txt白色

[root@localhost ~]# mkdir /home/111/333
[root@localhost ~]# touch /home/111/3.txt
[root@localhost ~]# ls -l /home/111/
    #rwxr-xr-x	222蓝色
    #rw-r--r--	2.txt白色
    #rwxr-sr-x	333蓝色	#
    #rw-r--r--	3.txt白色
[root@localhost ~]# mkdir /home/111
[root@localhost ~]# chmod g+s /home/111
[root@localhost ~]# chown :hello /home/111
[root@localhost ~]# ls -l /home/111
    #rwxr-sr-x	user1	111蓝色

[root@localhost ~]# mkdir /home/111/222
[root@localhost ~]# touch /home/111/2.txt
[root@localhost ~]# ls -l /home/111/
    #rwxr-sr-x	user1	222蓝色
    #rw-r--r--	user1	2.txt

3. sticky bit

[root@localhost ~]# ls -ld /tmp/	#rwxrwxrwt	墨绿色
t为防删除位,指任何用户都可以在这个目录可读可写可执行,但必须为指定用户才可以删除,root用户除外
文件实验
在user1用户下:
cd /tmp/
touch 1.txt
ls -l
	#rw-rw-r-	1.txt白色
vi 1.txt
	写点东西
chmod 777 1.txt
ls -l 1.txt	#rwxrwxrwx	user1:user1	1.txt绿色
su - world

切换为user2用户
cd /tmp/
vi 1.txt	#可以修改
	写入东西
rm -f 1.txt	#提示不可删

作用是防止其他用户删除特定用户的权限,root用户除外
目录实验
user2用户
mkdir 111
chmod 777 111
ls -l 111	#rwxrwxrwx	墨绿色
su - user1

user1
cd /tmp/111/
touch 2.txt
mkdir 222
ls -l /111/
	#rw-rw-r--	2.txt白色
	#rwxrwxr-x	222蓝色
su - user2

user2
ls -l /111/
	#rw-rw-r--	2.txt白色
	#rwxrwxr-x	222蓝色
rm 2.txt	#可以删除
rm 222	#可以删除
ls -ld .	#rwxrwxrwx	world:world	.墨绿色

user2可删除user1在111目录里面的文件,得往上看父级目录的权限是谁
用法
chmod o+t 目录或文件
chmod o+rwtx 目录或文件

二.软链接与硬链接

1. 软链接

软链接方式
mkdir /tmp/1.txt
ln -s /tmp/1.txt /home/1.txt
ls -l /home
不建议使用相对路径,当文件发生移动时,会失去软链接的效果
mkdir /home/111
cd /home
ln -s 111 222
mv 222 /tmp/222    #闪红色,表示源文件不存在

使用绝对路径
mkdir /home/111
ln -s /home/111 /home/222
mv /home/222 tmp/222

为防止使用一些空间时被占满后写入失败,常常使用到了软链接方式存储将文件存储软链接到另一个地方

df -h
cp /boot/user1.log  /user1.log    #将/boot/的user.log软链接到根目录下
rm /boot/user1.log ; ln -s /user1.log /boot/user1.log ;    #删除并把根目录的user1.log做软链接到/boot/目录下
ls -l /boot/

2. 硬链接

硬链接不支持对目录操作

touch 1.txt
ln 1.txt 1_heard.txt
ln -s 1.txt 1_sorft.txt
ls -l .
ls -i	#查看inode号
rm 1.txt
ls -l .
硬链接的inode号与源文件相同
硬链接无法跨分区