Для монтирования пльзователем существует FUSE.
Поздновато прочел. А если пользователя добавить в fuse, он разве не сможет подключать и другие ресурсы по smb? Это запрещено. Нужно только один, заранее заданный root'ом.
В общем, пришлось напрячься (пробовал другими путями, в итоге пришел к одному) и получилось вот что.
В
/etc/sudoers добавил алиас:
User_Alias DOM = %domain\ users
и в этот же файл что дозволено этому алиасу:
DOM ALL=NOPASSWD: /share_mount/mnt_smb, /share_umount/umnt_smb
Теперь доменные пользователи могут запускать от имени root только 2 скрипта (по умолчанию они не суперпользователи и не могли использовать sudo)
/share_mount/mnt_smb и
/share_umount/umnt_smb, причем без ввода своего пароля.
Содержание
mnt_smb:
#!/bin/bash
user=$(echo $SUDO_USER)
home_user=$(eval echo ~$SUDO_USER)
#echo $user
#echo $home_user
com= mount.cifs //server/$SUDO_USER $home_user/smb -o iocharset=utf8,file_mode=0777,dir_mode=0777,sec=krb5
eval $com
Появляется шара (на сервере server подставляется логин), пароль ни на что нигде не вводится (билет kerberos).
Запускать можно только с укзаанием полного пути, как это прописано в
/etc/sudoers, т.е.:
sudo /share_mount/mnt_smb
Во втором скрипте отмонтирование.
Только сейчас выяснилось, что с помощью подключения к win-ресурсу невозможно реализовать задуманное (разрешить запись только с отдельных хостов некоторым пользователям домена, и запретить запись всем со всех остальных хостов, даже тем же пользователям). Т.е. пользователи подключаются по ssh к линуксу, могут читать и писать в описанную шару. Но если они к этой же шаре подключатся не с ssh-сервера, то должно быть read_only. В голову приходит NFS, но там проблема с разными UID и GID одного и того же доменного пользователя на разных линукс-серверах. Но это попозже опишу в другой теме...