2012-11-14

mount без пароля

Задача: написать скрипт, который будет монтировать папку с удаленного win-сервера, и, после копирования файлов на локальную машину, отмонтировать её.
Казалось бы, ничего сложного, mount решает:

sudo apt-get install cifs-utils
sudo mount -t cifs //192.168.0.1/Folder /home/kawaikunee/Folder -o username=User,password=Pass,rw,file_mode=0777,dir_mode=0777
cp -a -n /home/kawaikunee/Folder/*.pdf /home/kawaikunee/Doc/PDFs/
sudo umount /home/kawaikunee/Folder

Да вот только одна проблема: скрипт должен работать автономно. И пароль sudo ему знать совсем не обязательно.

Решение: добавить пользователю, от чьего имени запускается скрипт, права на беспарольное использование sudo mount и sudo umount. Для этого внесём изменения в файл /etc/sudoers

sudo gedit /etc/sudoers

Добавим в него строчку:

kawaikunee linux = NOPASSWD: /bin/mount,/bin/umount

где первые два слова - имя пользователя и имя компьютера (они обычно представлены в приглашении терминала по умолчанию).

Задача решена. Скрипт использует sudo, но пароль у него не спрашивают.
P.S. Что-то мне подсказывает, что так можно и другие подобные задачи решить :)