Правильный способ установки доли samba

Я хотел бы установить сетевую файловую систему CIFS с помощью samba в моей системе Arch Linux. Я хотел бы монтировать эту файловую систему всякий раз, когда я вхожу в систему (через ssh, TTY или через KDM).

Я могу приблизиться к тому, что хочу, добавив сетевой ресурс в /etc/fstab . Самая большая проблема заключается в том, что для этого требуется либо жесткое кодирование моего пароля в /etc/fstab либо создание файла учетных данных с моим именем пользователя и паролем. Мне кажется небезопасным хранить свое имя пользователя и пароль в текстовом файле, даже если я установил разрешения на 600.

Существует ли «правильный» способ безопасного подключения сетевого ресурса? Могу ли я сделать это с помощью PAM (мое имя пользователя и пароль одинаковы на обеих машинах), и если да, то как?

Метод №1 – /etc/fstab

Я понимаю, что вы ищете альтернативы этому, но вот конкретно, как получить ваши учетные данные из файла /etc/fstab :

 //WindowsHost/Sharename /LocalMountPoint cifs credentials=/etc/cifsauth 0 0 

Затем в файле /etc/cifsauth :

 username=someuser password=somepass 

Сделайте разрешения этого файла 600 , то есть chmod 600 /etc/cifsauth .

Метод №2 – pam_mount

Вы можете установить pam_mount, а затем настроить общий монтир для всех пользователей, которые входят в систему, например:

 # /etc/security/pam_mount.conf.xml <debug enable="1" /> <volume server="server" path="music" mountpoint="~/MyMusicFolder" options="cred=/home/%(USER)/.Music.cred" /> 

Этот метод по-прежнему имеет ту же проблему, что и метод # 1, где учетные данные хранятся в файле, /home/%(USER)/.Music.cred . Это файл учетных данных того же типа, что и в первом методе, поэтому убедитесь, что разрешения также равны 600.

Метод № 3 – использовать gvfs-mount

Это U & L Q & A под названием: Могу ли я автоматизировать сбор cifs-ресурса без сохранения моего пароля в открытом виде? содержит ответ от @Gilles, который описывает использование ключа GNOME для сохранения ваших учетных данных CIFS.

Затем вы можете получить доступ к общим ресурсам CIFS с помощью виртуальной файловой системы GVFS – GNOME:

 $ gvfs-mount smb://username\;workgroupname@hostname/sharename 

Это отобразит общий ресурс из имени хоста с именем sharename и смонтирует его под $HOME/.vfs/sharename on hostname . Вы никак не можете контролировать это. Это жестко запрограммировано, чтобы всегда быть здесь, я посмотрел!

Однако вы можете создавать ссылки на эти ролики, что я и делаю, чтобы я мог получить доступ к общим ресурсам, которые я смонтировал. Использование .gvfs было неудачным, потому что некоторые инструменты не перечисляют точечные каталоги в просмотре файлов, поэтому ссылка, которую я создал, является единственным способом доступа к этим ресурсам.

Оказывается, pam_mount – это путь. Вы добавляете общий сетевой ресурс в /etc/security/pam_mount.conf.xml

 <volume user="yourUserName" fstype="auto" path="//path/to/the/network/share" mountpoint="/path/to/the/mount/point" options="username=yourUserName" /> <mkmountpoint enable="1" remove="true" /> 

Теоретически возможно использовать переменные %(USER) , %(USERUID) и %(USERGID) чтобы сделать его общим монтированием, но я не мог получить эту часть для работы в Arch Linux. Вам также необходимо настроить вашу систему на использование pam_mount . Вам необходимо изменить как /etc/pam.d/system-auth и ваш соответствующий логин-менеджер. Для KDM это /etc/pam.d/kde . Изменения в основном включают добавление optional pam_mount.so в каждый раздел обоих файлов, но точные данные сложны, так как упорядочение имеет значение. Я последовал за Arch Wiki .

С этой настройкой и тем же именем пользователя / паролем на сервере и моей машине я могу автоматически монтировать без сохранения файла учетных данных в любом месте.