ActiveSambaLdap 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. data/NEWS.en +40 -0
  2. data/NEWS.ja +44 -0
  3. data/README.en +366 -0
  4. data/README.ja +361 -0
  5. data/Rakefile +168 -0
  6. data/bin/asl-groupadd +73 -0
  7. data/bin/asl-groupadd.help +1 -0
  8. data/bin/asl-groupdel +61 -0
  9. data/bin/asl-groupdel.help +1 -0
  10. data/bin/asl-groupmod +137 -0
  11. data/bin/asl-groupmod.help +1 -0
  12. data/bin/asl-groupshow +33 -0
  13. data/bin/asl-groupshow.help +1 -0
  14. data/bin/asl-passwd +90 -0
  15. data/bin/asl-passwd.help +1 -0
  16. data/bin/asl-populate +101 -0
  17. data/bin/asl-populate.help +1 -0
  18. data/bin/asl-purge +26 -0
  19. data/bin/asl-purge.help +1 -0
  20. data/bin/asl-samba-computeradd +96 -0
  21. data/bin/asl-samba-computeradd.help +1 -0
  22. data/bin/asl-samba-groupadd +57 -0
  23. data/bin/asl-samba-groupadd.help +1 -0
  24. data/bin/asl-samba-groupdel +55 -0
  25. data/bin/asl-samba-groupdel.help +1 -0
  26. data/bin/asl-samba-groupmod +99 -0
  27. data/bin/asl-samba-groupmod.help +1 -0
  28. data/bin/asl-samba-useradd +100 -0
  29. data/bin/asl-samba-useradd.help +1 -0
  30. data/bin/asl-samba-userdel +49 -0
  31. data/bin/asl-samba-userdel.help +1 -0
  32. data/bin/asl-samba-usermod +94 -0
  33. data/bin/asl-samba-usermod.help +1 -0
  34. data/bin/asl-useradd +264 -0
  35. data/bin/asl-useradd.help +1 -0
  36. data/bin/asl-userdel +84 -0
  37. data/bin/asl-userdel.help +1 -0
  38. data/bin/asl-usermod +335 -0
  39. data/bin/asl-usermod.help +1 -0
  40. data/bin/asl-usershow +33 -0
  41. data/bin/asl-usershow.help +1 -0
  42. data/lib/active_samba_ldap.rb +42 -0
  43. data/lib/active_samba_ldap/account_entry.rb +208 -0
  44. data/lib/active_samba_ldap/base.rb +137 -0
  45. data/lib/active_samba_ldap/command.rb +100 -0
  46. data/lib/active_samba_ldap/computer.rb +24 -0
  47. data/lib/active_samba_ldap/computer_account_entry.rb +34 -0
  48. data/lib/active_samba_ldap/configuration.rb +333 -0
  49. data/lib/active_samba_ldap/dc.rb +19 -0
  50. data/lib/active_samba_ldap/entry.rb +81 -0
  51. data/lib/active_samba_ldap/get_text_support.rb +12 -0
  52. data/lib/active_samba_ldap/group.rb +17 -0
  53. data/lib/active_samba_ldap/group_entry.rb +187 -0
  54. data/lib/active_samba_ldap/idmap.rb +19 -0
  55. data/lib/active_samba_ldap/ou.rb +20 -0
  56. data/lib/active_samba_ldap/populate.rb +257 -0
  57. data/lib/active_samba_ldap/reloadable.rb +15 -0
  58. data/lib/active_samba_ldap/samba_account_entry.rb +225 -0
  59. data/lib/active_samba_ldap/samba_entry.rb +26 -0
  60. data/lib/active_samba_ldap/samba_group_entry.rb +143 -0
  61. data/lib/active_samba_ldap/unix_id_pool.rb +43 -0
  62. data/lib/active_samba_ldap/user.rb +44 -0
  63. data/lib/active_samba_ldap/user_account_entry.rb +30 -0
  64. data/lib/active_samba_ldap/version.rb +3 -0
  65. data/lib/samba/encrypt.rb +86 -0
  66. data/misc/rd2html.rb +42 -0
  67. data/po/ja/active-samba-ldap.po +465 -0
  68. data/rails/README +30 -0
  69. data/rails/init.rb +33 -0
  70. data/rails_generators/scaffold_active_samba_ldap/scaffold_active_samba_ldap_generator.rb +27 -0
  71. data/rails_generators/scaffold_active_samba_ldap/templates/computer.rb +3 -0
  72. data/rails_generators/scaffold_active_samba_ldap/templates/dc.rb +3 -0
  73. data/rails_generators/scaffold_active_samba_ldap/templates/group.rb +3 -0
  74. data/rails_generators/scaffold_active_samba_ldap/templates/idmap.rb +3 -0
  75. data/rails_generators/scaffold_active_samba_ldap/templates/ldap.yml +24 -0
  76. data/rails_generators/scaffold_active_samba_ldap/templates/ou.rb +3 -0
  77. data/rails_generators/scaffold_active_samba_ldap/templates/samba_controller.rb +12 -0
  78. data/rails_generators/scaffold_active_samba_ldap/templates/samba_helper.rb +2 -0
  79. data/rails_generators/scaffold_active_samba_ldap/templates/samba_index.rhtml +17 -0
  80. data/rails_generators/scaffold_active_samba_ldap/templates/samba_populate.rhtml +15 -0
  81. data/rails_generators/scaffold_active_samba_ldap/templates/samba_purge.rhtml +10 -0
  82. data/rails_generators/scaffold_active_samba_ldap/templates/unix_id_pool.rb +3 -0
  83. data/rails_generators/scaffold_active_samba_ldap/templates/user.rb +3 -0
  84. data/setup.rb +1585 -0
  85. data/test-unit/History.txt +107 -0
  86. data/test-unit/README.txt +52 -0
  87. data/test-unit/Rakefile +40 -0
  88. data/test-unit/TODO +5 -0
  89. data/test-unit/bin/testrb +5 -0
  90. data/test-unit/lib/test/unit.rb +342 -0
  91. data/test-unit/lib/test/unit/assertionfailederror.rb +14 -0
  92. data/test-unit/lib/test/unit/assertions.rb +1149 -0
  93. data/test-unit/lib/test/unit/attribute.rb +125 -0
  94. data/test-unit/lib/test/unit/autorunner.rb +329 -0
  95. data/test-unit/lib/test/unit/collector.rb +43 -0
  96. data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
  97. data/test-unit/lib/test/unit/collector/dir.rb +108 -0
  98. data/test-unit/lib/test/unit/collector/load.rb +135 -0
  99. data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
  100. data/test-unit/lib/test/unit/color-scheme.rb +86 -0
  101. data/test-unit/lib/test/unit/color.rb +96 -0
  102. data/test-unit/lib/test/unit/diff.rb +538 -0
  103. data/test-unit/lib/test/unit/error.rb +124 -0
  104. data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
  105. data/test-unit/lib/test/unit/failure.rb +110 -0
  106. data/test-unit/lib/test/unit/fixture.rb +176 -0
  107. data/test-unit/lib/test/unit/notification.rb +125 -0
  108. data/test-unit/lib/test/unit/omission.rb +143 -0
  109. data/test-unit/lib/test/unit/pending.rb +146 -0
  110. data/test-unit/lib/test/unit/priority.rb +181 -0
  111. data/test-unit/lib/test/unit/runner/console.rb +52 -0
  112. data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
  113. data/test-unit/lib/test/unit/testcase.rb +425 -0
  114. data/test-unit/lib/test/unit/testresult.rb +89 -0
  115. data/test-unit/lib/test/unit/testsuite.rb +110 -0
  116. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
  117. data/test-unit/lib/test/unit/ui/console/testrunner.rb +223 -0
  118. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +49 -0
  119. data/test-unit/lib/test/unit/ui/testrunner.rb +20 -0
  120. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
  121. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  122. data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
  123. data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
  124. data/test-unit/lib/test/unit/util/observable.rb +90 -0
  125. data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
  126. data/test-unit/lib/test/unit/version.rb +7 -0
  127. data/test-unit/sample/adder.rb +13 -0
  128. data/test-unit/sample/subtracter.rb +12 -0
  129. data/test-unit/sample/tc_adder.rb +18 -0
  130. data/test-unit/sample/tc_subtracter.rb +18 -0
  131. data/test-unit/sample/test_user.rb +22 -0
  132. data/test-unit/sample/ts_examples.rb +7 -0
  133. data/test-unit/test/collector/test-descendant.rb +135 -0
  134. data/test-unit/test/collector/test-load.rb +333 -0
  135. data/test-unit/test/collector/test_dir.rb +406 -0
  136. data/test-unit/test/collector/test_objectspace.rb +98 -0
  137. data/test-unit/test/run-test.rb +13 -0
  138. data/test-unit/test/test-attribute.rb +86 -0
  139. data/test-unit/test/test-color-scheme.rb +56 -0
  140. data/test-unit/test/test-color.rb +47 -0
  141. data/test-unit/test/test-diff.rb +477 -0
  142. data/test-unit/test/test-emacs-runner.rb +60 -0
  143. data/test-unit/test/test-fixture.rb +287 -0
  144. data/test-unit/test/test-notification.rb +33 -0
  145. data/test-unit/test/test-omission.rb +81 -0
  146. data/test-unit/test/test-pending.rb +70 -0
  147. data/test-unit/test/test-priority.rb +119 -0
  148. data/test-unit/test/test-testcase.rb +507 -0
  149. data/test-unit/test/test_assertions.rb +1082 -0
  150. data/test-unit/test/test_error.rb +26 -0
  151. data/test-unit/test/test_failure.rb +33 -0
  152. data/test-unit/test/test_testresult.rb +113 -0
  153. data/test-unit/test/test_testsuite.rb +129 -0
  154. data/test-unit/test/testunit-test-util.rb +14 -0
  155. data/test-unit/test/ui/test_testrunmediator.rb +20 -0
  156. data/test-unit/test/util/test-method-owner-finder.rb +38 -0
  157. data/test-unit/test/util/test_backtracefilter.rb +41 -0
  158. data/test-unit/test/util/test_observable.rb +102 -0
  159. data/test-unit/test/util/test_procwrapper.rb +36 -0
  160. data/test/asl-test-utils.rb +276 -0
  161. data/test/command.rb +67 -0
  162. data/test/config.yaml.sample +17 -0
  163. data/test/run-test.rb +20 -0
  164. data/test/test_asl_groupadd.rb +69 -0
  165. data/test/test_asl_groupdel.rb +88 -0
  166. data/test/test_asl_groupmod.rb +259 -0
  167. data/test/test_asl_groupshow.rb +21 -0
  168. data/test/test_asl_passwd.rb +126 -0
  169. data/test/test_asl_populate.rb +92 -0
  170. data/test/test_asl_purge.rb +21 -0
  171. data/test/test_asl_useradd.rb +712 -0
  172. data/test/test_asl_userdel.rb +75 -0
  173. data/test/test_asl_usermod.rb +549 -0
  174. data/test/test_asl_usershow.rb +27 -0
  175. data/test/test_entry.rb +21 -0
  176. data/test/test_group.rb +21 -0
  177. data/test/test_password.rb +51 -0
  178. data/test/test_samba_encrypt.rb +35 -0
  179. data/test/test_user_home_directory.rb +43 -0
  180. metadata +314 -0
