我有一个用繁忙的盒子构建的嵌入式系统。我允许名为“app”的用户将程序/脚本下载到目录,它将在启动时运行。
应允许程序设置日期。它以“app”用户身份运行。
如何设置 busybox 以允许非 root 用户“app”设置日期?我尝试添加suid权限:chmod u+s /bin/busybox.nosuid
但是不起作用。另外,busybox 对于为什么有 nosuid 和 suid 版本非常贫乏,但显然它们是用不同的应用程序编译的。系统上没有“sudo”。
root# which date
/bin/date
root# ls -l /bin/date
lrwxrwxrwx 1 root root 19 Apr 22 2016 /bin/date -> /bin/busybox.nosuid
root# ls -l /bin/busybox.nosuid
-rwsr-xr-x 1 root root 14 Apr 22 2016 /bin/busybox.nosuid
root# date
Thu Jan 15 03:43:24 CET 1970
root# date -s 10:30
Thu Jan 15 10:30:00 CET 1970
root# date
Thu Jan 15 10:30:01 CET 1970
root# su app
app$ date
Thu Jan 15 10:30:10 CET 1970
app$ date -s 11:00
date: can't set date: Operation not permitted
Thu Jan 15 11:00:00 CET 1970
app$ date
Thu Jan 15 10:30:21 CET 1970
答案1
如果您有“suid”版本的busybox
,您可以尝试让date
命令以 root 身份执行,如下所示:
文件/etc/busybox.conf
:
...
[SUID]
date = ssx root.root
...