以普通用户身份运行 updatedb(使用 plocate 包)

以普通用户身份运行 updatedb(使用 plocate 包)

我希望普通用户能够更新locateLinux 中命令使用的数据库。使用 的先前版本locate(由 软件包提供mlocate),我通过在 中添加以下条目来实现此目的/etc/sudoers

user ALL = (ALL) NOPASSWD: /usr/bin/updatedb

但是,这不适用于新版本locate(由包提供plocate),运行时会打印以下错误updatedb

/var/lib/plocate/: Permission denied

允许普通用户运行的最简单的方法是什么updatedb

PS:有一个与我类似的问题2012,但它适用于较旧的软件包,slocate

答案1

使用updatedbw/o 的一种方法sudo是使用doas

doas配置为/etc/doas.conf。该配置具有简单的结构:

permit nopass <user> as <another user> cmd <command>

例如,我的doas.conf

permit nopass pg as root cmd apt 
permit nopass pg as root cmd dmesg
permit nopass pg as root cmd mount
permit nopass pg as root cmd umount
permit nopass pg as root cmd updatedb

有了它,我就可以运行命令apt、、dmesgmountumountupdatedb无需sudo。CLI 上的命令格式为

doas updatedb

了解更多信息:

相关内容