@@ -0,0 +1,361 @@
1
+ = README.ja
2
+
3
+ $Id: README.ja 160 2009-07-11 00:43:32Z kou $
4
+
5
+ == 名前
6
+
7
+ ActiveSambaLdap
8
+
9
+ == 説明
10
+
11
+ ActiveSambaLdapはSamba用LDAPエントリを管理するための
12
+ ActiveRecord風なライブラリです.また,smbldap-toolsのような
13
+ 管理用コマンドラインツールも提供します.
14
+
15
+ == 作者
16
+
17
+ Kouhei Sutou <tt><kou@clear-code.com></tt>
18
+
19
+ == ライセンス
20
+
21
+ Ruby's.
22
+
23
+ == 依存ライブラリ
24
+
25
+ * ActiveLdap >= 1.1.0
26
+
27
+ == インストール
28
+
29
+ % sudo gem install activesambaldap
30
+
31
+ == メーリングリスト
32
+
33
+ asl-devel-ja@rubyforge.org
34
+
35
+ http://rubyforge.org/mailman/listinfo/asl-devel-ja/
36
+
37
+ == リファレンスマニュアル
38
+
39
+ http://asl.rubyforge.org/activesambaldap/
40
+
41
+ == 使用法
42
+
43
+ === Railsと使う
44
+
45
+ まず,Rails用プラグインをインストールします.以下のURLは
46
+ trunk用ですので,環境にあわせて変更してください.
47
+
48
+ % script/plugin install svn://rubyforge.org/var/svn/asl/trunk/rails/plugin/active_samba_ldap
49
+
50
+ 次に,Rails用ActiveSambaLdap環境を構築します.
51
+
52
+ % script/generate scaffold_active_samba_ldap
53
+
54
+ config/ldap.ymlが生成されるので,環境にあわせて編集します.
55
+ 指定できるオプションは,以下の「設定ファイルのオプション」の
56
+ 項を参考にしてください.
57
+
58
+ ==== 初期化
59
+
60
+ はじめに,Samba + LDAP環境を初期化する必要があります.
61
+ script/serverなどでRailsを起動し,
62
+ http://localhost:3000/sambaにアクセスしてください.
63
+ 「Populate Samba + LDAP environment」というリンクがあるので,
64
+ それを使ってSamba + LDAP環境を初期化します.
65
+
66
+ あとは,ActiveRecordを利用した開発と同じように,
67
+ User/Computer/Groupクラスなどを使用して開発してください.
68
+
69
+ === コマンドラインから使う
70
+
71
+ asl-*というコマンドを使います.asl-samba-*はsmb.confに設定す
72
+ るためのコマンドで,ターミナルから使うことはありません.
73
+
74
+ ==== 設定
75
+
76
+ まず,あなたの環境にあわせて設定ファイルを編集します.デフォ
77
+ ルトで読み込まれるファイルは--helpオプションをつけて起動する
78
+ と確認できます.asl-*のどのコマンドでも表示されます.例えば,
79
+ asl-populateを使うとこうなります.
80
+
81
+ % asl-populate --help
82
+ ...
83
+ --config=CONFIG Specify configuration file
84
+ Default configuration files:
85
+ /etc/activesambaldap/config.yaml
86
+ /etc/activesambaldap/bind.yaml
87
+ /home/kou/.activesambaldap.conf
88
+ /home/kou/.activesambaldap.bind
89
+ ...
90
+
91
+ 設定ファイルは上から順に読み込まれていきます.設定内容は後の
92
+ ファイルで上書きされます.上記の例だと,以下の順序で読み込ま
93
+ れていきます.
94
+
95
+ * /etc/activesambaldap/config.yaml
96
+ * /etc/activesambaldap/bind.yaml
97
+ * /home/kou/.activesambaldap.conf
98
+ * /home/kou/.activesambaldap.bind
99
+
100
+ config.yamlや*.confの後にbind.yamlや*.bindを読み込んでいるの
101
+ はセキュリティ上の配慮です.ホスト名などの見られてもよい情報
102
+ はconfig.yamlや*.confに書き,認証情報など見られてはまずい情
103
+ 報はbind.yamlや*.bindに書き,適切なパーミッションを設定する
104
+ とよいでしょう.
105
+
106
+ ==== 設定ファイルの書式
107
+
108
+ YAMLで記述します.三つのセクションからなります.
109
+
110
+ update:
111
+ # LDAPエントリを更新する時の設定
112
+ ...
113
+
114
+ reference:
115
+ # LDAPエントリを参照する時の設定
116
+ ...
117
+
118
+ common:
119
+ # 更新時/参照時で共有の設定
120
+ ...
121
+
122
+ 例えば,以下のようになります.
123
+
124
+ common:
125
+ sid: S-1-5-21-915876905-2926214379-2876160357
126
+ base: dc=samba,dc=local,dc=net
127
+ host: localhost
128
+ method: :tls
129
+
130
+ update:
131
+ bind_dn: cn=admin,dc=local,dc=net
132
+ password: admin
133
+
134
+ reference:
135
+ allow_anonymous: true
136
+
137
+ passwordはbind.yamlや*.bindに記述するとよいでしょう.
138
+
139
+ baseは必ず設定してください.また,sidも設定しておくとよいで
140
+ しょう.sidの値は以下のコマンドで確認できます.
141
+
142
+ % sudo net getlocalsid
143
+
144
+ sidを設定しておかないと,毎回net getlocalsidをするため,効率
145
+ が悪くなります.
146
+
147
+ ==== 設定ファイルのオプション
148
+
149
+ 設定可能なオプションは以下の通りです.
150
+
151
+ [_base_]
152
+ ActiveLdap::Base.setup_connectionのオプションと同じ.
153
+ [_host_]
154
+ ActiveLdap::Base.setup_connectionのオプションと同じ.
155
+ [_port_]
156
+ ActiveLdap::Base.setup_connectionのオプションと同じ.
157
+ [_scope_]
158
+ ActiveLdap::Base.setup_connectionのオプションと同じ.
159
+ [_bind_dn_]
160
+ ActiveLdap::Base.setup_connectionのオプションと同じ.
161
+ [_password_]
162
+ ActiveLdap::Base.setup_connectionのオプションと同じ.
163
+ [_method_]
164
+ ActiveLdap::Base.setup_connectionのオプションと同じ.
165
+ [_allow_anonymous_]
166
+ ActiveLdap::Base.setup_connectionのオプションと同じ.
167
+
168
+ [_sid_]
169
+ SambaサーバのSID(Security Identifier).
170
+ [_smb_conf_]
171
+ Sambaの設定ファイルsmb.confがあるパス.
172
+ [_samba_domain_]
173
+ Sambaサーバのドメイン
174
+ [_samba_netbios_name_]
175
+ SambaサーバのNetBIOS名
176
+
177
+ [_password_hash_type_]
178
+ LDAP上のパスワードをハッシュ化する時に使用するアルゴリズ
179
+ ム.指定できるの
180
+ は+:crypt+, +:md5+, +:smd5+, +:sha+, +:ssha+です。
181
+
182
+ LDAP上のパスワードはSambaの認証時ではなく,UNIX上のユーザ
183
+ の認証時に利用されます.
184
+
185
+ デフォルト: +:ssha+
186
+
187
+ [_users_suffix_]
188
+ LDAP上のユーザエントリを格納するツリー.baseからの相対パ
189
+ スを指定する.
190
+
191
+ 例: <tt>"ou=Users"</tt>
192
+
193
+ [_groups_suffix_]
194
+ LDAP上のグループエントリを格納するツリー.baseからの相対パ
195
+ スを指定する.
196
+
197
+ 例: <tt>"ou=Groups"</tt>
198
+
199
+ [_computers_suffix_]
200
+ LDAP上のコンピュータエントリを格納するツリー.baseからの相対パ
201
+ スを指定する.
202
+
203
+ 例: <tt>"ou=Computers"</tt>
204
+
205
+ [_idmap_suffix_]
206
+ LDAP上のidmapエントリを格納するツリー.baseからの相対パ
207
+ スを指定する.
208
+
209
+ 例: <tt>"ou=Idmap"</tt>
210
+
211
+ [_start_uid_]
212
+ 新しいユーザを作ったときに,はじめに使用するUID(User
213
+ Identifier).以降のUIDは1ずつ増えていく.
214
+
215
+ デフォルト: +10000+
216
+
217
+ [_start_gid_]
218
+ 新しいユーザを作ったときに,はじめに使用するGID(Group
219
+ Identifier).以降のGIDは1ずつ増えていく.
220
+
221
+ デフォルト: +10000+
222
+
223
+ [_user_login_shell_]
224
+ 新しく作成したユーザのログインシェル.
225
+
226
+ デフォルト: <tt>"/bin/false"</tt>
227
+
228
+ [_user_home_directory_]
229
+ 新しく作成したユーザのホームディレクトリ.%Uはユーザ名に
230
+ 置換される.
231
+
232
+ デフォルト: <tt>"/home/%U"</tt>
233
+
234
+ [_user_home_directory_mode_]
235
+ ユーザのホームディレクトリを作成する際に設定するパーミッ
236
+ ション用のモード.
237
+
238
+ デフォルト: +0755+(8進数)
239
+
240
+ [_user_gecos_]
241
+ ユーザのGECOSフィールドの値.%Uはユーザ名に置換される.
242
+
243
+ [_user_home_unc_]
244
+ Windowsから見たときのユーザのホームへのパス.
245
+ UNC(Universal Naming Convention)で記述する.%Uはユーザ名
246
+ に置換される.
247
+
248
+ デフォルト: <tt>"\\\\SambaサーバのNetBIOS名\\%U"</tt>
249
+
250
+ [_user_profile_]
251
+ ユーザプロファイルへのパス.
252
+ UNC(Universal Naming Convention)で記述する.%Uはユーザ名
253
+ に置換される.
254
+
255
+ デフォルト: <tt>"\\\\SambaサーバのNetBIOS名\\profiles\\%U"</tt>
256
+
257
+ [_user_home_drive_]
258
+ ユーザのホームを割り当てるドライブ名.
259
+
260
+ デフォルト: <tt>"H:"</tt>
261
+
262
+ [_user_logon_script_]
263
+ ユーザがログオンしたときに実行するスクリプトファイル名.
264
+
265
+ デフォルト: <tt>"logon.bat"</tt>
266
+
267
+ [_skeleton_directory_]
268
+ ユーザのホームディレクトリを作成する時に雛型とするディレ
269
+ クトリ.
270
+
271
+ デフォルト: <tt>"/etc/skel"</tt>
272
+
273
+ [_default_user_gid_]
274
+ デフォルトでユーザが所属するグループ.
275
+
276
+ デフォルト: <tt>"Domain Users"</tt>グループ
277
+
278
+ [_default_computer_gid_]
279
+ デフォルトでコンピュータが所属するグループ.
280
+
281
+ デフォルト: <tt>"Domain Computers"</tt>グループ
282
+
283
+ ==== 初期化
284
+
285
+ asl-*を用いてSamba + LDAP環境を管理する前に,一度だけ
286
+ asl-populateを起動してLDAPサーバに基本的なエントリを追加しま
287
+ す.
288
+
289
+ % sudo asl-populate
290
+
291
+ もし,root権限が無くても実行できるのであれば以下のようにする
292
+ とよいでしょう.(root権限チェックは必要ないかもしれない)
293
+
294
+ % fakeroot asl-populate
295
+
296
+ ==== 管理
297
+
298
+ コマンドラインからはasl-user*, asl-group*, asl-populate,
299
+ asl-purge, asl-passwordを使って管理してください.各コマンド
300
+ の使いかたは--helpオプションを参考にしてください.
301
+
302
+ ==== smb.confの設定
303
+
304
+ Srvtools[http://support.microsoft.com/kb/173673/]を使って
305
+ Windowsからユーザ管理を行いたい場合は,また,Sambaをドメイン
306
+ コントローラとして動作させたい場合は,以下のようにsmb.confを
307
+ 設定します.ここでは,asl-samba-*を使います.
308
+
309
+ (ドメインコントローラとして動作させるけど,Srvtools でユー
310
+ ザ管理を行わない場合はadd machine script以外のなんとかscript
311
+ は設定しなくてもよい気がする.)
312
+
313
+ passdb backend = ldapsam:ldap://127.0.0.0
314
+ ldap admin dn = cn=admin,dc=local,dc=net
315
+ ldap suffix = dc=samba,dc=local,dc=net
316
+ ldap user suffix = ou=Users
317
+ ldap group suffix = ou=Groups
318
+ ldap machine suffix = ou=Computers
319
+ ldap idmap suffix = ou=Idmap
320
+ ldap passwd sync = yes
321
+
322
+ admin users = "@Domain Admins"
323
+ add user script = /.../asl-samba-useradd "%u"
324
+ delete user script = /.../asl-samba-userdel "%u"
325
+ add group script = /.../asl-samba-groupadd "%g"
326
+ delete group script = /.../asl-samba-groupdel "%g"
327
+ add user to group script = /.../asl-samba-groupmod "%g" --add-members "%u"
328
+ delete user from group script = /.../asl-samba-groupmod "%g" --delete-members "%u"
329
+ set primary group script = /.../asl-samba-usermod "%u" --gid "%g"
330
+ add machine script = /.../asl-samba-computeradd "%u"
331
+
332
+ Sambaを起動する前に,以下を実行してldap admin dnで指定した
333
+ LDAP管理ユーザのパスワードを設定しておく必要があります.
334
+
335
+ % sudo /usr/bin/smbpasswd -W
336
+
337
+ == トラブルシューティング
338
+
339
+ === グループ一覧がでない
340
+
341
+ 以下のコマンドでグループ一覧を表示する事ができます。
342
+
343
+ % net rpc group list --user=USER_NAME
344
+
345
+ もし、asl-populateした後なのに上記のコマンドでひとつもグルー
346
+ プがでない場合は以下のことを確認してください。
347
+
348
+ * samba.schemaが古くないか
349
+
350
+ sambaSIDのエントリに以下の設定がない場合は古い
351
+ samba.schemaである可能性があります。最新のものに更新して
352
+ ください。
353
+
354
+ SUBSTR caseExactIA5SubstringsMatch
355
+
356
+ == 感謝
357
+
358
+ * Henrik Krög: バグを報告してくれました。
359
+ * Olivier DIRRENBERGER: バグを報告してくれました。
360
+ * Francesco Malvezzi: バグを報告してくれました。
361
+ * Kazuhiro NISHIYAMA: バグを報告してくれました。
@@ -0,0 +1,168 @@
1
+ # -*- ruby -*-
2
+
3
+ require 'find'
4
+ require 'fileutils'
5
+
6
+ base_dir = File.expand_path(File.dirname(__FILE__))
7
+ truncate_base_dir = Proc.new do |x|
8
+ x.gsub(/^#{Regexp.escape(base_dir + File::SEPARATOR)}/, '')
9
+ end
10
+
11
+ _binding = binding
12
+ file = "#{base_dir}/lib/active_samba_ldap.rb"
13
+ eval(File.read(file), _binding, file)
14
+ eval('require_gem_if_need.call("hoe")', _binding)
15
+ required_active_ldap_version = eval('required_active_ldap_version', _binding)
16
+
17
+ manifest = File.join(base_dir, "Manifest.txt")
18
+ manifest_contents = []
19
+ base_dir_included_components = %w(README.ja README.en NEWS.ja NEWS.en setup.rb
20
+ Rakefile)
21
+ excluded_components = %w(.svn .test-result .config Manifest.txt config.yml doc
22
+ pkg html config.yaml)
23
+ excluded_suffixes = %w(.help)
24
+ Find.find(base_dir) do |target|
25
+ target = truncate_base_dir[target]
26
+ components = target.split(File::SEPARATOR)
27
+ if components.size == 1 and !File.directory?(target)
28
+ next unless base_dir_included_components.include?(components[0])
29
+ end
30
+ Find.prune if (excluded_components - components) != excluded_components
31
+ next if excluded_suffixes.include?(File.extname(target))
32
+ manifest_contents << target if File.file?(target)
33
+ end
34
+
35
+ File.open(manifest, "w") do |f|
36
+ f.puts manifest_contents.sort.join("\n")
37
+ end
38
+ at_exit do
39
+ FileUtils.rm_f(manifest)
40
+ end
41
+
42
+ def cleanup_white_space(entry)
43
+ entry.gsub(/(\A\n+|\n+\z)/, '') + "\n"
44
+ end
45
+
46
+ # For Hoe's no user friendly default behavior. :<
47
+ File.open("README.txt", "w") {|file| file << "= Dummy README\n== XXX\n"}
48
+ FileUtils.cp("NEWS.en", "History.txt")
49
+ at_exit do
50
+ FileUtils.rm_f("README.txt")
51
+ FileUtils.rm_f("History.txt")
52
+ end
53
+
54
+ ENV["VERSION"] = ActiveSambaLdap::VERSION
55
+ project = Hoe.spec("activesambaldap") do
56
+ self.version = ActiveSambaLdap::VERSION
57
+ self.rubyforge_name = "asl"
58
+ self.name = "ActiveSambaLdap"
59
+ self.summary = "Samba+LDAP administration tools"
60
+ self.extra_deps << ["activeldap", required_active_ldap_version]
61
+ self.email = ["kou@clear-code.com"]
62
+ self.author = "Kouhei Sutou"
63
+ self.url = "http://asl.rubyforge.org/"
64
+
65
+ news_of_current_release = File.read("NEWS.en").split(/^==\s.*$/)[1]
66
+ self.changes = cleanup_white_space(news_of_current_release)
67
+
68
+ entries = File.read("README.en").split(/^==\s(.*)$/)
69
+ whats_this = cleanup_white_space(entries[entries.index("Description") + 1])
70
+ self.summary, self.description, = whats_this.split(/\n\n+/, 3)
71
+ end
72
+
73
+
74
+ rdoc_main = "README.en"
75
+
76
+ rdoc_task = nil
77
+ if ObjectSpace.each_object(Rake::RDocTask) {|rdoc_task|} != 1
78
+ puts "hoe may be changed"
79
+ end
80
+ rdoc_task.main = rdoc_main
81
+ rdoc_task.options.delete("-d")
82
+ rdoc_task.options << "--charset=UTF-8"
83
+ rdoc_task.rdoc_files -= project.spec.executables
84
+ rdoc_task.rdoc_files += project.spec.executables.collect {|x| "bin/#{x}.help"}
85
+ rdoc_task.rdoc_files += project.spec.files.find_all {|x| /\.(en|ja)\z/ =~ x}
86
+ rdoc_task.rdoc_files.reject! {|file| /\Atest-unit\// =~ file}
87
+
88
+ rdoc_options = rdoc_task.option_list
89
+ output_option_index = rdoc_options.index("-o")
90
+ rdoc_options[output_option_index, 2] = nil
91
+ project.spec.rdoc_options = rdoc_options
92
+ project.spec.extra_rdoc_files = rdoc_task.rdoc_files
93
+
94
+ project.spec.executables.each do |bin|
95
+ bin = "bin/#{bin}"
96
+ bin_help = "#{bin}.help"
97
+ File.open(bin_help, "w") do |f|
98
+ lang = ENV["LANG"]
99
+ ENV["LANG"] = "C"
100
+ f.puts(`#{RUBY} -I #{File.join(base_dir, 'lib')} #{bin} --help`)
101
+ ENV["LANG"] = lang
102
+ end
103
+ at_exit do
104
+ FileUtils.rm_f(bin_help)
105
+ end
106
+ end
107
+
108
+ task :docs do
109
+ css_file = "doc/rdoc.css"
110
+ css = File.read(css_file)
111
+ reset_spacing = Regexp.escape("*{ padding: 0; margin: 0; }")
112
+ customized_css = css.sub(/#{reset_spacing}/, '')
113
+ if css != customized_css
114
+ File.open(css_file, "w") do |output|
115
+ output.print(customized_css)
116
+ end
117
+ end
118
+ end
119
+
120
+ desc 'Tag the repository for release.'
121
+ task :tag do
122
+ version = ActiveSambaLdap::VERSION
123
+ message = "Released ActiveSambaLdap #{version}!"
124
+ base = "svn+ssh://#{ENV['USER']}@rubyforge.org/var/svn/asl/"
125
+ sh 'svn', 'copy', '-m', message, "#{base}trunk", "#{base}tags/#{version}"
126
+ end
127
+
128
+ desc "Distribute new release."
129
+ task :dist => [:publish_docs, :release, :tag, :announce]
130
+
131
+ desc "Update *.po/*.pot files and create *.mo from *.po files"
132
+ task :gettext => ["gettext:po:update", "gettext:mo:create"]
133
+
134
+ namespace :gettext do
135
+ desc "Setup environment for GetText"
136
+ task :environment do
137
+ require "gettext/utils"
138
+ end
139
+
140
+ namespace :po do
141
+ desc "Update po/pot files (GetText)"
142
+ task :update => "gettext:environment" do
143
+ module GetText::RGetText
144
+ class << self
145
+ alias_method :generate_pot_original, :generate_pot
146
+ def generate_pot(ary)
147
+ ary = ary.collect {|key, *other| [key.gsub(/\\/, "\\\\\\"), *other]}
148
+ generate_pot_original(ary)
149
+ end
150
+ end
151
+ end
152
+ files = Dir.glob("{lib,rails}/**/*.rb")
153
+ files += Dir.glob("bin/asl*")
154
+ GetText.update_pofiles("active-samba-ldap",
155
+ files,
156
+ "Ruby/ActiveSambaLdap #{ActiveSambaLdap::VERSION}")
157
+ end
158
+ end
159
+
160
+ namespace :mo do
161
+ desc "Create *.mo from *.po (GetText)"
162
+ task :create => "gettext:environment" do
163
+ GetText.create_mofiles(false)
164
+ end
165
+ end
166
+ end
167
+
168
+ task(:gem).prerequisites.unshift("gettext:mo:create")