(补)2.1学习笔记——特殊权限set_uid、特殊权限set_gid、特殊权限stick_bit、软连接文件、硬链接文件

一特殊权限set_uid

set_uid 该权限针对二进制可执行文件。让执行该命令的用户以该命令拥有者的权限去执行,好比passwd这个命令就具备该权限。当普通用户执行passwd命令时,能够临时拥有root权限,从而能够更改密码。node

[root@glinux-01 ~]# which passwd
/usr/bin/passwd
[root@glinux-01 ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd   //rws权限

系统密码文件:/etc/shadowlinux

[root@glinux-01 ~]# ls -l /etc/shadow
----------. 1 root root 828 1月  20 15:37 /etc/shadow

注意:这里全部者,所属组,其余用户都没有执行权限,可是root是超级用户,它具备至高无上的权限,因此root用户是能够修改密码的;按理说普通用户没有执行权限是没办法去修改密码的,可是咱们passwd命令具备s权限,普通用户在使用命令passwd时,能够临时获取到passwd所属主的root权限,因此能修改密码。windows

例子:使用普通用户查看/root/目录:ui

[root@linux-128 ~]# ls -ld /root/     //root目录没有其余用户可执行权限;
    dr-xr-x---. 3 root root 163 10月 25 00:45 /root/
    [root@linux-128 ~]# su - gg     //切换用户
    上一次登陆:一 10月 23 21:56:30 CST 2017pts/0 上
    [gg@linux-128 ~]$ ls /root/
    ls: 没法打开目录/root/: 权限不够      //没有权限

咱们怎样才能让普通用户gg打开/root/目录呢? 解:咱们给ls命令加上一个s权限,让用户gg临时拥有ls的全部者权限;例如:spa

[root@linux-128 ~]# which ls
    alias ls='ls --color=auto'
    	/usr/bin/ls
    [root@linux-128 ~]# chmod u+s /usr/bin/ls
    [root@linux-128 ~]# ls -l /usr/bin/ls
    -rwsr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls
    [root@linux-128 ~]# su - gg
    上一次登陆:五 10月 27 00:18:52 CST 2017pts/0 上
    [gg@linux-128 ~]$ ls /root/
    anaconda-ks.cfg

chmod u+s /usr/bin/ls能够用这种方法给文件增长s权限。code

chmod u-s /usr/bin/ls能够用这种方法给文件取消s权限。rem

  • chmod u+s 二进制文件名
  • chmod u=rws 二进制文件名
  • chmod 4755 二进制文件名 这个4是这样得出来的:
    suid = 4
    sgid = 2
    stick_bit = 1


二 特殊权限set_gid

set_gid:该权限能够做用在二进制可执行文件上,也能够做用在目录上。看成用在文件上时,其功能和set_uid同样,它会使文件在执行阶段具备该文件所属组的权限。做用在目录上时,任务用户在此目录下建立的文件和目录都具备和该目录所属组相同的组。同步

  • chmod g+s 二进制文件名或目录
  • chmod g=rws 二进制文件名或目录
  • chmod 2755 二进制文件名或目录

子:做用在二进制文件上it

[root@linux ~]# ls -l /bin/ls
-rwxr-xr-x. 1 root root 112664 10月 15 2014 /bin/ls
[root@linux ~]# chmod g+s /bin/ls                \\/bin/ls 加上sgid
[root@linux ~]# !ls
ls -l /bin/ls
-rwxr-sr-x. 1 root root 112664 10月 15 2014 /bin/ls     \\颜色会变成黄色
[root@linux ~]# su - wzzhan       
[wzzhan@linux ~]$ ls /root             \\wzzhan用户会调用命令ls属组的权限去访问/root目录
111.bak  444    5.txt  777              install.log         prem
222      4.txx  6.txt  anaconda-ks.cfg  install.log.syslog  test

例子:做用于目录上test

[root@linux tmp]# mkdir 555            \\建立目录555
[root@linux tmp]# chmod 777 555        \\设置权限全部人可读可写可执行
[root@linux tmp]# su - wzzhan          \\切换用户 wzzhan下
[wzzhan@linux ~]$ cd /tmp/555          
[wzzhan@linux 555]$ mkdir dir          \\建立目录dir
[wzzhan@linux 555]$ touch file         \\建立文件file
[wzzhan@linux 555]$ logout             \\退出用户到root下
[root@linux tmp]# chmod g+s 555        \\将目录555添加sgid权限
[root@linux tmp]# su - wzzhan          \\切换用到wzzhan下

[wzzhan@linux tmp]$ cd 555
[wzzhan@linux 555]$ mkdir dir1          \\建立目录dir1
[wzzhan@linux 555]$ touch file1         \\建立文件file1
[wzzhan@linux 555]$ ls -l
总用量 8
drwxrwxr-x. 2 wzzhan wzzhan 4096 10月 27 15:04 dir
drwxrwsr-x. 2 wzzhan root   4096 10月 27 15:06 dir1    \\建立的目录的属组是调用的目录的属组
-rw-rw-r--. 1 wzzhan wzzhan    0 10月 27 15:04 file
-rw-rw-r--. 1 wzzhan root      0 10月 27 15:06 file1   \\建立的文件的属组也是调用的目录的属组

三 特殊权限stick_bit

sticky_bit:防删除位。一个目录下的文件能不能被删除,不是取决于文件自己的属组属组还有其余权限, 而是在于这个文件所在目录的权限是否可读可写可执行,若是目录可写,那就意味着咱们能够删除目录下的任何文件。当一个目录的权限为其余人可读可写可执行的时候,那么其余用户均可以删除这个目录下的文件,包括root文件,为了防止文件被其余用户删除,咱们给这这个目录增长一种特殊权限:sticky,防删除位,要用root用户操做。这样一个用户就不能删除另外一个用户建立的文件了。只有root和建立文件本人才可以删除。

设置t权限:

  • chmod o+t 目录
  • chmod o=rwt 目录
  • chmod 1755 目录

例子:

root@linux ~]# cd /tmp
[root@linux tmp]# chmod o+t 666
[root@linux tmp]# ls -ld 666
drwxrwxrwt. 3 root root 4096 10月 27 15:42 666
[root@linux tmp]# su - user1
[user1@linux ~]$ cd /tmp/666
[user1@linux 666]$ ls -l
总用量 8
drwxrwxr-x. 2 wzzhan wzzhan 4096 10月 27 15:42 11
-rw-r--r--. 1 root   root    337 10月 27 15:22 1.txt
-rw-r--r--. 1 root   root      0 10月 27 15:22 1.xt
-rw-rw-r--. 1 wzzhan wzzhan    0 10月 27 15:42 2.txt
[user1@linux 666]$ rm -r 111
rm: 没法删除"111": 没有那个文件或目录
[user1@linux 666]$ rm -r 11
rm:是否删除有写保护的目录 "11"?y
rm: 没法删除"11": 不容许的操做
[user1@linux 666]$ rm -r 1.txt
rm:是否删除有写保护的普通文件 "1.txt"?y
rm: 没法删除"1.txt": 不容许的操做
[user1@linux 666]$ rm -rf 2.txt
rm: 没法删除"2.txt": 不容许的操做
[user1@linux 666]$ logout
[root@linux tmp]# ls
1      22.txt  3      555  6.txt  file1  test1
1.txt  2.txt   3.txt  666  dir1   test   yum.log
[root@linux tmp]# cd 666
[root@linux 666]# ls
11  1.txt  1.xt  2.txt
[root@linux 666]# rm -rf 11
[root@linux 666]# ls
1.txt  1.xt  2.txt
[root@linux 666]# su - wzzhan
[wzzhan@linux ~]$ cd /tmp/666      
[wzzhan@linux 666]$ ls -l
总用量 4
-rw-r--r--. 1 root   root   337 10月 27 15:22 1.txt
-rw-r--r--. 1 root   root     0 10月 27 15:22 1.xt
-rw-rw-r--. 1 wzzhan wzzhan   0 10月 27 15:42 2.txt
[wzzhan@linux 666]$ rm 2.txt           用户wzzhan才能删除2。txt文件
[wzzhan@linux 666]$ ls -l
总用量 4
-rw-r--r--. 1 root root 337 10月 27 15:22 1.txt
-rw-r--r--. 1 root root   0 10月 27 15:22 1.xt


