• 特殊权限set_uid 特殊权限set_gid 特殊权限stick_bit 软链接文件 硬连接文件


    set_uid:该权限针对二进制可执行文件,使文件执行阶段具有文件所有者的权限。

    [root@lizhipeng01 ~]# ls -l /usr/bin/passwd                                      s是set_uid的权限,当普通用户执行passwd命令时,可以临时获得root权限,从而可以更改密码。
    -rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd   

    [root@lizhipeng01 home]# su - lzp                                                    切换到其他用户下
    [lzp@lizhipeng01 ~]$ whoami
    lzp
    [lzp@lizhipeng01 ~]$ ls /root/                                                             普通用户lzp用ls查看/root/目录下,无法查看,因为dr-xr-x---,因此我们尝试给ls添加set_uid,让它在执行的时候临时拥有/root/主,root的权限
    ls: 无法打开目录/root/: 权限不够
    [lzp@lizhipeng01 ~]$ ls -ld /root/
    dr-xr-x---. 8 root root 4096 12月 19 06:29 /root/

    [root@lizhipeng01 ~]# chmod u+s /usr/bin/ls
    [root@lizhipeng01 ~]# ls -l /usr/bin/ls
    -rwsr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls

    [lzp@lizhipeng01 ~]$ ls /root/                                                             可以查看了,
    1.txt anaconda-ks.cfg bb dir3 split_dir test5 testc.txt
    2.txt a.txt dir2 dir4 test4 testb.txt 学习计划安排.txt

    [lzp@lizhipeng01 ~]$ ls -ld /root/                                                         但是other的权限并没有改变
    dr-xr-x---. 8 root root 4096 12月 19 06:29 /root/                                  

    [root@lizhipeng01 ~]# chmod u-s /usr/bin/ls
    [root@lizhipeng01 ~]# ls -l /usr/bin/ls
    -rwxr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
    [root@lizhipeng01 ~]# chmod u=rws /usr/bin/ls                               
    [root@lizhipeng01 ~]# ls -l /usr/bin/ls
    -rwSr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls                        S是因为没有x权限,加上x,就会变成小s
    [root@lizhipeng01 ~]# chmod u+x /usr/bin/ls
    [root@lizhipeng01 ~]# ls -l /usr/bin/ls
    -rwsr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls

    set_gid:该权限可以作用在文件上(二进制可执行文件),也可以作用在目录上。当作用在文件上时,其功能和set_uid一样,它会使文件在执行阶段具有文件所属组的权限。目录被设置这个权限后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。

    [root@lizhipeng01 ~]# chmod u=rwx /usr/bin/ls
    [root@lizhipeng01 ~]# chmod g+s /usr/bin/ls
    [root@lizhipeng01 ~]# ls -l /usr/bin/ls
    -rwxr-sr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls

    [root@lizhipeng01 ~]# mkdir 234
    [root@lizhipeng01 ~]# ls -ld 234
    drwxr-xr-x. 2 root root 6 12月 20 06:14 234
    [root@lizhipeng01 ~]# chmod g+s 234                   组加上set_gid
    [root@lizhipeng01 ~]# ls -ld 234
    drwxr-sr-x. 2 root root 6 12月 20 06:14 234
    [root@lizhipeng01 ~]# chown :user1 234                改变所属组为user1
    [root@lizhipeng01 ~]# ls -ld 234
    drwxr-sr-x. 2 root user1 6 12月 20 06:15 234
    [root@lizhipeng01 ~]# touch 234/lizhipenglinux    234/目录下创建文件lizhipenglinux
    [root@lizhipeng01 ~]# ls -l 234                              lizhipenglinux所属组与上级目录一样,都是user1
    总用量 0
    -rw-r--r--. 1 root user1 0 12月 20 06:16 lizhipenglinux
    [root@lizhipeng01 ~]# mkdir 234/lzpdir                 234/目录下创建子目录lzpdir
    [root@lizhipeng01 ~]# ls -ld 234/lzpdir                   lzpdir所属组与上级目录一样,都是user1
    drwxr-sr-x. 2 root user1 6 12月 20 06:17 234/lzpdir
    [root@lizhipeng01 ~]# chmod g-s 234                   去除set_gid
    [root@lizhipeng01 ~]# touch 234/lizhipenglinux02    创建文件lizhipenglinux02
    [root@lizhipeng01 ~]# ls -l 234
    总用量 0
    -rw-r--r--. 1 root user1 0 12月 20 06:16 lizhipenglinux
    -rw-r--r--. 1 root root 0 12月 20 06:18 lizhipenglinux02      所属组变成root
    drwxr-sr-x. 2 root user1 6 12月 20 06:17 lzpdir
    [root@lizhipeng01 ~]# mkdir 234/lzpdir2
    [root@lizhipeng01 ~]# ls -ld 234/lzpdir2                             所属组变成root
    drwxr-xr-x. 2 root root 6 12月 20 06:18 234/lzpdir2

    sticky bit:可以理解为防删除位:文件是否可以被用户删除,主要取决于该文件所在的目录是否对该用户具有写权限。如果没有写权限,则这个目录下的所有文件都不能删除,同时也不能添加新的文件。如果希望用户能够添加文件但不能删除该目录下其他用户的文件,则可以对父目录增加该权限。设置该权限后,就算用户对目录具有写权限,也不能删除其他用户的文件。

    [root@lizhipeng01 ~]# ls -ld /tmp/
    drwxrwxrwt. 12 root root 4096 12月 20 05:26 /tmp/

    [lzp@lizhipeng01 ~]$ cd /tmp/                               开启另一个终端
    [lzp@lizhipeng01 tmp]$ touch lizp                         创建文件
    [lzp@lizhipeng01 tmp]$ ls -l lizp
    -rw-rw-r--. 1 lzp lzp 0 12月 20 06:42 lizp

    [lzp@lizhipeng01 tmp]$ vi lizp                               编辑文件
    [lzp@lizhipeng01 tmp]$ chmod 777 lizp                改变权限
    [lzp@lizhipeng01 tmp]$ ls -l lizp
    -rwxrwxrwx. 1 lzp lzp 21 12月 20 06:43 lizp

    [root@lizhipeng01 tmp]# su - user1                      第一个终端切到user1用户

    [user1@lizhipeng01 ~]$ cd /tmp/
    [user1@lizhipeng01 tmp]$ vi lizp                           可以对他进行编辑
    [user1@lizhipeng01 tmp]$ rm -f lizp                      但是无法删除;防删除
    rm: 无法删除"lizp": 不允许的操作

    软链接(类似于windows的快捷方式)、硬链接

    [user1@lizhipeng01 tmp]$ ls -l /bin
    lrwxrwxrwx. 1 root root 7 11月 26 21:00 /bin -> usr/bin
    [user1@lizhipeng01 tmp]$ /bin/ls
    bb lizhipenglinux lizp ls2 lzp split_dir test
    [user1@lizhipeng01 tmp]$ /usr/bin/ls
    bb lizhipenglinux lizp ls2 lzp split_dir test

    [root@lizhipeng01 tmp]# touch yum.log       创建yum.log文件
    [root@lizhipeng01 tmp]# ls
    bb lizhipenglinux lizp ls2 lzp split_dir test yum.log
    [root@lizhipeng01 tmp]# ln -s /tmp/yum.log /root/
    [root@lizhipeng01 tmp]# ls
    bb lizhipenglinux lizp ls2 lzp split_dir test yum.log
    [root@lizhipeng01 tmp]# ln -s /tmp/yum.log /root/111/yum.log
    ln: 无法创建符号链接"/root/111/yum.log": 没有那个文件或目录
    [root@lizhipeng01 tmp]# mkdir /root/111/
    [root@lizhipeng01 tmp]# ln -s /tmp/yum.log /root/111/yum.log                /root/111/yum.log指向/tmp/yum.log
    [root@lizhipeng01 tmp]# ls -l /root/111/
    总用量 0
    lrwxrwxrwx. 1 root root 12 12月 21 04:09 yum.log -> /tmp/yum.log

    [root@lizhipeng01 tmp]# ln -s /tmp/lizhipenglinux /root/111/lizhipeng3          软链接目录
    [root@lizhipeng01 tmp]# ls -l !$                                                                      上一条命令的最后一个参数
    ls -l /root/111/lizhipeng3
    lrwxrwxrwx. 1 root root 19 12月 21 04:19 /root/111/lizhipeng3 -> /tmp/lizhipenglinux       注意是绝对路径

    [root@lizhipeng01 tmp]# ln -s yum.log lizhipeng.log                                                         不是绝对路径,相对路径
    [root@lizhipeng01 tmp]# ls -l
    总用量 4
    drwxr-xr-x. 2 root root 6 12月 10 05:18 bb
    drwxr-xr-x. 2 root root 6 12月 18 05:20 lizhipenglinux
    lrwxrwxrwx. 1 root root 7 12月 21 04:21 lizhipeng.log -> yum.log            不是绝对路径
    -rwxrwxrwx. 1 lzp lzp 35 12月 20 06:46 lizp
    -rw-r--r--. 1 root root 0 12月 18 05:54 ls2
    drwxr-xr-x. 3 root root 33 12月 18 06:08 lzp
    drwxr-xr-x. 2 root root 6 12月 10 05:18 split_dir
    drwxr-xr-x. 2 root root 6 12月 17 04:56 test
    -rw-r--r--. 1 root root 0 12月 21 04:07 yum.log

    [root@lizhipeng01 tmp]# mv lizhipeng.log /root/111/           yum.log正好存在,这个例子不能说明相对路径的问题。
    [root@lizhipeng01 tmp]# cd /root/111/
    [root@lizhipeng01 111]# ls
    lizhipeng3 lizhipeng.log yum.log
    [root@lizhipeng01 111]# ls -l
    总用量 0
    lrwxrwxrwx. 1 root root 19 12月 21 04:19 lizhipeng3 -> /tmp/lizhipenglinux
    lrwxrwxrwx. 1 root root 7 12月 21 04:21 lizhipeng.log -> yum.log
    lrwxrwxrwx. 1 root root 12 12月 21 04:09 yum.log -> /tmp/yum.log

    [root@lizhipeng01 ~]# mv 111/lizhipeng.log 123/
    [root@lizhipeng01 ~]# cd 123/
    [root@lizhipeng01 123]# ls-l
    -bash: ls-l: 未找到命令
    [root@lizhipeng01 123]# ls -l
    总用量 0
    lrwxrwxrwx. 1 root root 7 12月 21 04:21 lizhipeng.log -> yum.log             这个yum.log一直再闪,因为当前目录下没有这个文件

    [root@lizhipeng01 123]# touch yum.log
    [root@lizhipeng01 123]# ls -l
    总用量 0
    lrwxrwxrwx. 1 root root 7 12月 21 04:21 lizhipeng.log -> yum.log
    -rw-r--r--. 1 root root 0 12月 21 04:37 yum.log

    [root@lizhipeng01 123]# ls
    lizhipeng.log yum.log
    [root@lizhipeng01 123]# rm -f yum.log                 删除yum.log

    [root@lizhipeng01 123]# mv ../111/yum.log .        将../111/yum.log移到当前目录
    [root@lizhipeng01 123]# ls -l                                 软链接依然存在
    总用量 0
    lrwxrwxrwx. 1 root root 7 12月 21 04:21 lizhipeng.log -> yum.log
    lrwxrwxrwx. 1 root root 12 12月 21 04:09 yum.log -> /tmp/yum.log                 软链接依然存在

    硬链接:不支持对目录做硬链接,只支持对文件做。硬链接和所链接的文件使用相同的inode,相互为硬链接文件。不能跨文件系统,因为不同的文件系统有不同的inode table

    [root@lizhipeng01 ~]# ln 111 lizhipeng111
    ln: "111": 不允许将硬链接指向目录

    [root@lizhipeng01 ~]# ln /boot/config-3.10.0-229.el7.x86_64 /tmp/config.1
    ln: 无法创建硬链接"/tmp/config.1" => "/boot/config-3.10.0-229.el7.x86_64": 无效的跨设备连接

  • 相关阅读:
    Variable() placeholder() constant() 的区别
    scrapy-redis+selenium+webdriver 部署到linux上
    scrapy-redis+selenium+webdriver解决动态代理ip和user-agent的问题(全网唯一完整代码解决方案)
    [学习记录]NLTK常见操作二(分句,分词,词干提取)
    [学习记录]NLTK常见操作一(去网页标记,统计词频,去停用词)
    [学习记录]python正则表达式
    [学习记录]MySQL之初级查询语句(select,where)
    [学习记录]pymysql的基本操作
    [学习记录]MySQL临时整理
    [学习记录]面对wxpython的长跑(100米:wxpython安装,相关文件,wx.App,wx.Frame)
  • 原文地址:https://www.cnblogs.com/sisul/p/8075910.html
Copyright © 2020-2023  润新知