Linux学习0917

 

 

2.18 特殊权限set_uid
2.19 特殊权限set_gid
2.20 特殊权限stick_bit
2.21 软连接文件
2.22 硬链接文件node

 

1、特殊权限set_uidlinux

    linux中有个特殊权限:普通用户临时拥有某个命令全部者的权限。如:passwd命令windows

    设定set_uid的前提条件:二进制、可执行文件ui

    咱们查看如下passwd命令这个权限,发现是红色的 而且权限位第三位是s,这个就是set_uid权限3d

    

    为何要设置set_uid权限?code

    咱们普通用户平时也是能够使用passwd命令来进行修改权限,来看一下用来保存密码的文件:/etc/shadow 这个文件权限很是严谨是:-------- ,任何人都没权限修改(root用户拥有至高无上的权限),可是普通用户仍是能够使用passwd修改就是由于这个set_uid权限,普通用户在使用passwd命令时临时拥有了root权限。blog

    

    

    如何添加set_uid权限rem

   普通用户是没有执行ls /root/的权限,咱们使用chmod u+s ls 命令赋予set_uid权限,普通用户就能够使用ls 查看root目录了:it

[wxy@wxy03 ~]$ ls /root/
ls: cannot open directory /root/: Permission denied
[root@wxy03 ~]# chmod u+s /usr/bin/ls
[root@wxy03 ~]# su - wxy
Last login: Mon Sep 17 22:03:02 CST 2018 on pts/0
[wxy@wxy03 ~]$ ls /root/
[wxy@wxy03 ~]$ ls /root/
test.txt


以前能够使用 chmod u=rwx  这种方式添加权限,set_uid能够使用这种吗?io

[root@wxy03 ~]# ll /usr/bin/ls
-rwsr-sr-x. 1 root root 117656 Nov  6  2016 /usr/bin/ls
[root@wxy03 ~]# chmod u=rws /usr/bin/ls
[root@wxy03 ~]# ll /usr/bin/ls
-rwSr-sr-x. 1 root root 117656 Nov  6  2016 /usr/bin/ls

能够添加,可是s变成了S。这有什么影响呢,S是说明文件没有执行权限。

ps:目录也是能够添加set_uid权限的,可是没什么做用。

 

2、set_gid

    这个和set_uid相似,做用是普通用户临时拥有某个命令所属组的权限。set_gid能够适用于文件和目录,当在文件上使用时和set_uid的做用同样,做用在目录时:当你建立子文件和子目录时权限跟父目录的权限同样。

[root@wxy03 ~]# chown wxy 1
[root@wxy03 ~]# ll -d 1/
drwxr-xr-x 2 wxy root 4096 Sep 17 22:30 1/
[root@wxy03 ~]# chmod g+s 1/

 

[root@wxy03 ~]# mkdir 1/22
[root@wxy03 ~]# ll 1/
total 4
drwxr-sr-x 2 root root 4096 Sep 17 22:32 22

 

三、 特殊权限stick_bit

    防删除权限:防止文件别其它用户删除本身的文件,用户除外。

    系统中/tmp/目录就有这个权限,权限位用“t”表示。tmp的权限是777,虽有人都有权限,若是别人乱删除那就乱套了,有了stick_bit权限这样就能够防止其它普通用户乱删除的状况了。

[root@wxy03 ~]# ll -d /tmp/
drwxrwxrwt. 11 root root 4096 Sep 17 22:35 /tmp/

    stick_bit权限能够删除,可是其它用户仍是能够进行修改的:

[root@wxy03 ~]# chmod o+t /tmp/test/
[root@wxy03 ~]# chmod 777 /tmp/test/
[root@wxy03 ~]# su - wxy
Last login: Mon Sep 17 22:44:36 CST 2018 on pts/0
[wxy@wxy03 ~]$ rm -rf /tmp/test/
rm: cannot remove ‘/tmp/test/’: Operation not permitted
[wxy@wxy03 ~]$ mkdir /tmp/test/111.txt
[wxy@wxy03 ~]$

 

4、软链接

    软链接就是在文件自己存了另一个文件的路径,相似于windows的快捷方式。

    /bin 就是一个软链接,它实际的路径是usr/bin

    建立软链接方式:

    ln -s  源文件   目标文件

    示例:

[root@wxy03 ~]# ln -s /tmp/1.txt  /root/1^C
[root@wxy03 ~]# ln -s /tmp/1.txt  /home/1111.txt
[root@wxy03 ~]# ll /home/1111.txt 
lrwxrwxrwx 1 root root 10 Sep 17 22:53 /home/1111.txt -> /tmp/1.txt

软链接也可适用于目录:

[root@wxy03 ~]# ln -s /tmp/test/  /root/
[root@wxy03 ~]# ll /root/
total 4
drwxr-sr-x 3 wxy  root 4096 Sep 17 22:32 1
lrwxrwxrwx 1 root root   10 Sep 17 22:51 test -> /tmp/test/

软链接的优势:节省磁盘空间,快捷方便。

注意事项:作软链接最好是作成绝对路径,由于若是不作成绝对路径软链接文件一旦挪动位置就会失效。

 

5、硬连接

    linux系统中文件都会分一个编号就是inode,linux中多个文件指向到一个inode就是硬连接。多个相同inode的文件只会占用一个文件的空间。

    用法: ln  源文件 目标文件

    示例:

[root@wxy03 home]# ln 1.txt 2.txt
[root@wxy03 home]# ll -i
total 8
73732 -rw-r--r-- 2 root root 68 Sep 17 23:21 1.txt
73732 -rw-r--r-- 2 root root 68 Sep 17 23:21 2.txt

以上能够看到1.txt和2.txt的indoe、大小、时间都是彻底相同的,可是文件名不一样。

1.txt和2.txt实际上是一个文件,他们互为硬连接,删除一个不受影响。

硬连接能够建立多个,只会占用一个文件的空间大小。

[root@wxy03 home]# ln test/ 222
ln: ‘test/’: hard link not allowed for directory

硬连接只能对文件使用,目录没法使用。

[root@wxy03 home]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G  1.8G   45G   4% /
devtmpfs        911M     0  911M   0% /dev
tmpfs           920M   24K  920M   1% /dev/shm
tmpfs           920M  344K  920M   1% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
tmpfs           184M     0  184M   0% /run/user/0
[root@wxy03 home]# ln /dev/initctl /tmp/iii
ln: failed to create hard link ‘/tmp/iii’ => ‘/dev/initctl’: Invalid cross-device link

硬连接不能跨分区建立,由于每一个分区都有本身的inode,格式化的时候就设置好了。

相关文章
相关标签/搜索