Монтирование CIFS для каждого пользователя с помощью AutoFS

Каждый пользователь должен иметь доступ к общей папке cifs, используя свои собственные учетные данные, когда вы переходите к определенной папке ~ / groupdrive внутри своей домашней папки. Учетные данные хранятся в файле ~ / .cifs_credentials.

Я реализовал это с помощью pam_mount, но я застрял в тоннах дублированных и неправильно размонтированных монтировок.

Как я могу реализовать это поведение с помощью autofs? Возможно ли монтировать общий доступ несколько раз на той же точке монтирования, например / mnt / groupdrive, с разными учетными данными и символической привязкой к ней из домашней папки?

1
задан 25 May 2018 в 09:41

2 ответа

Вы можете использовать переменные в autofs, которые могут быть решением вашего требования. У каждого есть свой способ делать autofs, и это мое. Я только что сделал это на Ubuntu 18.04, прежде всего, чтобы посмотреть, работает ли еще этот релиз:

Я отредактировал /etc/auto.master и в качестве последней строки добавил:

/mnt/Samba /etc/auto.sambashares --timeout=30 --ghost

Я намеренно сделал родительскую папку / mnt / Samba, а не что-то под / media или домашним каталогом, потому что это привело к массовой путанице ОС.

Я отредактировал /etc/auto.sambashares и добавил одну строку, используя $ {HOME} и в моем случае переменные $ {UID}:

GroupShare -fstype=cifs,rw,credentials=${HOME}/.cifs_credentials,uid=${UID},iocharset=utf8 ://server/share

Затем перезапустили службу autofs.

Когда пользователь обращается к / mnt / Samba / GroupShare (который может быть закладок) его учетные данные в /home/usera/.cifs_credentials будут использоваться для доступа к ресурсу, а userb будет использовать свои собственные учетные данные в своем собственном домашнем каталоге.

Альтернативный метод для одновременных пользователей:

** Создайте родительскую папку под / mnt для каждого пользователя - например: / mnt / bob и /mnt/mary.

** Измените право собственности на каждого пользователя (например, sudo chown bob / mnt / bob)

** Ограничить доступ только к этому пользователю (sudo chmod 0770 / mnt / bob)

[d 12] ** Замените одну строку в auto.master на два:

/mnt/bob/Samba /etc/auto.sambashares-bob --timeout=30 --ghost /mnt/mary/Samba /etc/auto.sambashares-mary --timeout=30 --ghost

** Затем создайте два файла auto.sambashares-xxx, каждый из которых имеет одну и ту же строку:

GroupShare -fstype=cifs,rw,credentials=${HOME}/.cifs_credentials,uid=${UID},iocharset=utf8 ://server/share
0
ответ дан 17 July 2018 в 13:29

Вы можете использовать переменные в autofs, которые могут быть решением вашего требования. У каждого есть свой способ делать autofs, и это мое. Я только что сделал это на Ubuntu 18.04, прежде всего, чтобы посмотреть, работает ли еще этот релиз:

Я отредактировал /etc/auto.master и в качестве последней строки добавил:

/mnt/Samba /etc/auto.sambashares --timeout=30 --ghost

Я намеренно сделал родительскую папку / mnt / Samba, а не что-то под / media или домашним каталогом, потому что это привело к массовой путанице ОС.

Я отредактировал /etc/auto.sambashares и добавил одну строку, используя $ {HOME} и в моем случае переменные $ {UID}:

GroupShare -fstype=cifs,rw,credentials=${HOME}/.cifs_credentials,uid=${UID},iocharset=utf8 ://server/share

Затем перезапустили службу autofs.

Когда пользователь обращается к / mnt / Samba / GroupShare (который может быть закладок) его учетные данные в /home/usera/.cifs_credentials будут использоваться для доступа к ресурсу, а userb будет использовать свои собственные учетные данные в своем собственном домашнем каталоге.

Альтернативный метод для одновременных пользователей:

** Создайте родительскую папку под / mnt для каждого пользователя - например: / mnt / bob и /mnt/mary.

** Измените право собственности на каждого пользователя (например, sudo chown bob / mnt / bob)

** Ограничить доступ только к этому пользователю (sudo chmod 0770 / mnt / bob)

[d 12] ** Замените одну строку в auto.master на два:

/mnt/bob/Samba /etc/auto.sambashares-bob --timeout=30 --ghost /mnt/mary/Samba /etc/auto.sambashares-mary --timeout=30 --ghost

** Затем создайте два файла auto.sambashares-xxx, каждый из которых имеет одну и ту же строку:

GroupShare -fstype=cifs,rw,credentials=${HOME}/.cifs_credentials,uid=${UID},iocharset=utf8 ://server/share
0
ответ дан 20 July 2018 в 13:35
  • 1
    Пробовал это, но доля будет установлена ​​с учетными данными первого пользователя A, получающего его. Когда второй пользователь B получает доступ к общему ресурсу, общий ресурс не будет снова установлен, а пользователь B получает доступ к ресурсу с правами пользователя A, который является проблемой безопасности. – Fab 28 May 2018 в 16:10
  • 2
    Единственный способ воспроизвести это, если я получаю доступ к ресурсу обоими пользователями одновременно - ну, по крайней мере, в течение 30 секундного тайм-аута, указанного в файле auto.master. Это настольная система? В качестве теста укажите таймаут с короткой продолжительностью: timeout = 5. То же самое происходит? – Morbius1 28 May 2018 в 17:15
  • 3
    Я добавил добавление к моему первоначальному ответу, чтобы обеспечить одновременный доступ пользователей, который может быть лучше, если это ваше требование – Morbius1 28 May 2018 в 17:46
  • 4
    Если B получает доступ к ресурсу после его размонтирования из-за периода времени, он получает возможность переустановки с помощью кредитов B. Но это не решение. Приблизительно 50 настольных систем, обращающихся к CIFS-серверу, поэтому мне нужен более автоматический метод. Но вы меня поймали: возможно, я мог бы использовать папку в домашней папке пользователей в сочетании со сценарированной картой. – Fab 29 May 2018 в 18:50
  • 5
    Я не думаю, что вы читали мое добавление: альтернативный метод для одновременных пользователей. Каждый пользователь имеет свой собственный путь и свой собственный файл карты, и путь для каждого пользователя изолирует их от остальных. – Morbius1 29 May 2018 в 19:49

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

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