Я хочу выполнить команду, как если бы я был моим обычным пользователем, но я хочу иметь права доступа root. В частности, я создал виртуальный диск VirtualBox, который я хочу использовать как обычный пользователь.

Я могу sudo к VirtualBox, но это дает ненастроенный VirtualBox. С другой стороны, если я хочу добавить свой необработанный образ (создать с VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sda согласно документации) в качестве диска для виртуальной машины, он дает мне ошибка разрешения.

Поэтому в основном у меня есть это: несколько виртуальных машин, все с виртуальными дисками в vdi или vmdk изображений. Теперь я хочу иметь другую виртуальную машину, но на этот раз с физическим диском, и мне нужно, чтобы у моего обычного пользователя были разрешения для этого (возможно, при вводе моего пароля, чтобы предоставить ему root-доступ, моя главная проблема заключается в том, чтобы он выполнялся как определенный пользователь, а не как пользователь root, хотя у него есть права root).

Это вообще возможно? Если так, то как?

4 ответа4

3

До сих пор большинство современных систем используют udev, и изменение любых разрешений / владельцев в / dev действует до перезагрузки хост-системы.

Я предлагаю следующие действия:

  1. ls -l /dev /sda

    В моей системе это выглядит так:

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

    поэтому группа дисков имеет права на чтение и запись

  2. sudo gpasswd -a диск пользователя

    Мы только что добавили вас в групповой диск

  3. Самый важный шаг: перезапустите youruser или перезагрузите хост-систему, потому что до этого членство в группе дисков youruser не будет эффективным

1

Вы должны изменить разрешения для /dev /sda, чтобы пользователь VirtualBox мог читать и писать в него.

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

0

Я считаю, что вы, вероятно, можете решить эту проблему с правами доступа к файлам, а не sudo ??

Возможно, стоит проверить, что ваш пользователь находится в группе vboxusers:

sudo usermod -a -G vboxusers имя пользователя

В противном случае попробуйте изменить права доступа к рассматриваемому файлу:

chmod 760 /path/to/file.vmdk

должны создать разрешения, подобные следующим:

-rwxrw ---- 1 группа пользователей 0 янв 23 10:35 /path/to/file.vmdk

где rwx = чтение / запись / выполнение для пользователя

где rw- = чтение / запись для группы

где --- = нет разрешений для других пользователей

Вы можете запустить следующее в каталоге, чтобы гарантировать, что пользователь также имеет доступ:

CHMOD 770 / путь / к /

drwxrwx --- 2 группа пользователей 4096 23 января 10:40 / путь / к /

(больше информации о chmod здесь: http://www.computerhope.com/unix/uchmod.htm )

ИЛИ, если виртуальный диск будет использоваться только тем "пользователем", которого вы упомянули, и никаким другим пользователем, вы можете просто ограничить файл этим пользователем, предоставив ему полный доступ к файлу при входе в систему от имени этого пользователя. (и, возможно, скопировать файл в их домашний каталог, чтобы быть аккуратным? необязательный.)

chown username /path/to/file.vmdk

Все еще требует, чтобы у пользователя были разрешения на этот каталог, чтобы он мог получить доступ к файлу.

(больше информации о chown здесь: http://www.computerhope.com/unix/uchown.htm )

0

Вы можете попробовать это:

runuser -l lambda -c 'ls -la'

Где ls -la - это команда (пример), которую вы хотите выполнить как не-root, а lambda - обычный пользователь, созданный как любая классическая обычная учетная запись пользователя Linux.

Вы рут, который хочет использовать обычную учетную запись. В качестве пользователя root вам не нужно указывать обычный пароль учетной записи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .