Execute um comando com permissões de root como usuário normal

0

Eu quero executar um comando como se eu fosse o meu usuário normal, mas eu quero ter certas permissões root. Em particular, eu criei um drive VirtualBox phyiscal que eu quero usar como usuário normal.

Eu posso sudo para o VirtualBox, mas isso dá um VirtualBox não configurado. Por outro lado, se eu quiser adicionar minha imagem bruta (criar por VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sda conforme a documentação) como a unidade de uma máquina virtual, isso me dará um erro de permissão.

Então, basicamente, eu tenho isso: várias máquinas virtuais, todas com unidades virtuais em vdi ou vmdk images. Agora eu quero ter outra VM, mas desta vez com uma unidade phyiscal e preciso que meu usuário normal tenha permissões para fazer isso (possivelmente ao entrar na minha senha para dar acesso root, minha principal preocupação é que ela seja executada como um específico usuário e não como root, embora tenha permissões de root).

Isso é possível? Se sim, como?

    
por javex 23.01.2013 / 00:12

4 respostas

3

Até agora, a maioria dos sistemas modernos usa o udev, e a alteração de quaisquer permissões / proprietários em / dev são eficazes até o reinício do sistema host.

Sugiro as seguintes ações:

  1. ls -l / dev / sda

    No meu sistema, é assim:

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

    para que o grupo de discos tenha acesso de gravação de leitura

  2. sudo gpasswd -a seu disco de usuário

    Acabamos de adicionar seu usuário ao disco do grupo

  3. Etapa mais importante: relogar seu sistema de host ou reinicializar, porque até então a associação ao grupo de discos do usuário não será efetiva

por 23.01.2013 / 06:32
1

You have to change the permissions on /dev/sda so that the VirtualBox user can read and write to it.

de link

    
por 23.01.2013 / 00:56
0

Eu acho que você provavelmente pode resolver esse problema com permissões de arquivo em vez de sudo ??

Pode valer a pena verificar se o seu usuário está no grupo de vboxusers:

sudo usermod -a -G vboxusers username

Caso contrário, tente alterar as permissões do arquivo em questão:

chmod 760 /path/to/file.vmdk

deve criar permissões como as seguintes:

-rwxrw ---- 1 grupo de usuários 0 Jan 23 10:35 /path/to/file.vmdk

onde rwx = leitura / gravação / execução para o usuário

onde rw- = lê / escreve para o grupo

onde --- = sem permissões para outros usuários

Você pode executar o seguinte no diretório para garantir que o usuário tenha acesso também:

chmod 770 / caminho / para /

drwxrwx --- 2 grupo de usuários 4096 Jan 23 10:40 / path / to /

(mais informações sobre chmod aqui: link )

OU se a unidade virtual só for usada pelo "usuário" que você mencionou e nenhum outro usuário, você pode simplesmente chown o arquivo para aquele usuário, dando a ele acesso total ao arquivo quando logado do utilizador. (e, possivelmente, copiar o arquivo em seu diretório home para ser arrumado? opcional.)

nome de usuário chown /path/to/file.vmdk

Ainda requer que o usuário tenha permissões para esse diretório para que ele possa acessar o arquivo.

(mais informações sobre chown aqui: link )

    
por 23.01.2013 / 01:17
0

Você pode tentar isso:

runuser -l lambda -c 'ls -la'

Onde ls -la é o comando (exemplo) que você deseja executar como não-raiz e lambda é um usuário normal criado como qualquer conta de usuário normal do Linux clássico.

Você é uma raiz que deseja usar uma conta normal. Como root, você não precisa fornecer a senha normal da conta.

    
por 24.04.2016 / 12:21