四软连接文件

软链接至关于windows中的快捷方式

[root@glinux-01 ~]# ls -l /bin
lrwxrwxrwx. 1 root root 7 1月   6 04:44 /bin -> usr/bin  //ls指令就是软链接/bin/ls 指向的是/usr/bin/ls
[root@glinux-01 ~]# /bin/ls
anaconda-ks.cfg  bad  boduo.av	cuowu  zhengque
[root@glinux-01 ~]# /usr/bin/ls
anaconda-ks.cfg  bad  boduo.av	cuowu  zhengque

软链接用处:

  1. 能够节省空间

ln 连接,生产连接文件

   ln -s 【原文件或目录】【目标文件】

   软链接,相似windows快捷方式,权限都为rwx

[root@glinux-01 gao]# ln -s lianxi1/1.txt lianxi2/1ls.txt

[root@glinux-01 lianxi2]# ls -l
总用量 0
lrwxrwxrwx. 1 root root 13 2月   4 15:45 1ls.txt -> lianxi1/1.txt

 建立软链接最好用绝对路径。

小案例:

cp /boot/aming.log  /aming.log
 rm /boot/aming.log;ln -s /aming.log  /boot/aming.log
为防止/boot/aming.log这个文件过大,占满空间,能够用软链接方式解决此问题。


五硬链接文件

硬连接:当系统要读取一个文件时,会先读取inode信息,而后再根据inode的信息到块区域将数据取出来。而硬连接就是直接在创建一个inode连接到文件放置的块区域,即进行硬连接时,该文件的内容没有任何变化,只是增长了一个指向这个文件的inode,并不会额外占用磁盘空间。

 ln 【原文件】【目标文件】 不能是目录

   硬连接,相似cp -p +同步更新

   硬连接文件和原文件属性同样,id号同样,不能跨分区,原文件删除,硬连接文件依旧存在

相关文章
相关标签/搜索