![是否可以在不使用 sudo 的情况下向用户授予特定权限?](https://linux22.com/image/224381/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%9C%A8%E4%B8%8D%E4%BD%BF%E7%94%A8%20sudo%20%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%90%91%E7%94%A8%E6%88%B7%E6%8E%88%E4%BA%88%E7%89%B9%E5%AE%9A%E6%9D%83%E9%99%90%EF%BC%9F.png)
我不会添加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
解决方案是最简单的...