May 24, 2009

UbuntuとSamba

Samba

Sambaのインストール
$ sudo apt-get install samba
Linuxユーザーの追加

SambaにWindowsからアクセスするにはLinuxユーザーが必要です。
なお、ユーザー情報は/etc/passwdに記載されます。

$ sudo useradd -s /sbin/nologin test
$ sudo passwd test
Sambaユーザーの追加

Linuxユーザーを作成したら、Sambaユーザーを作成します。

$ sudo pdbedit -a test

smbpasswdでもありかなと思うんですが、Samba3.0では推奨ではないようです。
そういうこともあって、今回はpdbeditを用います。

Sambaサーバーのディレクトリ設定

Sambaサーバーで使うディレクトリを作成します。
まずは、共有ディレクトリから手をつけます。パーミッションもそれ合わせます。

$ sudo mkdir /var/samba
$ sudo chown nobody:nogroup /var/samba
$ sudo chmod 777 /var/samba
Sambaサーバー設定ファイル(smb.conf)の変更

まずは設定ファイルのバックアップを取っておきます。

$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original

以下に追記ないし変更した部分のみを記載します。

$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original
$ sudo vi /etc/samba/smb.conf
[global]
dos charset = CP932
unix charset = UTF-8
display charset = UTF-8
map to guest = bad user
security = user
workgroup = WORKGROUP
[public] # 括弧で囲まれた名前が共有名として表示されます
comment = for Everyone
public = yes
path = /var/samba/public
writable = yes
guest ok = yes
guest only = yes
directory mask = 0777
create mask = 0777
$ sudo /etc/init.d/samba restart

補足

security=share/server/domainは使わない

@IT: Sambaサーバ構築、5つのべからず:2008年版で詳しく載っています。

  • security=user ユーザー単位でパスワード認証を行う
  • security=ads Active Directoryドメインで認証を行う
  • security=share 共有単位で認証を行う
  • security=server Windows NTもしくはSambaで認証を行う
  • security=domain Windowsドメインで認証を行う

Windows XPまでは上記のどれを使っても問題は出なかったのだと思います。しかしながらWindows 2003 R2やVista、Windows 2008、XP 64ビットエディションでは、security=share/server/domainを使うと、うまく接続できない場合が増えてきました。 Kerberos認証やNTLMv2認証などの新しい認証方式では、セキュリティ強化のために、代理認証やパスワードのリダイレクトを許さないためです。

see also: Ubuntu Server Guide