suid
set_uid = 4
该权限针对二进制可执行文件,使文件在执行阶段具有文件所有者的权限。比如 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。
软链接
节省空间,可以跨分区
# ln -s [来源文件] [链接文件]
做软链接尽量用绝对路径
给 nginx 命令做软链接到环境变量:
硬链接
共用一个 inode 号。不能链接目录,不可跨分区,因为每个分区都有一套独立的 inode 表。做了硬链接,删掉任意一个对另外一个没影响。
# ln [来源文件] [链接文件]
set_uid = 4
该权限针对二进制可执行文件,使文件在执行阶段具有文件所有者的权限。比如 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。
如果有执行权限会显示为 s ,没有执行权限会显示为 S 。
[root@eweb ~]# chmod u+s /bin/ls
[root@eweb ~]# ll /bin/ls-rwsr-xr-x. 1 root root 117024 Jun 22 2012 /bin/ls
sgid
set_gid = 2
该权限可以应用在文件上同样也可以作用在目录。设置在文件上,作用和 set uid 类似,前提是这个文
件是可执行的二进制文件,当设置 set gid 后,执行该文件的用户会临时以该文件所属组的身份执行。若目录被设置这个权限后, 任何用户在此目录下创建的文件或目录都具有和该目录所属的组相同的组。
给ls命令赋予 sgid 权限
set_gid = 2
该权限可以应用在文件上同样也可以作用在目录。设置在文件上,作用和 set uid 类似,前提是这个文
件是可执行的二进制文件,当设置 set gid 后,执行该文件的用户会临时以该文件所属组的身份执行。若目录被设置这个权限后, 任何用户在此目录下创建的文件或目录都具有和该目录所属的组相同的组。
给ls命令赋予 sgid 权限
[root@eweb ~]# chmod g+s /bin/ls
[root@eweb ~]# ll /bin/ls
-rwsr-sr-x. 1 root root 117024 Jun 22 2012 /bin/ls
sticky
stick_bit 文件防删除位
只能作用于目录,作用于文件没什么意义。
Stick_bit 可以理解为防删除位。一个文件是否可以被某用户删除,主要取决于该文件所在目录是否对
该用户具有写权限。如果没有写权限,则这个目录下的所有文件都不能被删除,同时也不能添加新的文件。
如果希望用户能够添加文件但同时不能删除该目录下的其他用户的文件,则可以对父目录增加该权限。设置它后,就算用户对目录具有写权限,也不能删除其他用户的文件。比如/tmp/目录就设置过该权限。
[root@eweb ~]# chmod o+t temp
[root@eweb ~]# ll -d temp/
drwxr-xr-t 2 root root 4096 Oct 27 09:23 temp/
软链接
节省空间,可以跨分区
# ln -s [来源文件] [链接文件]
做软链接尽量用绝对路径
给 nginx 命令做软链接到环境变量:
[root@eweb ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
硬链接
共用一个 inode 号。不能链接目录,不可跨分区,因为每个分区都有一套独立的 inode 表。做了硬链接,删掉任意一个对另外一个没影响。
# ln [来源文件] [链接文件]
[root@eweb ~]# ln 123.txt /usr/local/456.txt
[root@eweb ~]# ll -i /usr/local/456.txt
131495 -rw-r--r-- 2 root root 0 Oct 27 09:33 /usr/local/456.txt
[root@eweb ~]# ll -i 123.txt
131495 -rw-r--r-- 2 root root 0 Oct 27 09:33 123.txt
[root@eweb ~]# rm -f 123.txt
[root@eweb ~]# ll -i /usr/local/456.txt
131495 -rw-r--r-- 1 root root 0 Oct 27 09:33 /usr/local/456.txt