cap_mknod解析

  • cap_mknod: 允许使用mknod()系统调用

首先我们需要了解:mknod()是用来干什么?

mknod()主要用于创建块设备,mknod指令是其具体实现。

接下来我们了解下mknod指令。

mknod指令

指令格式

$ mknod [选项] [名称] [类型] [主设备号] [次设备号]
  1. 创建用户test,用于测试
$ adduser test
  1. root用户创建一个块设备
$ mknod /dev/sdb b 8 0
$ ls /dev/sdb
brw-r--r--. 1 root root 8, 0 Nov  6 07:02 /dev/sdb
  1. test用户创建一个块设备
$ whoami
test
$ mknod /tmp/tnod1 c 1 5
mknod: ‘/tmp/tnod1’: Permission denied
  1. root用户为/usr/bin/mknod授予cap_mknod能力
$ whoami
root
$ setcap cap_mknod=eip /usr/bin/mknod
  1. 切换test用户再次创建一个块设备
$ whoami
test
$ mknod /tmp/tnod1 c 1 5
  1. 清理测试用例
$ userdel -r test
$ setcap -r /usr/bin/mknod
Copyright © weiliang 2021 all right reserved,powered by Gitbook本书发布时间: 2024-04-22 16:03:41

results matching ""

    No results matching ""