标签:特殊权限set_uid 特殊权限set_gid 特殊权限stick_bit 软链接文件 硬连接文件
特殊权限set_uid概念:set_uid,当普通用户执行passwd命令时,可以**临时**拥有root权限。
set_uid 该权限针对二进制**可执行文件**,如:ls passwd
如下命令,查看
[root@zhangzhen-01 ~]# which passwd #查看这个命令在哪
/usr/bin/passwd
[root@zhangzhen-01 ~]# ls -l /usr/bin/passwd #查看passwd文件权限
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd #这里的s表示什么含义呢,s就是set_uid的权限,这个权限可以让普通用户(所有者)当他执行带set_uid这个命令时,这时候他就会被赋予这个所有者的临时权限。
修改密码权限的配置文件在:/etc/shadow下
[root@zhangzhen-01 ~]# ls /etc/shadow
/etc/shadow
[root@zhangzhen-01 ~]# ls -l !$ #在这里我们可以看见,这个文件是非常严谨,禁止任何用户对它进行任何操作。
ls -l /etc/shadow
----------. 1 root root 645 3月 28 21:58 /etc/shadow注:在这里,root是超级用户权限,可以对他进行操作。
[root@zhangzhen-01 ~]# useradd zhang-02 #创建一个zhang-02的用户
[root@zhangzhen-01 ~]# tail -n3 /etc/passwd #查看最后三行是否创建成功
zhangzhen-03:x:1000:1000::/home/zhangzhen-03:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
zhang-02:x:1002:1002::/home/zhang-02:/bin/bash
[root@zhangzhen-01 ~]# su - zhang-0 #切换用户
[zhang-02@zhangzhen-01 ~]$ whoami #查看当前是哪个用户登录的
zhang-02
如何给一个可执行的文件添加“s”(让普通用户临时拥有所有者权限),例如下:
[zhang-02@zhangzhen-01 ~]$ ls /root/ #普通用户没有访问的权限
ls: 无法打开目录/root/: 权限不够
[zhang-02@zhangzhen-01 ~]$ ls -ld /root/ #来看一下这个文件的权限,因为是普通用户,所以访问不了root
dr-xr-x---. 6 root root 185 3月 29 00:21 /root/在这里,我们回到root用户下,执行:
.
在这里,绿色的/usr/bin/ls还并没有赋予“s权限”
我们可以给这个ls文件添加“s”权限
[root@zhangzhen-01 ~]# chmod u+s /usr/bin/ls
再来查看这个文件权限
添加成功!
再回到普通用户下,实验一下是否可以查看root下的文件呢
[zhang-02@zhangzhen-01 ~]$ ls /root/ #ok,这这里可以查到
anaconda-ks.cfg dior dior2 dior3
[zhang-02@zhangzhen-01 ~]$ ls -ld /root/
dr-xr-x---. 6 root root 185 3月 29 00:21 /root/
**如何删除已添加的“s”,权限,命令如下:
[root@zhangzhen-01 ~]# chmod u-s /usr/bin/ls
概念:其功能和操作和set uid是一样的
该权限可以作用在二进制可执行文件,也可以作用在目录上;
当作用在文件上时,其功能和操作和set uid是一样的;
它会使文件在执行阶段具有文件所属组的权限;
目录被设置这个权限后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。
操作命令如下:
概念:可以理解为防删除位,文件是否可以被某用户删除;
主要取决于该文件所在的目录是否对该用户具有写权限;
如果没有写权限,则这个目录下的所有文件都不能删除;
同时也不能添加新的文件。
如果希望用户能够添加文件但不能删除该目录下其他用户的文件时;
则可以对父目录增加该权限,如设置后,就算用户对目录具有写权限;
也是不能删除其他用户的文件。
命令如下:chmod u=b /tmp/
示例
在普通用户下创建个文件
[zhang-02@zhangzhen-01 tmp]$ touch zhang1 #在/tmp下创建个zhang1的文件
[zhang-02@zhangzhen-01 tmp]$ ls
zhang1
[zhang-02@zhangzhen-01 tmp]$ chmod 777 zhang1 #赋予最高的权限
[zhang-02@zhangzhen-01 tmp]$ ls -l zhang1#查看这个文件的所有者和所属组是谁
-rwxrwxrwx. 1 zhang-02 zhang-02 13 3月 29 23:26 zhang1
切到另外一个普通用户 user1下,查看是否可以编辑和删除。
[root@zhangzhen-01 tmp]# su - user1
[user1@zhangzhen-01 tmp]$ ls
zhang1
[user1@zhangzhen-01 tmp]$ vi zhang1 # 可以编辑,已测试
[user1@zhangzhen-01 tmp]$ rm -f zhang1 #但是在这里并不可以删除
rm: 无法删除"zhang1": 不允许的操作
概念:软连接类似于windows的快捷方式,
软链接不只可以连接文件,也可以链接目录。
软连接后面可以跟绝对路径;
也可以跟相对路径,相对路径的话得在你要去的目录下
命令如下:ln -s [源文件] [目标文件]
### 建议使用绝对路径。
如果你创建软连接不存在的时候,会红色常闪,那么直接在这个路径下touch一个文件即可。
软连接是什么样子呢,如下图,浅蓝色:
如何创建软链接,命令如下:ln -s [源文件] [目标文件]
例:
[root@zhangzhen-01 /]# mkdir /root/111
[root@zhangzhen-01 /]# ln -s /tmp/yum.log /root/111/
[root@zhangzhen-01 /]# ls -l /root/111/
总用量 0
lrwxrwxrwx. 1 root root 12 3月 29 23:55 yum.log -> /tmp/yum.log
如何创建软链接目录,操作如下:ln -s [源目录] [目标目录]
[root@zhangzhen-01 /]# ln -s /tmp/dior/ /root/111/zhang
[root@zhangzhen-01 /]# ls -l /root/111
总用量 0
lrwxrwxrwx. 1 root root 12 3月 29 23:55 yum.log -> /tmp/yum.log
lrwxrwxrwx. 1 root root 10 3月 29 23:59 zhang -> /tmp/dior/
概念:硬链接不支持对目录做硬链接,只支持对文件做。
即便是硬链接源地址被删除,也不受影响,相当于windows复制。
inode号如果相同有N个文件,也不会占用空间,因为数据都存在了inode里面。
文件做硬链接可以,但是有一个前提,不可以跨分区
命令如下 :ln [源地址] [目标地址]
查看inode号:
#如下命令中,第二段表示inode号
[root@zhangzhen-01 ~]# ls -l
总用量 8
drwxr-xr-x. 2 root root 34 3月 29 23:59 111
-rw-------. 1 root root 6901 3月 27 22:40 anaconda-ks.cfg
drwxr-xr-x. 2 root user1 32 3月 28 22:44 dior
d---------. 3 root root 45 3月 28 23:26 dior2
drwxrwxr-x. 2 root root 19 3月 29 00:22 dior3
[root@zhangzhen-01 ~]# ls -i #查看inode号
499815 111 33574978 anaconda-ks.cfg 499801 dior 33575028 dior2 16784710 dior3
标签:特殊权限set_uid 特殊权限set_gid 特殊权限stick_bit 软链接文件 硬连接文件
原文地址:http://blog.51cto.com/13646023/2092760