setcap-changes是永久的


11

将setcap用于文件时,此更改是否是永久性的,还是我必须在启动时在某处调用setcap?

setcap cap_sys_nice fooexecutable

Answers:


15

setcap上的文件存储功能,在一个呼叫的扩展属性setxattr。此扩展属性与其他属性(所有权,权限...)一样存储在文件系统中。

从内核2.6.24开始,内核支持使用setcap(8)将功能集与可执行文件相关联。文件功能集存储在名为security.capability的扩展属性(请参阅setxattr(2))中。

因此,您不必在每次重新启动时重设上限。


如果文件被替换怎么办?
ryanwinchester

1
@ryanwinchester如果仅更改文件的内容,没问题,但是如果删除/重新创建文件,则setcap容量也将删除。
塞德里克朱利安

:(啊,这就是我的问题。我有一个脚本,该脚本可以重建目录,然后启动服务器监听端口80。我需要找出一种不必setcap每次都运行的方法
ryanwinchester

“如果仅更改文件的内容,就没问题”是不正确的。更改文件的内容将导致其功能被删除。参见unix.stackexchange.com/a/283408/2526
理查德·费恩

0

所做的更改是永久性的,但与一起使用时遇到了问题nodejs

您可以authbind用来提供用户权限

sudo touch /etc/authbind/byport/80
sudo chown user:user /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.