使用 visudo 授予权限仍会阻止用户执行命令

使用 visudo 授予权限仍会阻止用户执行命令

下列的解决方案,我想授予用户daemon执行/bin/date.这是我所做的:

  1. 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
    
  2. 找到正确的路径date

    # which date
    /bin/date
    
  3. 使用visudo添加以下行:

    Cmnd_Alias DATE=/bin/date                                               
    daemon ALL=NOPASSWD: DATE
    
  4. 重启

  5. 测试新权限:

    # 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"

应该管用。

(您当前的测试尝试datedaemon用户身份运行,这是行不通的。)

相关内容