ActiveSambaLdap 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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")