sambaの設定
バグ?
基本的にはGUIから設定して問題ない。
CentOS 5.2 の samba設定GUIツールが死んでいるようだ。
ユーザーを登録しても、画面に表示されない。
コマンドからの設定は問題無し。
アクセスや動作が遅い
http://ftp3.samba.gr.jp/ml/article/samba-jp/msg14926.html
WinXP から共有にアクセスする際に、WebDAVによるアクセスを試しているらしい。
なので、ポート 80/tcp を閉じているとタイムアウト待ちになることがある。
80/tcp を開ける(apache等のサービスは不要)と反応が早くなる。
ユーザーの管理(追加、表示、削除)
ユーザーの追加
pdbedit -a ユーザー名
ユーザーの表示
pdbedit -Lv
ユーザーの削除
pdbedit -x -u ユーザー名
グローバル設定
/etc/samba/smb.conf
http://d.hatena.ne.jp/korokorokoron/20100608/1275969242
http://linux2.g.hatena.ne.jp/pneumaster/
共有先にシンボリックリンクがある場合、以下の設定をしないとリンク先が開けない
[global] wide links = yes unix extensions = no
日付に関する設定
https://thinkit.co.jp/article/790/1?page=0%2C1
#タイムスタンプの精度を変更しない dos filetime resoluntion = no #ファイルの日付変更を書込権限のあるユーザに許可する dos filetimes = yes #ディレクトリの作成日をフェイクしない #fake directory create times = yes
実行権限に関する設定
http://www.dt8.jp/cgi-bin/adiary/adiary.cgi/0493
デフォルトの設定は、Windowsのアーカイブ属性を所有者の実行権限とマッピングしている。
期待せずに実行権限が付いたり、外れたりするのでこの機能を無効にする。
map archive = no
共有の追加
/etc/samba/smb.conf
dos filetimes = Yes dos filetime resolution = Yes
とすると、ファイルの更新日付を維持してコピーする
例
[user@private] path = /home/user/samba/private writeable = yes browseable = no create mask = 0600 valid users = username directory mask = 0700
[user@share] path = /home/user/samba/share writeable = yes browseable = no create mask = 0660 directory mask = 0770
ホームのパスを変更する例
[homes] path = /mnt/homes/%S valid users = %S 略
ユーザ毎のディレクトリ(ホームっぽい)
[userdir] path = /mnt/userdir/%U valid users = %U 略
ホームディレクトリを共有しない場合
ホームディレクトリを共有し無くない場合は
[homes]セクションをコメントアウトする。
;[homes] ; comment = %U's Home Directory ; browseable = no ; writable = yes ; create mask = 0644 ; directory mask = 0755
プリンタを共有に表示しない
http://fedorasrv.com/samba.shtml
[global] を編集する。
# If you want to automatically load your printer list rather # than setting them up individually then you'll need this ; load printers = yes ← 行頭に;を追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合 load printers = no ← 追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合 disable spoolss = yes ← 追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合
シンボリックリンクのアクセスが拒否される場合
- follow symlinks
- 共有エリア内へのシンボリックリンクを辿るかどうか
- wide links
- 共有エリア外へのシンボリックリンクを辿るかどうか。 unix extensions = Yes の場合は動作しないので注意。
- unix extensions
- Samba が HP社によって定義された CIFS の UNIX拡張を利用するかどうかを制御する。 これらの拡張は、UNIX クライアントから UNIX サーバに対して接続する際に有用な CIFS を有効にし、 シンボリックリンクやハードリンクなどを利用可能にする。現在の Windows クライアントでは 有効になっていない。
もし、共有エリア外へのシンボリックリンクを辿る場合は
follow symlinks = Yes wide links = Yes #Samba-3.4.6/Samba-3.3.11 以降 unix extensions = No
とする必要がある。
アクセス権限のないファイルやディレクトリを隠す
sambaの隠すには大きく2つある。
- 見えないだけでアクセス可能。(パスを打ち込んだりすることでアクセス可能)
- 見えないしアクセスも不能
「.」で始まるファイルを隠す(アクセス可能)
hide dot files = yes
正確には隠しファイル属性を付与して表示する。
読込権限のないファイル、ディレクトリを隠す(アクセス不能)
hide unreadable = yes
見えないし、パスを打ち込んでも無いことになっている。
hide unwriteable = yes
も設定可能らしいが、上手く動作しなかった。unreadableだけで十分な気もする。
パスワードなしでアクセスできる共有の設定
http://server-helper.doorblog.jp/archives/3152263.html
http://itpro.nikkeibp.co.jp/members/LIN/oss/20030924/1/
[global] guest account = nobody map to guest = Bad User #省略 [public] guest ok = Yes guest only = yes #省略
map to guestの値
設定値 | 意味 |
---|---|
never(デフォルト) | ゲスト接続が許されず、登録されていないユーザーやパスワードが正しくないユーザーはアクセスできない。 |
bad user | 登録されていないユーザーであっても、guest ok = Yesと定義された共有であればアクセスできる。 |
bad passwrod | 登録されたユーザーがパスワードを間違えた場合、ゲストとして接続されることを意味する。したがって、guest ok = Yesと定義された共有であればアクセスできる。 |
guest ok = Yes / No
共有のゲストアクセスを許すかどうか指定する。この設定は、map to guestの指定がなされていないと有効にならない。
guest only = Yes
共有のアクセスをすべてゲスト権限にするかどうか指定する。この設定は、map to guestの指定がなされていないと有効にならない。
アクセス制御について
samba でのアクセス制御は大きく2つある
1.Linux のファイルパーミッションのみでの制御
2.samba の read list、write list、valid users、 invalid users による制御
1.Linux のファイルパーミッションのみでの制御
メリット
- Linux のグループやSGIDで制御するので、分かりやすくて設定しやすい。
デメリット
複雑な制御ができない。
グループA:読み書き可能 グループB:読み込みのみ
など。
例:各ユーザで共有するディレクトを作成する場合
http://blog.neet-shikakugets.com/article/202597386.html
http://jibun.atmarkit.co.jp/lskill01/rensai/lpicdrill09/lpicdrill02.html
[public] comment = Public Stuff path = /var/samba/public ;public = yes writable = yes printable = no create mask = 0664 force create mode = 0664 directory mask = 0775 force directory mode = 0775
共有用のグループを作成
#groupadd smbPublic
共有用グループにユーザー追加
#gpasswd -a user1 smbPublic
か
#usermod -G smbPublic -a user1
どっちでもいいけど、gpasswd がおすすめかな。
/var/samba/public のグループ変更とsgidを設定
#chgrp smbPublic /var/samba/public #chmod g+s /var/samba/public
create mask、 force create mode、 directory mask、 force directory modeについては
作成されるファイルのパーミッション (DOSからUNIXに設定される値) AND (create maskの値) OR (force create modeの値) 作成されるディレクトリのパーミッション (DOSからUNIXに設定される値) AND (directory maskの値) OR (force directory modeの値)
2.samba の read list、write list、valid users、 invalid users による制御
メリット
- 複雑な制御ができる。
グループA:読み書き可能 グループB:読み込みのみ
などの複雑な制御ができる
- Linux のファイルパーミッションを併用できる。
デメリット
- あまりやりすぎると分かり難くなる。
- smb.conf 内の共有設定毎にしか設定できない
例:各ユーザで共有するディレクトを作成する場合
[public] comment = Public Stuff path = /var/samba/public printable = no create mask = 0664 force create mode = 0664 directory mask = 0775 force directory mode = 0775 write list = +smbPublic read list = +TestGroup valid users = +smbPublic +TestGroup
write list と read list の両方に含まれるユーザは、 write list が優先される(多分)
※writable と read only を同時に書いた場合は、後に書いたほうが優先される(多分)
共有用のグループを作成
#groupadd smbPublic
共有用グループにユーザー追加
#gpasswd -a user1 smbPublic
valid users、invalid users、read list、write list に指定するグループ名
@グループ名 | NIS グループ、システムに設定してあるグループの順番で指定 |
&グループ名 | NIS グループの指定 |
+グループ名 | システムに設定してあるグループの指定 |
認証について
http://blog.neet-shikakugets.com/article/202597386.html
Sambaユーザ -> Linux ユーザにマッピング -> アクセス
基本的には Sambaユーザと同じ名前のLinuxユーザが存在していないといけない。
[username map]や[username map script]パラメーターで対応を変更することが出来る。
Sambaユーザーは、あくまで認証情報やWindowsユーザーとしての情報を格納するためのもの。
/etc/samba/smb.confのsecurityパラメータに設定できるものは以下のもの。
値 | 認証の単位 | 説明 |
---|---|---|
share | 共有レベル | Windows NTまたはSambaにて共有単位で認証を行う |
user | ユーザーレベル | Sambaにて、ユーザー単位でのパスワード認証を行う |
server | ユーザーレベル | Windows NTまたはSambaで認証を行う |
domain | ユーザーレベル | Windowsドメインで認証を行う |
ads | ユーザーレベル | Active Directoryドメインで認証を行う |
Linux と Sambaユーザの一括管理
満足できる方法はないので省略。
http://kajuhome.com/tips/tips_06_001.shtml
NTLMv2 について
サーバ側の設定値と使用するプロトコル
パラメータの設定 | 認識可能な認証形式 |
---|---|
encrypt passwords = No | 平文パスワード |
※encrypt passwords = Yes / ※lanman auth = Yes / ※ntlm auth = Yes | NTLMv2/NTLM/LANMAN |
※encrypt passwords = Yes / lanman auth = No / ※ntlm auth = Yes | NTLMv2/NTLM |
※encrypt passwords = Yes / ※lanman auth = Yes / ntlm auth = No | NTLMv2/LANMAN |
※encrypt passwords = Yes / lanman auth = No / ntlm auth = No | NTLMv2 |
※「※」はSamba 3.0系列のデフォルト値
クライアント側の設定値と使用するプロトコル
パラメータの設定 | 送信する認証形式 |
---|---|
client ntlmv2 auth = Yes / - / - / | NTLMv2 |
※client ntlmv2 auth = No / ※client lanman auth = Yes / ※client plaintext auth = Yes | NTLMv1/LANMAN/(平文(※2)) |
※client ntlmv2 auth = No / ※client lanman auth = Yes / client plaintext auth = No | NTLMv1/LANMAN |
※client ntlmv2 auth = No / client lanman auth = No / - | NTLMv1 |
※「※」はSamba 3.0系列のデフォルト値
※2: サーバが平文以外の認証方式に対応していない場合にのみ送信
[通知用URL]
Tweet
最終更新時間:2018年01月04日 19時51分52秒