-
Notifications
You must be signed in to change notification settings - Fork 1
/
README.ja
366 lines (251 loc) · 11.5 KB
/
README.ja
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
= README.ja
$Id$
== 名前
ActiveSambaLdap
== 説明
ActiveSambaLdapはSamba用LDAPエントリを管理するための
ActiveRecord風なライブラリです.また,smbldap-toolsのような
管理用コマンドラインツールも提供します.
== 作者
Kouhei Sutou <tt><kou@clear-code.com></tt>
== ライセンス
LGPL 2.1またはそれ以降のバージョン。詳細はlicense/lgpl-2.1.txtを見てください。
(Kouhei Sutouは受け付けたパッチも含めてライセンスを変更する権利があります。)
== 依存ライブラリ
* ActiveLdap >= 1.2.2
== インストール
% sudo gem install activesambaldap
== メーリングリスト
asl-devel-ja@rubyforge.org
http://rubyforge.org/mailman/listinfo/asl-devel-ja/
== リファレンスマニュアル
http://asl.rubyforge.org/activesambaldap/
== 使用法
=== Railsと使う
まず、ActiveSambaLdapのgemを読み込みます。
config/environment.rbに以下を追加してください。
config.gem "activesambaldap", :lib => "active_samba_ldap"
次に、Rails用ActiveSambaLdap環境を構築します.
% script/generate scaffold_active_samba_ldap
config/ldap.ymlが生成されるので,環境にあわせて編集します.
指定できるオプションは,以下の「設定ファイルのオプション」の
項を参考にしてください.
==== 初期化
はじめに,Samba + LDAP環境を初期化する必要があります.
script/serverなどでRailsを起動し,
http://localhost:3000/sambaにアクセスしてください.
「Populate Samba + LDAP environment」というリンクがあるので,
それを使ってSamba + LDAP環境を初期化します.
あとは,ActiveRecordを利用した開発と同じように,
User/Computer/Groupクラスなどを使用して開発してください.
=== コマンドラインから使う
asl-*というコマンドを使います.asl-samba-*はsmb.confに設定す
るためのコマンドで,ターミナルから使うことはありません.
==== 設定
まず,あなたの環境にあわせて設定ファイルを編集します.デフォ
ルトで読み込まれるファイルは--helpオプションをつけて起動する
と確認できます.asl-*のどのコマンドでも表示されます.例えば,
asl-populateを使うとこうなります.
% asl-populate --help
...
--config=CONFIG Specify configuration file
Default configuration files:
/etc/activesambaldap/config.yaml
/etc/activesambaldap/bind.yaml
/home/kou/.activesambaldap.conf
/home/kou/.activesambaldap.bind
...
設定ファイルは上から順に読み込まれていきます.設定内容は後の
ファイルで上書きされます.上記の例だと,以下の順序で読み込ま
れていきます.
* /etc/activesambaldap/config.yaml
* /etc/activesambaldap/bind.yaml
* /home/kou/.activesambaldap.conf
* /home/kou/.activesambaldap.bind
config.yamlや*.confの後にbind.yamlや*.bindを読み込んでいるの
はセキュリティ上の配慮です.ホスト名などの見られてもよい情報
はconfig.yamlや*.confに書き,認証情報など見られてはまずい情
報はbind.yamlや*.bindに書き,適切なパーミッションを設定する
とよいでしょう.
==== 設定ファイルの書式
YAMLで記述します.三つのセクションからなります.
update:
# LDAPエントリを更新する時の設定
...
reference:
# LDAPエントリを参照する時の設定
...
common:
# 更新時/参照時で共有の設定
...
例えば,以下のようになります.
common:
sid: S-1-5-21-915876905-2926214379-2876160357
base: dc=samba,dc=local,dc=net
host: localhost
method: :tls
update:
bind_dn: cn=admin,dc=local,dc=net
password: admin
reference:
allow_anonymous: true
passwordはbind.yamlや*.bindに記述するとよいでしょう.
baseは必ず設定してください.また,sidも設定しておくとよいで
しょう.sidの値は以下のコマンドで確認できます.
% sudo net getlocalsid
sidを設定しておかないと,毎回net getlocalsidをするため,効率
が悪くなります.
==== 設定ファイルのオプション
設定可能なオプションは以下の通りです.
[_base_]
ActiveLdap::Base.setup_connectionのオプションと同じ.
[_host_]
ActiveLdap::Base.setup_connectionのオプションと同じ.
[_port_]
ActiveLdap::Base.setup_connectionのオプションと同じ.
[_scope_]
ActiveLdap::Base.setup_connectionのオプションと同じ.
[_bind_dn_]
ActiveLdap::Base.setup_connectionのオプションと同じ.
[_password_]
ActiveLdap::Base.setup_connectionのオプションと同じ.
[_method_]
ActiveLdap::Base.setup_connectionのオプションと同じ.
[_allow_anonymous_]
ActiveLdap::Base.setup_connectionのオプションと同じ.
[_sid_]
SambaサーバのSID(Security Identifier).
[_smb_conf_]
Sambaの設定ファイルsmb.confがあるパス.
[_samba_domain_]
Sambaサーバのドメイン
[_samba_netbios_name_]
SambaサーバのNetBIOS名
[_password_hash_type_]
LDAP上のパスワードをハッシュ化する時に使用するアルゴリズ
ム.指定できるの
は+:crypt+, +:md5+, +:smd5+, +:sha+, +:ssha+です。
LDAP上のパスワードはSambaの認証時ではなく,UNIX上のユーザ
の認証時に利用されます.
デフォルト: +:ssha+
[_users_suffix_]
LDAP上のユーザエントリを格納するツリー.baseからの相対パ
スを指定する.
例: <tt>"ou=Users"</tt>
[_groups_suffix_]
LDAP上のグループエントリを格納するツリー.baseからの相対パ
スを指定する.
例: <tt>"ou=Groups"</tt>
[_computers_suffix_]
LDAP上のコンピュータエントリを格納するツリー.baseからの相対パ
スを指定する.
例: <tt>"ou=Computers"</tt>
[_idmap_suffix_]
LDAP上のidmapエントリを格納するツリー.baseからの相対パ
スを指定する.
例: <tt>"ou=Idmap"</tt>
[_start_uid_]
新しいユーザを作ったときに,はじめに使用するUID(User
Identifier).以降のUIDは1ずつ増えていく.
デフォルト: +10000+
[_start_gid_]
新しいユーザを作ったときに,はじめに使用するGID(Group
Identifier).以降のGIDは1ずつ増えていく.
デフォルト: +10000+
[_user_login_shell_]
新しく作成したユーザのログインシェル.
デフォルト: <tt>"/bin/false"</tt>
[_user_home_directory_]
新しく作成したユーザのホームディレクトリ.%Uはユーザ名に
置換される.
デフォルト: <tt>"/home/%U"</tt>
[_user_home_directory_mode_]
ユーザのホームディレクトリを作成する際に設定するパーミッ
ション用のモード.
デフォルト: +0755+(8進数)
[_user_gecos_]
ユーザのGECOSフィールドの値.%Uはユーザ名に置換される.
[_user_home_unc_]
Windowsから見たときのユーザのホームへのパス.
UNC(Universal Naming Convention)で記述する.%Uはユーザ名
に置換される.
デフォルト: <tt>"\\\\SambaサーバのNetBIOS名\\%U"</tt>
[_user_profile_]
ユーザプロファイルへのパス.
UNC(Universal Naming Convention)で記述する.%Uはユーザ名
に置換される.
デフォルト: <tt>"\\\\SambaサーバのNetBIOS名\\profiles\\%U"</tt>
[_user_home_drive_]
ユーザのホームを割り当てるドライブ名.
デフォルト: <tt>"H:"</tt>
[_user_logon_script_]
ユーザがログオンしたときに実行するスクリプトファイル名.
デフォルト: <tt>"logon.bat"</tt>
[_skeleton_directory_]
ユーザのホームディレクトリを作成する時に雛型とするディレ
クトリ.
デフォルト: <tt>"/etc/skel"</tt>
[_default_user_gid_]
デフォルトでユーザが所属するグループ.
デフォルト: <tt>"Domain Users"</tt>グループ
[_default_computer_gid_]
デフォルトでコンピュータが所属するグループ.
デフォルト: <tt>"Domain Computers"</tt>グループ
==== 初期化
asl-*を用いてSamba + LDAP環境を管理する前に,一度だけ
asl-populateを起動してLDAPサーバに基本的なエントリを追加しま
す.
% sudo asl-populate
もし,root権限が無くても実行できるのであれば以下のようにする
とよいでしょう.(root権限チェックは必要ないかもしれない)
% fakeroot asl-populate
==== 管理
コマンドラインからはasl-user*, asl-group*, asl-populate,
asl-purge, asl-passwordを使って管理してください.各コマンド
の使いかたは--helpオプションを参考にしてください.
==== smb.confの設定
Srvtools[http://support.microsoft.com/kb/173673/]を使って
Windowsからユーザ管理を行いたい場合は,また,Sambaをドメイン
コントローラとして動作させたい場合は,以下のようにsmb.confを
設定します.ここでは,asl-samba-*を使います.
(ドメインコントローラとして動作させるけど,Srvtools でユー
ザ管理を行わない場合はadd machine script以外のなんとかscript
は設定しなくてもよい気がする.)
passdb backend = ldapsam:ldap://127.0.0.0
ldap admin dn = cn=admin,dc=local,dc=net
ldap suffix = dc=samba,dc=local,dc=net
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
ldap passwd sync = yes
admin users = "@Domain Admins"
add user script = /.../asl-samba-useradd "%u"
delete user script = /.../asl-samba-userdel "%u"
add group script = /.../asl-samba-groupadd "%g"
delete group script = /.../asl-samba-groupdel "%g"
add user to group script = /.../asl-samba-groupmod "%g" --add-members "%u"
delete user from group script = /.../asl-samba-groupmod "%g" --delete-members "%u"
set primary group script = /.../asl-samba-usermod "%u" --gid "%g"
add machine script = /.../asl-samba-computeradd "%u"
Sambaを起動する前に,以下を実行してldap admin dnで指定した
LDAP管理ユーザのパスワードを設定しておく必要があります.
% sudo /usr/bin/smbpasswd -W
== トラブルシューティング
=== グループ一覧がでない
以下のコマンドでグループ一覧を表示する事ができます。
% net rpc group list --user=USER_NAME
もし、asl-populateした後なのに上記のコマンドでひとつもグルー
プがでない場合は以下のことを確認してください。
* samba.schemaが古くないか
sambaSIDのエントリに以下の設定がない場合は古い
samba.schemaである可能性があります。最新のものに更新して
ください。
SUBSTR caseExactIA5SubstringsMatch
== 感謝
* Henrik Krög: バグを報告してくれました。
* Olivier DIRRENBERGER: バグを報告してくれました。
* Francesco Malvezzi: バグを報告してくれました。
* Kazuhiro NISHIYAMA: バグを報告してくれました。
* Orlando Marquina: バグを報告してくれました。
* Piotr Romanczuk: バグを報告してくれました。