cap_fowner能力分析

  • cap_fowner: 忽略文件属主ID必须与进程用户ID一致

简单来说就是:当进程/可执行文件拥有cap_fowner能力时, 如果用户A(非特权用户)对文件F(属主为root)执行写入后,该文件的属主会变为A

那么让我们基于CentOS7,透过下面例子来理解cap_fowner的功能:

  1. 创建用户test,用于测试
$ adduser test
  1. 使用root身份创建一个文件
$ touch /home/test/ddd
$ ls -l /home/test/ddd
-rw-r--r-- 1 root root 0 Nov  4 13:52 /home/test/ddd
  1. vim添加cap_fowner的功能
$ setcap cap_fowner=eip /usr/bin/vim
  1. 切换至test用户对/home/test/ddd编辑写入
$ su - test
$ vim /home/test/ddd
$ exit

写入数据后:wq!保存退出,查看此时文件属主(已变为test

$ ls -l /home/test/ddd
-rw-r--r-- 1 test test 16 Nov  4 13:54 /home/test/ddd
  1. 查看vimCAP
$ getcap /usr/bin/vim
/usr/bin/vim = cap_fowner+eip

清理vimCAP

$ setcap -r /usr/bin/vim

清理测试用例

$ userdel -r test
Copyright © weiliang 2021 all right reserved,powered by Gitbook本书发布时间: 2024-04-22 16:03:41

results matching ""

    No results matching ""