我有一台(通常)离网的机器,它有来自 GPS 的串行时间信息流。我已捕获该信息,并尝试使用自动更新我的系统时间sudo timedatectl set-time
,但它一直要求我输入密码(我不想使用密码)。我了解到我应该更新 sudoers 文件,但我发现我的格式是错误的。这是我所拥有的,它仍然要求我输入密码。我很感激任何反馈。
# User privilege specification
root ALL=(ALL:ALL) ALL
yellowfin ALL=(ALL) NOPASSWD: /usr/bin/timedatectl
答案1
/etc/sudoers 文件仅影响命令正在 运行sudo
.如果 timedatectl 没有通过“sudo”运行,它会显示不同的密码提示(来自 polkit 又名 PolicyKit),与 /etc/sudoers 无关。
要么运行sudo timedatectl
以利用添加的规则,要么编辑/etc/polkit-1/rules.d/
以允许时间通过波尔基特机制。
但是如果您正在寻找任何类型的准确性,您可能需要比 timedatectl 进行的 D-Bus 调用更直接的东西(在几次后端调用之后) - 最好使用它来调整系统时间/usr/bin/date --set
。
(这将是甚至更好chrony
或中使用内置 GPS 接收器支持ntpd
。)