montar um compartilhamento cifs sem raiz / fstab

0

Olá, é possível montar um compartilhamento de samba sem privilégios de root?

Atualmente, tenho um programa em java que precisa acessar um compartilhamento de smb. (indexará todos os arquivos no compartilhamento smb e criará alguns pdfs)

Como o IP ou o nome DNS do compartilhamento pode mudar (ele deve ser modificável na interface) não posso colocá-lo no arquivo fstab.

Além disso, não quero executar meu aplicativo como usuário root, pois isso seria muito ruim. Existem outras coisas que eu poderia fazer, que TODOS os usuários em um sistema Linux poderiam montar compartilhamentos cifs sem colocar o ponto de montagem no arquivo fstab?

    
por Christian Schmitt 09.12.2013 / 13:56

1 resposta

0

Você não pode escapar de ser root se quiser montar um recurso para todos os usuários: afinal, você está invadindo a configuração do sistema de outros usuários, e somente o root tem permissão para fazer isso.

Apesar de todas as suas restrições, você ainda pode fazer isso. Você terá que escrever um script de shell que encontre o compartilhamento a ser montado e montá-lo. Vou descrevê-lo para você (desculpe, estou com pressa).

1) Este comando

   sudo nmap -sP 192.168.1.0/24

(assumindo que sua LAN é 192.168.1.0, substitua os números apropriados para sua LAN) retornará uma lista de todos os computadores ativos.

2) alimente essa lista com este comando, um de cada vez,

   nmblookup -A 192.168.1.72

e ele retornará o nome NetBios do pc em questão.

3) consulta a existência de compartilhamentos do Samba com este comando:

   smbclient -L net_bios_name_just-found -N

isto lhe dará uma lista de todos os compartilhamentos neste sistema, usando o nome netBios que você acabou de encontrar. Em meio a esses resultados, você encontrará o compartilhamento de samba de que precisa.

Neste ponto, você sabe o endereço IP e o nome do NetBios do PC host e, é claro, o nome do compartilhamento do Samba que você está interessado. Agora você pode montar o compartilhamento como root, como quiser.

Se você escrever estes comandos, você pode:

1) executá-lo à vontade como root apenas para testá-lo; 2) insira-o no crontab (como root, crontab -e) com a seguinte linha:

   @boot /home/my_name/bin/my_special_script

certificando-se de que my_special_script seja executável. O compartilhamento será montado toda vez que você inicializar.

Felicidades, tenho que ir.

    
por 09.12.2013 / 15:38