У меня есть сервер, на котором есть несколько общих ресурсов CIFS, к которым необходимо получить доступ для каждого пользователя. Например, у меня есть Music share, к которому у меня есть полный доступ, но у моей жены есть доступ только для чтения.
Когда либо я, либо моя жена заходят на наш ноутбук Ubuntu 11.04 Я бы хотел, чтобы эти акции автоматически устанавливались для каждого пользователя. Теперь я понимаю, что если я смонтирован как -t cifs
без указания пользователя, он будет использовать переменную среды USER
. Тем не менее, мне также нужно указать пароль, так как я могу это сделать, когда у каждого пользователя есть другой пароль?
Я думаю, что мои вопросы:
Или, может быть, я чего-то не хватает, и есть совершенно другое решение. Может ли кто-нибудь помочь?
Возможно, возможно несколько решений; вот как я это сделаю. (Отказ от ответственности: непроверенный!)
Команда mount.cifs может считывать имя пользователя и пароль из переменных среды USER и PASSWD, но также может читать их из файла учетных данных, что вы указываете в командной строке с параметром -o cred=/path/to/credentials/file.
Подход учетных данных-файлов более простой для реализации.
Создайте текстовый файл $HOME/.Music.cred для хранения учетных данных; файл должен иметь этот формат:user=your-username-on-cifs-server
password=the-password
domain=leave-this-blank-unless-really-using-windows-domains
Защитить файл $HOME/.Music.cred; выполните эту команду в терминале: chmod go-rw $HOME/.Music.cred
Теперь вы можете смонтировать общий ресурс CIFS //server/music в каталоге MyMusicFolder с помощью этой команды: sudo mount -t cifs -o cred=$HOME/.Music.cred //server/music $HOME/MyMusicFolder
Вы можете разрешить каждому пользователю запускать это через sudo без пароля, добавив строку на /etc/sudoers: (одна строка для каждого пользователя) # replace every occurence of `user` with the actual account name
user ALL= NOPASSWD: /bin/mount -t cifs -o cred=/home/user/.Music.cred //server/music /home/user/MyMusicFolder
Если команда с шага 3. работала правильно, вы можете сделать ее автоматической несколькими способами: сохранить ее в сценарий оболочки в свой домашний каталог и сделать этот сценарий авто- (вы должны сделать это для каждого пользователя, которому необходимо установить CIFS-акции); сохраните его в сценарий оболочки /etc/X11/Xsession.d/30mount-cifs-shares, чтобы он работал для любого пользователя. В качестве альтернативы вы можете заменить шаги 3 и 4. выше с помощью mount.cifs :
Создать текстовый файл $HOME/.Music.cred для хранения учетных данных; файл должен иметь этот формат:user=your-username-on-cifs-server
password=the-password
domain=leave-this-blank-unless-really-using-windows-domains
Создайте текстовый файл $HOME/.Music.cred для хранения учетных данных; файл должен иметь этот формат:
<debug enable="1" />
<volume server="server" path="music" mountpoint="~/MyMusicFolder" options="cred=/home/%(USER)/.Music.cred" />
настроить /etc/security/pam_mount.conf.xml с помощью:
страницы man mount.cifs на странице руководства pam_mount.confВозможно, возможно несколько решений; вот как я это сделаю. (Отказ от ответственности: непроверенный!) [/ g6]
Команда mount.cifs может считывать имя пользователя и пароль из переменных среды USER
и PASSWD
но он также может читать их из файла «учетных данных», который вы указываете в командной строке с опцией -o
cred=/path/to/credentials/file
.
Подход учетных данных-файлов ИМХО проще реализовать.
$HOME/.Music.cred
для хранения учетных данных; файл должен иметь этот формат: user=your-username-on-cifs-server
password=the-password
domain=leave-this-blank-unless-really-using-windows-domains
$HOME/.Music.cred
; выполните эту команду в терминале: chmod go-rw $HOME/.Music.cred
//server/music
в каталоге MyMusicFolder
с помощью этой команды: sudo mount -t cifs -o cred=$HOME/.Music.cred //server/music $HOME/MyMusicFolder
Вы можете включить каждого пользователя для запуска этого через passwordless sudo , добавив строку к /etc/sudoers
: (одна строка для каждого пользователя) # replace every occurence of `user` with the actual account name
user ALL= NOPASSWD: /bin/mount -t cifs -o cred=/home/user/.Music.cred //server/music /home/user/MyMusicFolder
/etc/X11/Xsession.d/30mount-cifs-shares
, чтобы он работал для любого пользователя. В качестве альтернативы вы можете заменить шаги 3 и 4. выше с помощью pam-mount :
/etc/security/pam_mount.conf.xml
с помощью: <debug enable="1" />
<volume server="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 работал нормально.
В качестве заметки для меня и для других причиной отказа libpam-mount было:
CIFS VFS: Error connecting to socket. Aborting operation
CIFS VFS: cifs_mount failed w/return code = -101
было связано с тем, что моя беспроводная сеть еще не началась, когда libpam пытался монтировать , Чтобы исправить это, мне пришлось установить беспроводное соединение как «Доступно для всех пользователей» в настройках беспроводного соединения. Это позволяет подключиться к активации до входа пользователя в систему.
Как только я установил это свойство, libpam-mount работал нормально.
В качестве заметки для меня и для других причиной отказа libpam-mount было:
CIFS VFS: Error connecting to socket. Aborting operation
CIFS VFS: cifs_mount failed w/return code = -101
было связано с тем, что моя беспроводная сеть еще не началась, когда libpam пытался монтировать , Чтобы исправить это, мне пришлось установить беспроводное соединение как «Доступно для всех пользователей» в настройках беспроводного соединения. Это позволяет подключиться к активации до входа пользователя в систему.
Как только я установил это свойство, libpam-mount работал нормально.