У меня есть сервер, на котором есть несколько общих ресурсов CIFS, к которым необходимо получить доступ для каждого пользователя. Например, у меня есть Music share, к которому у меня есть полный доступ, но у моей жены есть доступ только для чтения.
Когда либо я, либо моя жена заходят на наш ноутбук Ubuntu 11.04 Я бы хотел, чтобы эти акции автоматически устанавливались для каждого пользователя. Теперь я понимаю, что если я смонтирован как -t cifs
без указания пользователя, он будет использовать переменную среды USER
. Тем не менее, мне также нужно указать пароль, так как я могу это сделать, когда у каждого пользователя есть другой пароль?
Я думаю, что мои вопросы:
Или, может быть, я чего-то не хватает, и есть совершенно другое решение. Может ли кто-нибудь помочь?
Возможно, возможно несколько решений; вот как я это сделаю. (Отказ от ответственности: непроверенный!) [/ 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" />
Ссылки:
Возможно, возможно несколько решений; вот как я это сделаю. (Отказ от ответственности: непроверенный!) [/ 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" />
Ссылки:
Возможно, возможно несколько решений; вот как я это сделаю. (Отказ от ответственности: непроверенный!) [/ 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" />
Ссылки:
/etc/fstab
, заключается в том, что переменные типа $HOME
не расширяются; переменная подстановка содержимого является особенностью оболочки.
– Riccardo Murri
16 October 2011 в 19:44
В качестве заметки для меня и для других причиной отказа 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 работал нормально.