我不会添加sudo
RPi 3 B+ 的 Buildroot 环境,因为我只需要apache2
使用date -s TIME
.
有没有办法在不安装和配置的情况下授予此权限sudo
?
答案1
我可以想到两种方法来做到这一点。
对于两者,您都需要编写和编译一个程序来完成您想要的工作(例如调用stime(2)
)。你不能直接打电话date
。
并且您需要一个只有运行 apache2 ( www-data
?) 的用户所在的组。在这两种情况下,我们都将执行程序的能力限制在指定的组中,因此其他人都无法运行它。
选项 1:使其成为 setuid root
chown root.thegroup yourprogram
chmod 4710 yourprogram
现在只有组内的人才能执行该程序,并且它以有效root身份运行。
选项 2:使用功能
chown root.thegroup yourprogram
chmod 710 yourprogram
setcap cap_sys_time=pe yourprogram
这将授予您的程序调用 settimeofday(2)、stime(2) 和 adjtimex(2) 的权限,而无需 root 权限。
但sudo
解决方案是最简单的...