Permitir que usuários não administradores montem unidades via nautilus

7

Eu quero conceder privilégios de montagem aos usuários não administradores para montar as unidades via nautilus. Não quero que eles forneçam outro privilégio de administrador. Eu também não quero usar o método setuid.

Como posso conseguir isso? Estou usando o Ubuntu 12.04.

    
por Anwar 09.09.2012 / 08:47

1 resposta

9

Eu resolvi esse problema alterando a política padrão. Existem três maneiras de conseguir isso:

Ao dar privilégio a um grupo

  1. Primeiro, crie um grupo mounter usando este comando:

     sudo addgroup mounter
    
  2. Em seguida, adicione os usuários não administradores a esse grupo. Por exemplo, estou adicionando o usuário não administrador normal a esse grupo.

     sudo adduser normal mounter
    
  3. Em seguida, abra o arquivo de políticas com privilégio de administrador.

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  4. Na parte superior do arquivo, há uma seção como esta:

    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin;unix-group:sudo;
    Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
    ResultActive=yes
    

    Adicione unix-group:mounter; após Identity=unix-group:admin;unix-group:sudo; na primeira linha da seção. A seção alterada será parecida com esta

    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin;unix-group:sudo;unix-group:mounter;
    Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
    ResultActive=yes   
    

É isso. Agora, os usuários não administrativos podem montar as unidades sem exigir senha de administrador. Eles só precisam ser adicionados ao grupo mounter . Nota para adicionar um usuário novice ao grupo mounter , execute este comando: sudo adduser novice mounter .

Por dar privilégio ao usuário específico

Se você não quiser criar outro grupo, basta adicionar o nome de usuário (nome de login) nesse arquivo.

  1. Abra o arquivo de políticas com privilégio de administrador. Você pode digitar este comando em um terminal ou no prompt de traço pressionando Alt - F2 .

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  2. Em seguida, adicione unix-user:<login-name> na linha Identity na seção [Mounting, checking, etc. of internal drives] . Lembre-se de usar o nome de login do usuário, não o literal. . Por exemplo, se você quiser dar ao usuário tester este privilégio, a linha ficará como abaixo

    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin;unix-group:sudo;unix-user:tester;
    Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
    ResultActive=yes
    
  3. Salve o arquivo e saia do gedit.

Ao dar privilégio a todos os usuários

Os dois métodos acima não funcionarão para o usuário padrão no Ubuntu. Como o usuário convidado é criado dinamicamente no login e é excluído após o logout.

Para solucionar isso, você pode conceder a todos os usuários esse privilégio.

  1. Abra o arquivo de políticas com privilégio de administrador. Você pode digitar este comando em um terminal ou no prompt de traço pressionando Alt - F2 .

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  2. Em seguida, adicione unix-user:* na linha Identity na seção [Mounting, checking, etc. of internal drives] . Após a modificação, a seção ficará como abaixo:

    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin;unix-group:sudo;unix-user:*;
    Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
    ResultActive=yes
    
  3. Salve o arquivo e saia do gedit.

ATUALIZAÇÕES

  1. Testado em 14.04. Funciona da maneira descrita na resposta
por Anwar 09.09.2012 / 08:47