Monte el recurso compartido de samba al iniciar sesión usando el script de inicio (no fstab)

Monte el recurso compartido de samba al iniciar sesión usando el script de inicio (no fstab)

Fondo

Estoy intentando ejecutar automáticamente un comando que monta un recurso compartido Samba protegido con contraseña cuando mi usuario inicia sesión. El problema es que comparto mi computadora portátil con otro usuario ynoquiero que se monte el recurso compartido de Samba cuando ella inicie sesión. Solo quiero que se montecuando inicio sesión. Eso descarta editar mi archivo fstab porque quiero que sea específico del usuario.

Investigaciones anteriores

He buscado y revisado muchas preguntas y respuestas relacionadas con el montaje de recursos compartidos de Samba, incluido "Montar Samba Shares al iniciar/iniciar sesión y usar un script" y "Entrada fstab adecuada para montar un recurso compartido de samba en el arranque", pero la mayoría de las respuestas implican editar fstab, lo cual funciona muy bien para la mayoría de las personas, pero eso no es lo que estoy buscando aquí.

Lo que he hecho hasta ahora

Puedo montar manualmente el recurso compartido Samba desde la línea de comando haciendo esto:

sudo mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,credentials=/home/scott/.smbcredentials,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

Planteamiento del problema

El comando anterior funciona muy bien cuando lo ejecuto desde la línea de comando: me solicita mi contraseña para obtener permiso sudo, la ingreso y el comando se ejecuta. El problema es que cuando agrego exactamente el mismo comando al campo "Comando" en Preferencias de aplicaciones de inicio > Editar programa de inicio, guardo mis cambios, reinicio y vuelvo a iniciar sesión, el recurso compartido Samba no se monta como esperaba. Sospecho que es porque necesito permiso de root para ejecutar como sudo, y con el script en las Preferencias de Programas de Inicio, no hay forma de ingresarlo, por lo que el script simplemente falla.

¿Cómo puedo solucionar esto?

Respuesta1

Bien, logré resolver esto por mi cuenta (con la ayuda de otros). El problema subyacente era, como sospechaba, el hecho de que estaba intentando ejecutar un comando que requería privilegios de root sin proporcionar una contraseña. Resolví este problema siguiendo las instrucciones del hilo "¿Cómo hago sudo un comando en un script sin que me pidan una contraseña?". En pocas palabras, creé un script de shell llamado "script-mount-samba-share.sh" que no contiene nada más que una sola línea con el comando de montaje que quiero ejecutar:

mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,credentials=/home/scott/.smbcredentials,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

Luego, cambié la propiedad del archivo a root:root y cambié sus permisos a 700. Luego, configuré sudo para permitir ejecutar ese script sin ingresar una contraseña, y luego cambié el campo "Comando" en Preferencias de aplicaciones de inicio > Editar inicio Programe "sudo /home/scott/script-mount-samba-share.sh" (sin las comillas) y listo. La próxima vez que reinicié e inicié sesión con mi usuario, el recurso compartido de Samba se montó sin que yo moviera un dedo. También probé que cuando reinicio e inicio sesión con un usuario diferente, el recurso compartido de Samba no se monta, que es lo que quiero.

El único inconveniente menor que estoy tratando de superar ahora es que, cuando ya inicié sesión y luego cambio de usuario a otra persona, mi recurso compartido de Samba todavía aparece en la barra de navegación de la izquierda en Nautilus, lo cual tiene sentido tal como estaba. montado cuando inicié sesión con mi propio usuario, pero no quiero que el recurso compartido montado se muestre en Nautilus para el otro usuario, por lo que mi próxima tarea es descubrir cómo hacer que esa parte suceda.

Respuesta2

Es importante agregar el nombre de usuario y la contraseña para el comando de montaje; de ​​lo contrario, podría solicitar la contraseña. para mí esto funcionó:

sudo mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,user=,password=,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

por supuesto con todos los cambios en /etc/sudoers

información relacionada