在openstack組件中可能會需要用root權限去運行某些命令。目前是通過rootwrap實現的。
官方wiki:
https://wiki.openstack.org/wiki/Rootwrap
以nova爲例,安裝nova後,會將一下文件放在sudoers.d目錄下:
[root@ci91szcmp003 sudoers.d]# cat /etc/sudoers.d/nova
Defaults:nova !requiretty
nova ALL = (root) NOPASSWD: /usr/bin/nova-rootwrap /etc/nova/rootwrap.conf *
這使得nova可以以root權限運行nova-rootwrap. 而在rootwarp.conf中定義了filters_path=/etc/nova/rootwrap.d,/usr/share/nova/rootwrap。這兩個目錄中定義的命令的filter,也就是說這些filter中定義的命令就可以用root權限執行了。需要注意/etc/nova/rootwrap.d,/usr/share/nova/rootwrap必須是root權限才能修改。當我們需要定義一個新的需要root權限的命令時,僅需要修改這些filter。