下列的这解决方案,我想授予用户daemon
执行/bin/date
.这是我所做的:
apache2
找到生成时使用的用户:# ps | grep httpd 252 root /usr/bin/httpd -k start 260 daemon /usr/bin/httpd -k start 262 daemon /usr/bin/httpd -k start 264 daemon /usr/bin/httpd -k start 467 root grep httpd
找到正确的路径
date
:# which date /bin/date
使用
visudo
添加以下行:Cmnd_Alias DATE=/bin/date daemon ALL=NOPASSWD: DATE
重启
测试新权限:
# sudo -u daemon date -s "2023-09-09 10:16:00" date: can't set date: Operation not permitted Sat Sep 9 10:16:00 UTC 2023
我的语法有什么问题吗?我也尝试过:
ALL ALL=NOPASSWD: DATE
但都是一样的。这是一个 Buildroot 环境。
答案1
您需要指定与sudoers
配置匹配的确切路径。您的测试也是从后到前的:从 root 开始,您需要成为daemon
,然后尝试运行sudo
。
sudo -u daemon sudo /bin/date -s "2023-09-09 10:16:00"
应该管用。
(您当前的测试尝试date
以daemon
用户身份运行,这是行不通的。)