Сетевые ресурсы · 2 min read · Dec 10, 2025

Как использовать AutoFS для доступа к Windows и Samba общим ресурсам

Доступ к Windows или Samba общим ресурсам с помощью AutoFS

Вы уже установили Linux на своем сетевом настольном ПК, и теперь вы хотите работать с файлами, хранящимися на других ПК в вашей сети. Здесь на помощь приходит autofs. Этот учебник показывает, как настроить autofs для использования CIFS для доступа к Windows или Samba общим ресурсам с настольных ПК на Linux. Он также включает в себя специализированный файл конфигурации.

Если версия autofs 4.0 или новее уже установлена, вы должны найти файлы

/etc/auto.master

и

/etc/auto.smb

на вашей системе. В противном случае запустите менеджер пакетов вашего дистрибутива (например, YaST на SuSE, synaptic на Debian или Ubuntu и т.д.) и установите его. Когда вы это сделаете, также установите пакет клиента Samba (ищите smbclient), потому что он нам тоже понадобится. В некоторых дистрибутивах (Ubuntu) нам также нужен пакет smbfs, который содержит утилиты mount.cifs и umount.cifs.

Конфигурация

Если autofs уже установлен, он, вероятно, все еще не настроен и не работает. Предполагая, что ваш дистрибутив Linux содержит ядро Linux 2.6.x, я рекомендую использовать модуль общей интернет-файловой системы (cifs) для доступа к файлам в сети. Пожалуйста, сохраните следующий файл как

/etc/auto.cifs

на вашем компьютере. Вам нужны права root (или sudo), чтобы иметь возможность это сделать:

#!/bin/bash
# $Id$
# Этот файл должен быть исполняемым для работы! chmod 755!
key="$1"
# Примечание: создайте файл учетных данных для каждого сервера Windows/Samba в вашей сети
#       который требует аутентификации по паролю. Файл должен содержать
#       ровно две строки:
#          username=user
#          password=*****
#       Пожалуйста, не используйте пробелы для разделения знака равенства от
#       имени учетной записи пользователя или пароля.
credfile="/etc/auto.smb.$key"
# Примечание: используйте cifs вместо smbfs:
mountopts="-fstype=cifs,file_mode=0644,dir_mode=0755,uid=user,gid=users"
smbclientopts=""
for P in /bin /sbin /usr/bin /usr/sbin
do
        if [ -x $P/smbclient ]
        then
                SMBCLIENT=$P/smbclient
                break
        fi
done
[ -x $SMBCLIENT ] || exit 1
if [ -e "$credfile" ]
then
        mountopts=$mountopts",credentials=$credfile"
        smbclientopts="-A "$credfile
else
        smbclientopts="-N"
fi
$SMBCLIENT $smbclientopts -gL $key 2>/dev/null \
   | awk -v key="$key" -v opts="$mountopts" -F'|' -- '
        BEGIN   { ORS=""; first=1 }
    /Disk/  { if (first) { print opts; first=0 };
          gsub(/ /, "\\ ", $2);
          sub(/\$/, "\\$", $2);
          print " \\n\t /" $2, "://" key "/" $2 }
        END     { if (!first) print "\n"; else exit 1 }
        '

Сделайте этот файл исполняемым с помощью команды:

chmod 755 /etc/auto.cifs

Этот файл является слегка измененной версией файла auto.smb, который обычно поставляется в составе пакета autofs. Вам нужно изменить строку, определяющую mountopts выше, и заменить user на имя вашей личной учетной записи. Теперь вам нужно предоставить autofs учетные данные, необходимые для доступа к общим ресурсам в вашей сети. Для этого создайте файл с именем

/etc/auto.smb.FILESERVERNAME

для каждого компьютера, к которому вы хотите получить доступ. Конечно, замените FILESERVERNAME на имя компьютера. Заполните эти файлы именем учетной записи пользователя и паролем, необходимыми для доступа к общим ресурсам на компьютере. Содержимое этих файлов должно выглядеть как в следующем примере:

username=user
password=secret

Используйте команду

chmod 600 /etc/auto.smb.*

чтобы защитить информацию о пароле.

Теперь мы должны сказать autofs использовать наш новый файл конфигурации. Используйте команды:

echo "/cifs /etc/auto.cifs --timeout=60" >>/etc/auto.master

и

/etc/init.d/autofs restart

Вот и все.

Тестирование

Используйте команду

ls -als /cifs/FILESERVERNAME/SHARENAME

чтобы проверить, работает ли это. Если нет, обратитесь к системным журналам (обычно /var/log/messages или /var/log/syslog) для получения сообщений.

Credits: davek за предоставление патча для лучшего экранирования знаков доллара и пробелов в именах общих ресурсов

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.