sambaでファイルアクセス

環境

  • サーバ
    • linux (CentOS 5.3)
    • ip address 192.168.0.1
  • クライアント
    • WindowsXP SP3
    • ipaddress 192.168.0.2

設定手順

  • インストールされていなければ、yumで入れます。
# yum install samba samba-client samba-common
  • sambaを起動します。
# /etc/init.d/smb start
SMB サービスを起動中:                                      [  OK  ]
NMB サービスを起動中:                                      [  OK  ]


  • LAN上のWindowsから確認。
C:\>nbtstat -a 192.168.0.1
ローカル エリア接続:
Node IpAddress: [192.168.0.2] Scope Id: []

         NetBIOS Remote Machine Name Table
     Name               Type         Status
  ---------------------------------------------
  THUNDER        <00>  UNIQUE      Registered
  THUNDER        <03>  UNIQUE      Registered
  THUNDER        <20>  UNIQUE      Registered
  MYGROUP        <1E>  GROUP       Registered
  MYGROUP        <00>  GROUP       Registered
  MAC Address = 00-00-00-00-00-00


  • sambaユーザーを追加します。
# smbpasswd -a suzuki
New SMB password:
Retype new SMB password:
Added user suzuki.


接続

  • Windowsエクスプローラーのアドレスバーに \\192.168.0.1 と入力し、Enterキーを押す。
  • ユーザー認証ダイアログに設定したユーザー、パスワードを入力すれば、ユーザーのホームディレクトリにアクセスできます。

新規ファイルのパーミッション

  • ここまでの設定でファイル読み書きできますが、Windows上から新規ファイルを作成した場合、パーミッションは 744、つまり実行属性がついてしまいます。
  • そんなに問題はないかもしれませんが、気持ち悪いです。そのままsvn commitするとsvn:executable 属性がついてしまってやっぱり気持ち悪い。下記設定を行います。
  • /etc/samba/smb.confの[homes]セクション(または適切なセクション)に下記追記
create mode = 0644
directory mode = 0755    ;ついで

Linux上のユーザーとWindows側からアクセスするユーザーが異なる場合

  • Linuxのユーザーが suzuki (ホームディレクトリ=/home/suzuki)
  • Windowsクライアントのユーザーが taro-suzuki
  • /etc/samba/smb.confの[global]セクションに下記追記
username map = /etc/samba/smbusers
  • /etc/samba/smbusersに下記追記
suzuki = taro-suzuki


smb.confを変更したらsambaを再起動

/etc/init.d/smb restart
  • これでwindowsからtaro-suzukiユーザーでアクセスすれば、Linux上ではsuzukiユーザーとして認識されます。

facebook slideshare rubygems github qiita