以普通用户身份执行具有 root 权限的命令

以普通用户身份执行具有 root 权限的命令

我想以普通用户身份执行命令,但我希望拥有 root 权限。具体来说,我创建了一个 VirtualBox 物理驱动器,我想以普通用户身份使用它。

我可以sudo访问 VirtualBox,但这样会给出未配置的 VirtualBox。另一方面,如果我想将原始图像(按照VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sda文档创建)添加为虚拟机的驱动器,则会给出权限错误。

所以基本上我有这些:多个虚拟机,所有虚拟机都带有虚拟驱动器vdivmdk图像。现在我想拥有另一个虚拟机,但这次带有物理驱动器,并且我需要我的普通用户有权限执行此操作(可能需要输入我的密码才能授予其 root 访问权限,我主要担心的是它应该以特定用户身份执行,而不是以 root 身份执行,尽管它具有 root 权限)。

这有可能吗?如果可能,怎么做?

答案1

到目前为止,大多数现代系统都使用 udev,并且更改 /dev 下的任何权限/所有者在主机系统重新启动之前都有效。

我建议采取以下行动:

  1. ls -l /dev/sda

    在我的系统上它看起来像这样:

    brw-rw----   1 root   disk        8,   0 янв.  11 13:43 sda
    

    因此磁盘组具有读写权限

  2. sudo gpasswd -a 你的用户磁盘

    我们刚刚将您的用户添加到磁盘组

  3. 最重要的一步:重新登录你的用户或重新启动主机系统,因为在此之前你的用户磁盘组成员资格将不会生效

答案2

您必须更改 /dev/sda 上的权限,以便 VirtualBox 用户可以对其进行读取和写入。

https://forums.virtualbox.org/viewtopic.php?t=333

答案3

我认为您可能可以使用文件权限而不是 sudo 来解决这个问题?

可能值得检查你的用户是否属于 vboxusers 组:

sudo usermod -a -G vboxusers 用户名

如果失败,请尝试更改相关文件的权限:

chmod 760 /路径/到/文件.vmdk

应创建如下权限:

-rwxrw---- 1 个用户组 0 1 月 23 日 10:35 /path/to/file.vmdk

其中 rwx = 用户的读/写/执行权限

其中 rw- = 组的读/写

其中 --- = 其他用户无权限

您可以在目录上运行以下命令以确保用户也具有访问权限:

chmod 770 /路径/到/

drwxrwx--- 2 用户组 4096 1月23日 10:40 /path/to/

(有关 chmod 的更多信息,请参见此处:http://www.computerhope.com/unix/uchmod.htm

或者,如果虚拟驱动器仅由您提到的“用户”使用,而其他用户则不行,那么您可以简单地将文件的所有权转让给该用户,让他们以该用户身份登录时拥有对文件的完全访问权限。(并且可能为了整洁将文件复制到他们的主目录中?可选。)

chown 用户名 /path/to/file.vmdk

仍然需要用户具有该目录的权限才能访问该文件。

(有关 chown 的更多信息,请参见此处:http://www.computerhope.com/unix/uchown.htm

答案4

你可以尝试这个:

runuser -l lambda -c 'ls -la'

ls -la您想要以非 root 身份执行的命令(示例)在哪里,并且lambda是像任何经典的普通 Linux 用户帐户一样创建的普通用户。

您是想要使用普通账户的 root 用户。作为 root 用户,您不需要提供普通账户密码。

相关内容