Sudo sem senha de um comando contendo uma vírgula

3

Eu tenho um número de usuários de uma máquina desktop, cada um com uma pasta em um servidor samba remoto. Estou tentando configurar a instalação por usuário dessas pastas de rede seguindo as instruções aqui:

link

Esse artigo recomenda adicionar a seguinte linha aos sudoers:

user ALL= NOPASSWD: /bin/mount -t cifs -o cred=/home/user/.Music.cred //server/music /home/user/MyMusicFolder

Esse comando funciona bem, mas eu preciso montar os compartilhamentos para que eles sejam de propriedade de um grupo específico. Eu tentei mudar a linha para ler assim:

user ALL= NOPASSWD: /bin/mount -t cifs -o cred=/home/user/.Music.cred,gid=xxx //server/music /home/user/MyMusicFolder

Mas com a adição do arquivo gid = xxx, o arquivo sudoers não é mais analisado corretamente. Suponho que isso ocorra porque o comando NOPASSWD, na verdade, recebe uma lista de argumentos separados por vírgula, portanto, preciso escapar da vírgula no comando. Eu posso fazer isso usando uma barra invertida, assim:

user ALL= NOPASSWD: /bin/mount -t cifs -o cred=/home/user/.Music.cred\,gid=xxx //server/music /home/user/MyMusicFolder

Agora o arquivo sudoers será analisado e eu posso executar o comando mount com o sudo sem que seja solicitada uma senha. Infelizmente, agora recebo este erro:

Sorry, user is not allowed to execute '/bin/ls /home/' as root on ubuntu.

quando tento executar qualquer outro comando. Eu não recebo este erro se eu remover o \,gid=xxx da linha. Então, qual é o caminho certo para escapar de vírgulas no arquivo sudoers?

    
por Rob Beagrie 31.12.2012 / 00:33

1 resposta

8

Na página sudoers(5) man:

Note that the following characters must be escaped with a '\' if they are used in command arguments: ',', ':', '=', '\'.

    
por 31.12.2012 / 03:28