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が共有名のドル記号と空白をより良くエスケープするためのパッチを提供

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。