sed是否以其他用户身份运行?

有意义的工程师

我有一个sed脚本,可以更改中的某些内容/etc/shadow实际的更改并不重要,我仅举一个例子:

root@device:~ sed -i 's/root:\(.*\):0:0/root:\1:10:0/' /etc/shadow
sed: can't create temp file '/etc/passwdH5HWP7': Permission denied

如输出所示,似乎存在一些权限错误,但是我正在以方式运行命令root

sed正在使用的是从BusyBox v1.22.1上嵌入的分布。

如果我在主文件夹中尝试该示例,则没有错误。另外,我可以/etc/shadow通过文本编辑器正常进行编辑。

是否sed以非root用户身份创建文件?

罗伊马

的原因可能是/(含/etc)是一个只读文件系统,但有一个符号链接/etc/shadow/etc/passwd和其他动态文件上读写文件系统的土地。

这样您就可以直接编辑shadowpasswd文件。之所以sed -i失败,是因为其实现实际上并未在适当位置进行更新。而是,它创建一个临时文件并写入更改,然后用该临时副本替换原始文件。您看到的错误消息说sed无法写入(临时)文件/etc/passwdH5HWP7

解决方案?不要自己使用-i和控制临时文件的位置,或者不要为-i标志提供文件名。在这两种情况下,都需要在具有读写访问权限的位置中提供文件名。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章