我有一个名为“tony”的用户,它没有使用命令 fdisk 的权限,所以我喜欢这样:
vim /etc/sudoers
# add the following line
tony ALL=(root) /sbin/fdisk
之后,我转换回tony
,并运行 command fdisk -l
,但我仍然收到以下错误:没有足够的权限,
但是当我运行命令时sudo -l
,我可以得到这个:
(root) /sbin/fdisk
我有点困惑为什么用户 tony 仍然没有运行权限fdisk
?
答案1
当/etc/sudoers
用于授予以特定用户(通常为root
)运行某些命令的权限时,该用户仍需要在该命令前添加前缀sudo
。换句话说,你应该运行sudo fdisk -l
而不是仅仅fdisk -l
.
因为sudo
它是一个安全关键型工具,它甚至可能需要您指定实际的允许的命令的路径,而不是包含符号链接的路径。在 RHEL 8 的全新安装中,经典目录/bin
和/sbin
目录已分别替换为/usr/bin
和 的符号链接/usr/sbin
。
您可能想运行realpath /sbin/fdisk
并查看它报告的内容:如果它显示/usr/sbin/fdisk
,那么您应该将该sudoers
行指定为:
tony ALL=(root) /usr/sbin/fdisk