Каждый пользователь должен иметь доступ к общей папке cifs, используя свои собственные учетные данные, когда вы переходите к определенной папке ~ / groupdrive внутри своей домашней папки. Учетные данные хранятся в файле ~ / .cifs_credentials.
Я реализовал это с помощью pam_mount, но я застрял в тоннах дублированных и неправильно размонтированных монтировок.
Как я могу реализовать это поведение с помощью autofs? Возможно ли монтировать общий доступ несколько раз на той же точке монтирования, например / mnt / groupdrive, с разными учетными данными и символической привязкой к ней из домашней папки?
Вы можете использовать переменные в 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
Вы можете использовать переменные в 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