Linux設定 · 1 min read · Dec 10, 2025
AutoFSを使用してWindowsおよびSamba共有にアクセスする方法
AutoFSを使用したWindowsまたはSamba共有へのアクセス
あなたはすでにネットワークに接続されたデスクトップPCにLinuxをインストールしており、今はネットワーク内の他のPCに保存されているファイルを扱いたいと考えています。ここでautofsが登場します。このチュートリアルでは、LinuxデスクトップPCからWindowsまたはSamba共有にアクセスするためにCIFSを使用するようにautofsを構成する方法を示します。また、カスタマイズされた構成ファイルも含まれています。
もしautofsバージョン4.0以上がすでにインストールされている場合、あなたのシステムには次のファイルが見つかるはずです。
/etc/auto.masterと
/etc/auto.smbそうでない場合は、あなたのディストリビューションのパッケージマネージャー(例:SuSEのYaST、DebianまたはUbuntuのsynapticなど)を起動してインストールしてください。その際、Sambaクライアントパッケージ(smbclientを探してください)もインストールしてください。これも必要になります。一部のディストリビューション(Ubuntu)では、mount.cifsおよびumount.cifsユーティリティを含むsmbfsパッケージも必要です。
構成
もしautofsがすでにインストールされている場合、おそらくまだ構成されておらず、動作していないでしょう。あなたのLinuxディストリビューションがLinux 2.6.xカーネルを含んでいると仮定して、ネットワーク上のファイルにアクセスするために共通インターネットファイルシステム(cifs)モジュールを使用することをお勧めします。次のファイルを次のように保存してください。
/etc/auto.cifsこの操作を行うにはroot(またはsudo)の権限が必要です。
#!/bin/bash
# $Id$
# このファイルは動作するために実行可能でなければなりません! chmod 755!
key="$1"
# 注意:ネットワーク内の各Windows/Sambaサーバーのために認証ファイルを作成してください。
# これはパスワード認証を必要とします。ファイルには正確に2行を含める必要があります:
# username=user
# password=*****
# 等号とユーザーアカウント名またはパスワードの間に空白を使用しないでください。
credfile="/etc/auto.smb.$key"
# 注意:smbfsの代わりにcifsを使用してください:
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 " \
\t /" $2, "://" key "/" $2 }
END { if (!first) print "\n"; else exit 1 }
'このファイルを実行可能にするには、次のコマンドを使用します。
chmod 755 /etc/auto.cifsこのファイルは通常autofsパッケージの一部として提供されるauto.smbファイルのわずかに修正されたバージョンです。上記の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)を確認してメッセージを探してください。
クレジット:davekが共有名のドル記号と空白をより良くエスケープするためのパッチを提供
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。