У меня есть сервер, на котором есть несколько общих ресурсов CIFS, к которым необходимо обращаться отдельно для каждого пользователя. Например, у меня есть общий ресурс Music , к которому у меня есть полный доступ, но моя жена имеет доступ только для чтения.
Когда я или моя жена войдем в наш ноутбук с Ubuntu 11.04, я бы хотел, чтобы эти общие ресурсы автоматически устанавливались для каждого пользователя. Теперь я понимаю, что если я смонтирую как -t cifs
без указания пользователя, он будет использовать переменную окружения USER
. Тем не менее, мне также нужно указать пароль, так как я могу это сделать, когда у каждого пользователя свой пароль?
Я думаю, что мои вопросы:
Или, может быть, я что-то упустил, и есть полностью другое решение. Кто-нибудь может помочь?
Возможно несколько решений, вот как это сделать. (Disclaimer: untested!)
The mount.cifs
может прочитать имя пользователя и пароль из команды USER
и
PASSWD
переменные окружения, но он также может считывать их из
"credentials" file, который вы указываете в командной строке с помощью -o
cred=/path/to/credentials/file
.
Подход credentials-file проще реализовать IMHO.
Создайте текстовый файл $HOME/.Music.cred
для хранения учетных данных;
файл должен иметь такой формат:
user=your-usernamee-on-cifs-server
пароль=пароль
domain=leave-this- blank-unless-really-using-windows-domains
Защита файла $HOME/.Music.cred
; выполните эту команду в терминале:
chmod go-rw $HOME/.Music.cred
Теперь вы должны иметь возможность монтировать ресурс CIFS //сервер/музыку
на
каталог MyMusicFolder
с помощью этой команды:
sudo mount -t cifs -o cred=$HOME/.Music.cred //server/music $HOME/MyMusicFolder
Вы можете разрешить каждому пользователю пропускать это через безпассовое sudo путем
добавляя строку к /etc/sudoers
: (одна строка на пользователя)
# заменяйте каждое появление `пользователя` на фактическое имя учетной записи
пользователь ALL= NOPASSWD: /bin/mount -t cifs -o cred=/home/user/.Music.cred //сервер/музыка /home/user/MyMusicFolder
Если команда с шага 3. сработала правильно, вы можете сделать так. автоматически несколькими способами:
/etc/X11/Xsession.d/30mount-cifs-shares
.
чтобы он работал для любого пользователя.В качестве альтернативы, вы можете заменить вышеприведенные шаги 3. и 4. с помощью кнопки pam-mount:
install package libpam-mount
configure /etc/security/pam_mount.conf.xml
with:
<сервер громкости="server" path="music" mountpoint="~/MyMusicFolder" options="cred=/home/%(USER)/.Music.cred" />
Ссылки:
Как замечание для себя и для других, причина, по которой libpam-mount не работает:
CIFS VFS: Error connecting to socket. Aborting operation
CIFS VFS: cifs_mount failed w/return code = -101
была связана с тем, что моя беспроводная сеть еще не началась, когда libpam пытался установить кронштейны. Чтобы исправить это, мне нужно было установить беспроводное подключение как "Доступно для всех пользователей" в настройках беспроводного подключения. Это позволяет активировать соединение до того, как пользователь войдет в систему.
После того, как я установил это свойство, libpam-mount работал нормально.