Автоматическая установка сетевых ресурсов для каждого пользователя

У меня есть сервер, на котором есть несколько общих ресурсов CIFS, к которым необходимо обращаться отдельно для каждого пользователя. Например, у меня есть общий ресурс Music , к которому у меня есть полный доступ, но моя жена имеет доступ только для чтения.

Когда я или моя жена войдем в наш ноутбук с Ubuntu 11.04, я бы хотел, чтобы эти общие ресурсы автоматически устанавливались для каждого пользователя. Теперь я понимаю, что если я смонтирую как -t cifs без указания пользователя, он будет использовать переменную окружения USER. Тем не менее, мне также нужно указать пароль, так как я могу это сделать, когда у каждого пользователя свой пароль?

Я думаю, что мои вопросы:

  1. Есть ли способ для мне иметь пользователя / etc / fstab ?
  2. Если нет, есть ли способ указать, что монтирование применимо только к определенному пользователю?
  3. Кроме того, пароль общего ресурса всегда совпадает с локальным паролем. Есть ли способ указать, что этот пароль должен просто передаваться от клиента к серверу, а не указывать его где-нибудь в файле учетных данных?

Или, может быть, я что-то упустил, и есть полностью другое решение. Кто-нибудь может помочь?

3
задан 16 October 2011 в 13:43

2 ответа

Возможно несколько решений, вот как это сделать. (Disclaimer: untested!)

The mount.cifs может прочитать имя пользователя и пароль из команды USER и PASSWD переменные окружения, но он также может считывать их из "credentials" file, который вы указываете в командной строке с помощью -o cred=/path/to/credentials/file.

Подход credentials-file проще реализовать IMHO.

  1. Создайте текстовый файл $HOME/.Music.cred для хранения учетных данных; файл должен иметь такой формат:

    user=your-usernamee-on-cifs-server
    пароль=пароль
    domain=leave-this- blank-unless-really-using-windows-domains
    
  2. Защита файла $HOME/.Music.cred; выполните эту команду в терминале:

    chmod go-rw $HOME/.Music.cred
    
  3. Теперь вы должны иметь возможность монтировать ресурс 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
    
  4. Если команда с шага 3. сработала правильно, вы можете сделать так. автоматически несколькими способами:

    • сохранить его в скрипт оболочки в вашем домашнем каталоге и сделать скрипт автоматически запускаемого приложения (вы должны сделать это для того. каждый пользователь, которому нужно смонтировать разделяемые CIFS);
    • сохраните его в сценарий оболочки /etc/X11/Xsession.d/30mount-cifs-shares. чтобы он работал для любого пользователя.

В качестве альтернативы, вы можете заменить вышеприведенные шаги 3. и 4. с помощью кнопки pam-mount:

  1. install package libpam-mount

  2. configure /etc/security/pam_mount.conf.xml with:

    
    <сервер громкости="server" path="music" mountpoint="~/MyMusicFolder" options="cred=/home/%(USER)/.Music.cred" />
    

Ссылки:

3
ответ дан 16 October 2011 в 13:43

Как замечание для себя и для других, причина, по которой libpam-mount не работает:

CIFS VFS: Error connecting to socket. Aborting operation
CIFS VFS: cifs_mount failed w/return code = -101

была связана с тем, что моя беспроводная сеть еще не началась, когда libpam пытался установить кронштейны. Чтобы исправить это, мне нужно было установить беспроводное подключение как "Доступно для всех пользователей" в настройках беспроводного подключения. Это позволяет активировать соединение до того, как пользователь войдет в систему.

После того, как я установил это свойство, libpam-mount работал нормально.

0
ответ дан 16 October 2011 в 13:43

Другие вопросы по тегам:

Похожие вопросы: