Как авторизовать общий доступ для каждого пользователя на компьютере? [Дубликат]

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

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

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

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

Или, может быть, я чего-то не хватает, и есть совершенно другое решение. Может ли кто-нибудь помочь?

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

5 ответов

Возможно, возможно несколько решений; вот как я это сделаю. (Отказ от ответственности: непроверенный!) [/ ​​g6]

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

Подход учетных данных-файлов ИМХО проще реализовать.

  1. Создайте текстовый файл $HOME/.Music.cred для хранения учетных данных; файл должен иметь этот формат:
    user=your-username-on-cifs-server
    password=the-password
    domain=leave-this-blank-unless-really-using-windows-domains
    
  2. Защитить файл $HOME/.Music.cred; выполните эту команду в терминале:
    chmod go-rw $HOME/.Music.cred
    
  3. Теперь вы можете смонтировать общий ресурс CIFS //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
    
  4. Если команда с шага 3. работала правильно, вы можете сделать ее автоматической несколькими способами: сохраните его в сценарии оболочки в своем домашнем каталоге и сделайте этот сценарий автоматически запущенным приложением (вы должны сделать это для каждого пользователя, которому необходимо установить общие ресурсы CIFS); сохраните его в сценарий оболочки /etc/X11/Xsession.d/30mount-cifs-shares, чтобы он работал для любого пользователя.

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

  1. установить пакет libpam-mount
  2. настроить /etc/security/pam_mount.conf.xml с помощью:
    <debug enable="1" />
    <volume server="server" path="music" mountpoint="~/MyMusicFolder" options="cred=/home/%(USER)/.Music.cred" />
    

Ссылки:

3
ответ дан 3 August 2018 в 02:59

Возможно, возможно несколько решений; вот как я это сделаю. (Отказ от ответственности: непроверенный!) [/ ​​g6]

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

Подход учетных данных-файлов ИМХО проще реализовать.

  1. Создайте текстовый файл $HOME/.Music.cred для хранения учетных данных; файл должен иметь этот формат:
    user=your-username-on-cifs-server
    password=the-password
    domain=leave-this-blank-unless-really-using-windows-domains
    
  2. Защитить файл $HOME/.Music.cred; выполните эту команду в терминале:
    chmod go-rw $HOME/.Music.cred
    
  3. Теперь вы можете смонтировать общий ресурс CIFS //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
    
  4. Если команда с шага 3. работала правильно, вы можете сделать ее автоматической несколькими способами: сохраните его в сценарии оболочки в своем домашнем каталоге и сделайте этот сценарий автоматически запущенным приложением (вы должны сделать это для каждого пользователя, которому необходимо установить общие ресурсы CIFS); сохраните его в сценарий оболочки /etc/X11/Xsession.d/30mount-cifs-shares, чтобы он работал для любого пользователя.

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

  1. установить пакет libpam-mount
  2. настроить /etc/security/pam_mount.conf.xml с помощью:
    <debug enable="1" />
    <volume server="server" path="music" mountpoint="~/MyMusicFolder" options="cred=/home/%(USER)/.Music.cred" />
    

Ссылки:

3
ответ дан 4 August 2018 в 04:46

Возможно, возможно несколько решений; вот как я это сделаю. (Отказ от ответственности: непроверенный!) [/ ​​g6]

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

Подход учетных данных-файлов ИМХО проще реализовать.

  1. Создайте текстовый файл $HOME/.Music.cred для хранения учетных данных; файл должен иметь этот формат:
    user=your-username-on-cifs-server
    password=the-password
    domain=leave-this-blank-unless-really-using-windows-domains
    
  2. Защитить файл $HOME/.Music.cred; выполните эту команду в терминале:
    chmod go-rw $HOME/.Music.cred
    
  3. Теперь вы можете смонтировать общий ресурс CIFS //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
    
  4. Если команда с шага 3. работала правильно, вы можете сделать ее автоматической несколькими способами: сохраните его в сценарии оболочки в своем домашнем каталоге и сделайте этот сценарий автоматически запущенным приложением (вы должны сделать это для каждого пользователя, которому необходимо установить общие ресурсы CIFS); сохраните его в сценарий оболочки /etc/X11/Xsession.d/30mount-cifs-shares, чтобы он работал для любого пользователя.

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

  1. установить пакет libpam-mount
  2. настроить /etc/security/pam_mount.conf.xml с помощью:
    <debug enable="1" />
    <volume server="server" path="music" mountpoint="~/MyMusicFolder" options="cred=/home/%(USER)/.Music.cred" />
    

Ссылки:

3
ответ дан 15 August 2018 в 05:48

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

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

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

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

0
ответ дан 7 August 2018 в 05:54

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

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

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

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

0
ответ дан 9 August 2018 в 11:46

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

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