特殊权限
文件权限的机制是Linux系统中的一大特色,除了我们现在所熟知的读(r)、写(w)、执行(x)权限外,还有三个比较特殊的权限,分别为:setuid、setgid和stick bit(粘滞位)
1、setuid与setgid讲解:
查看系统中常用到它的地方,以/etc/passwd和/usr/bin/passwd为例:
分析,/etc/passwd的权限为-rw-r--r--也是就是说,该文件对文件所有者是有读写权限的,而用户组成员和其他成员只有读的权限,我们知道,在系统中我们要修改一个用户 的密码,root用户和普通用户都可以使用/usr/bin/passwd这个命令来修改密码(/etc/passwd),root用户本身就拥有对/etc/passwd这个文件有写权限,不容置疑,一定就可以修改了;那么普通用户呢?这里就用到了setuid/setgid,他们的作用就是“让执行该命令的用户以该命令拥有这的权限去执行”,就是普通用户执行passwd时就会拥有root的权限。这样就可以修改/etc/passwd这个文件了,它的标识是:s;会出现在x的地方,如图示:-rwsr-xr-x。而setgid意思和setuid类似,就是让执行该文件的用户以该文件所属组的权限去执行;
2、stick bit(粘滞位)
查看系统中常用到的地方,以/tmp目录为例:
大家都是在Linux系统中/tmp目录是系统存放临时文件的目录,所有的用户在该目录下都拥有所有 的权限,也就是任何用户在该目录西都可以增删改查任何文件目录。比如a用户创建了一个文件,为了防止b用户给删了怎么办,为了解决这个问题,就出现了stick_bit(粘滞位)的概念。它是针对目录来说的,如果该目录甚至了stick_bit,则该目录下的文件除了该文件的创建者和root用户可以删除和修改/tmp目录下的文件,别的用户都不可以动别人的东西,这就是stick_bit(粘滞位)作用;
3、如何设置上述特殊权限
chmod u+s xxx # 设置setuid权限
chmod g+s xxx # 设置setgid权限
chmod o+t xxx # 设置stick bit权限,针对目录
软连接及硬连接
软链接: 也称为符号链接
1.类似windows快捷方式
2.可以跨文件系统创建
3.占用新的inode号
4.占用少量的磁盘空间
5.删除源文件后,软链接文件无效
优点:软链接(即快捷方式)可以方便快捷的访问路径很深的文件或文件夹。
创建软链接
ln -s 源文件 目标文件
例如:
[[email protected] ~]# ln -s /tmp/222.txt 222.txt
注:源文件最好写绝对路径
硬链接:
0.给同一个inode号指定多个文件名
1.对主要数据文件备份 防止误删除
2.不可以跨文件系统创建(即不能跨分区)。如ln /boot/grub2/grub.cfg /tmp/grub.cfg 会报错
3.不占用新的inode
4.不占用任何新的空间
5.任意删除一个文件名,文件都不会损坏
创建硬链接
ln 源文件 目标文件
例如:
[[email protected] ~]# ln /tmp/333.txt 333.txt
[[email protected] ~]# ll -i 333.txt /tmp/333.txt
发现这两个文件名的inode号相同;
技巧:用硬链接可以实现文件备份,这样比用cp复制来备份更节省磁盘空间。
软链接和硬链接的区别:
1.软链接可以跨文件系统,硬连接不行
2.文件类型不一样
3.软链接可以给目录做,硬连接不可以给目录做
4.删除源文件,软链接无法使用,硬连接可以继续使用
5.软链接创建新的inode,硬连接不能创建新的inode
原文地址:http://blog.51cto.com/12020239/2092522