使用root wrapper可以让非特权用户以root身份尽可能安全地执行部分操作。nova曾经使用sudoers文件来列出允许执行的特权命令,使用sudo来运行这么命令,但是这样不容易维护,而且不能进行复杂的参数处理,rootwrap就是为了解决这些问题。

使用sudo nova-rootwrap config-file command,而不再是使用sudo command。只需要使用一个通用的sudoers使nova-rootwrap以root身份运行。nova-rootwrap查看配置文件,加载command filters,检查请求的命令是否匹配某个filter,如果匹配就以root身份运行,否则就拒绝请求。

以devstack安装的openstack

stack@ubuntu :/home/openstack$ cat /etc/iscsi/initiatorname.iscsicat: /etc/iscsi/initiatorname.iscsi: Permission denied

显示没有权限,查看文件的权限

stack@ubuntu :/home/openstack$ ls -l /etc/iscsi/initiatorname.iscsi-rw------- 1 root root 348 Jan 5 05:21 /etc/iscsi/initiatorname.iscsi

只有root有读和写的权限,再用nova-rootwrap试试

sudo nova-rootwrap /etc/nova/rootwrap.conf cat /etc/iscsi/initiatorname.iscsi

可以查看文件内容了再看执行其他命令呢

stack@ubuntu :/root$ sudo nova-rootwrap /etc/nova/rootwrap.conf cat /etc/shadow/usr/local/bin/nova-rootwrap: Unauthorized command: cat /etc/shadow (no filter matched)

不能查看shadow文件,因为没有filter匹配到

sudoers文件是这么写的,路径在/etc/sudoers.d/nova-rootwrap
suoders.d文件夹下的配置都会被加载

stack ALL=(root) NOPASSWD: /usr/local/bin/nova-rootwrap /etc/nova/rootwrap.conf *

所以stack用户可以用nova-rootwrap带任何参数,而且不需要输入密码(NOPASSWD)

在nova.conf文件中定义了rootwrap的配置文件路径

rootwrap_config=/etc/nova/rootwrap.conf

在rootwrap.conf文件中

[DEFAULT]filters_path=/etc/nova/rootwrap.dexec_dirs=/sbin,/usr/sbin,/bin,/usr/binuse_syslog=Falsesyslog_log_facility=syslogsyslog_log_level=ERROR

filter_path包含filters的文件夹,多个文件夹以逗号分隔
exec_dirs为命令的路径,以逗号分隔多个目录

当使用 sudo nova-rootwrap /etc/nova/rootwrap.conf cat /etc/iscsi/initiatorname.iscsi 时,从filter_path目录下加载所有的filters 从所有filters中查找匹配到的filter,用一个新的进程执行

转载于:https://my.oschina.net/OQKuDOtsbYT2/blog/119990

nova-rootwrap笔记相关推荐

  1. openstack nova 分析笔记

    原文地址:https://blog.csdn.net/u010827484/article/details/82627646 Openstack Nova 分析笔记

  2. 【OpenStack】【Nova】安装与配置详解 (1)

    文章目录 centos-openstack-rocky仓库中Nova相关的包 openstack-nova-common包 openstack-nova-api包 openstack-nova-con ...

  3. nova与neutron交互

    1     nova命令 先介绍一下nova命令中与网络相关的一些参数. 1.1   指定网络启动虚机 usage: nova boot [--flavor <flavor>] [--im ...

  4. nova network-vif-plugged事件分析1

    在创建虚机过程中,nova-compute会调用wait_for_instance_event函数(nova/compute/manage.py)进行network-vif-plugged的事件等待, ...

  5. 虚拟创建失败之Dbus调试

    DBus调试命令 查询连接名 ### 查询所有连接名 # dbus-send --system --print-reply --dest=org.freedesktop.DBus / org.free ...

  6. Docker与OpenStack集成实战

    1.计算节点安装Docker root@compute2: ~# apt install docker.io -y 或 root@compute2:~# sh -c "echo deb ht ...

  7. Ubuntu 12.04 Server OpenStack Havana多节点(OVS+GRE)安装

    1.需求 节点角色 NICs 控制节点 eth0(10.10.10.51)eth1(192.168.100.51) 网络节点 eth0(10.10.10.52)eth1(10.20.20.52)eth ...

  8. OpenStack-Mitaka版本部署

    1.环境准备 centos7.2相关文件 镜像:https://mirrors.aliyun.com/centos-vault/7.2.1511/isos/x86_64/CentOS-7-x86_64 ...

  9. openstack虚拟机热迁移优化(victoria版)(附源码分析以及日志分析)

    优化目标 提高热迁移成功率 热迁移认知 热迁移是转移内存(或存储)的过程.源主机不断把虚拟机的内存转移到目的主机,直到源主机仅仅省一部分可以一次转移完成的内存未被转移,此时把源主机上的虚拟机暂停,转移 ...

最新文章

  1. matlab画梅花,基于Matlab图像素描生成算法究.doc
  2. weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB cannot be cast to oracle.sql.BLOB 解决方法
  3. 3D物体识别的如果检验
  4. 微信小程序--搭建linux服务器并部署java后端程序2021
  5. python演示验证图像叠加过程_Python叠加矩形框图层2种方法及效果代码实例
  6. 深蓝学院《从零开始手写VIO》作业七
  7. 实时事件日志记录和聚合的平台——Sentry
  8. Linux-Centos 安装Anaconda(2021)
  9. TensorFlow-RNN循环神经网络 Example 2:文本情感分析
  10. oracle as sydba,Oracle的操作系统认证(/ as sydba 登录方式)
  11. Perl 标量的操作符
  12. sysservers 中找不到服务器,请执行 sp_addlinkedserver 将该服务器添加到sysserver
  13. Android 集成友盟统计
  14. linux手机纠错软件,纠错神笔Lernstift:让你远离拼写错误
  15. python包和库的区别_python中模块、包、库的区别和使用
  16. FTDI通用转USB芯片简述
  17. 【Nginx】Nginx在Windows、Linux环境下的下载安装详细步骤
  18. 不忘初心,方得始终——NOIP2016前的感悟
  19. AIGC火了,但它能替代红人们吗?
  20. 基于python与scipy拟合椭圆

热门文章

  1. Matlab 点云均匀(等间隔)采样
  2. 与python相关的考研专业-那些选错专业的人,后来怎么样了?
  3. 【电赛备考】基于STM32控制的可调PWM输出+LCD显示
  4. 网考 计算机应用基础,计算机应用基础网考
  5. 《快速念咒——MySQL自学入门指南》:第1章——简单检索及数据过滤(前言)
  6. ctf实验室2020-11-28
  7. 好用的开源电路设计EDA工具--KiCAD使用入门
  8. Java 字符串比较大小
  9. 【Spring】Spring Framework Reference Documentation中文版18
  10. Ubuntu快速删除大量小文件方法