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.
- data/NEWS.en +40 -0
- data/NEWS.ja +44 -0
- data/README.en +366 -0
- data/README.ja +361 -0
- data/Rakefile +168 -0
- data/bin/asl-groupadd +73 -0
- data/bin/asl-groupadd.help +1 -0
- data/bin/asl-groupdel +61 -0
- data/bin/asl-groupdel.help +1 -0
- data/bin/asl-groupmod +137 -0
- data/bin/asl-groupmod.help +1 -0
- data/bin/asl-groupshow +33 -0
- data/bin/asl-groupshow.help +1 -0
- data/bin/asl-passwd +90 -0
- data/bin/asl-passwd.help +1 -0
- data/bin/asl-populate +101 -0
- data/bin/asl-populate.help +1 -0
- data/bin/asl-purge +26 -0
- data/bin/asl-purge.help +1 -0
- data/bin/asl-samba-computeradd +96 -0
- data/bin/asl-samba-computeradd.help +1 -0
- data/bin/asl-samba-groupadd +57 -0
- data/bin/asl-samba-groupadd.help +1 -0
- data/bin/asl-samba-groupdel +55 -0
- data/bin/asl-samba-groupdel.help +1 -0
- data/bin/asl-samba-groupmod +99 -0
- data/bin/asl-samba-groupmod.help +1 -0
- data/bin/asl-samba-useradd +100 -0
- data/bin/asl-samba-useradd.help +1 -0
- data/bin/asl-samba-userdel +49 -0
- data/bin/asl-samba-userdel.help +1 -0
- data/bin/asl-samba-usermod +94 -0
- data/bin/asl-samba-usermod.help +1 -0
- data/bin/asl-useradd +264 -0
- data/bin/asl-useradd.help +1 -0
- data/bin/asl-userdel +84 -0
- data/bin/asl-userdel.help +1 -0
- data/bin/asl-usermod +335 -0
- data/bin/asl-usermod.help +1 -0
- data/bin/asl-usershow +33 -0
- data/bin/asl-usershow.help +1 -0
- data/lib/active_samba_ldap.rb +42 -0
- data/lib/active_samba_ldap/account_entry.rb +208 -0
- data/lib/active_samba_ldap/base.rb +137 -0
- data/lib/active_samba_ldap/command.rb +100 -0
- data/lib/active_samba_ldap/computer.rb +24 -0
- data/lib/active_samba_ldap/computer_account_entry.rb +34 -0
- data/lib/active_samba_ldap/configuration.rb +333 -0
- data/lib/active_samba_ldap/dc.rb +19 -0
- data/lib/active_samba_ldap/entry.rb +81 -0
- data/lib/active_samba_ldap/get_text_support.rb +12 -0
- data/lib/active_samba_ldap/group.rb +17 -0
- data/lib/active_samba_ldap/group_entry.rb +187 -0
- data/lib/active_samba_ldap/idmap.rb +19 -0
- data/lib/active_samba_ldap/ou.rb +20 -0
- data/lib/active_samba_ldap/populate.rb +257 -0
- data/lib/active_samba_ldap/reloadable.rb +15 -0
- data/lib/active_samba_ldap/samba_account_entry.rb +225 -0
- data/lib/active_samba_ldap/samba_entry.rb +26 -0
- data/lib/active_samba_ldap/samba_group_entry.rb +143 -0
- data/lib/active_samba_ldap/unix_id_pool.rb +43 -0
- data/lib/active_samba_ldap/user.rb +44 -0
- data/lib/active_samba_ldap/user_account_entry.rb +30 -0
- data/lib/active_samba_ldap/version.rb +3 -0
- data/lib/samba/encrypt.rb +86 -0
- data/misc/rd2html.rb +42 -0
- data/po/ja/active-samba-ldap.po +465 -0
- data/rails/README +30 -0
- data/rails/init.rb +33 -0
- data/rails_generators/scaffold_active_samba_ldap/scaffold_active_samba_ldap_generator.rb +27 -0
- data/rails_generators/scaffold_active_samba_ldap/templates/computer.rb +3 -0
- data/rails_generators/scaffold_active_samba_ldap/templates/dc.rb +3 -0
- data/rails_generators/scaffold_active_samba_ldap/templates/group.rb +3 -0
- data/rails_generators/scaffold_active_samba_ldap/templates/idmap.rb +3 -0
- data/rails_generators/scaffold_active_samba_ldap/templates/ldap.yml +24 -0
- data/rails_generators/scaffold_active_samba_ldap/templates/ou.rb +3 -0
- data/rails_generators/scaffold_active_samba_ldap/templates/samba_controller.rb +12 -0
- data/rails_generators/scaffold_active_samba_ldap/templates/samba_helper.rb +2 -0
- data/rails_generators/scaffold_active_samba_ldap/templates/samba_index.rhtml +17 -0
- data/rails_generators/scaffold_active_samba_ldap/templates/samba_populate.rhtml +15 -0
- data/rails_generators/scaffold_active_samba_ldap/templates/samba_purge.rhtml +10 -0
- data/rails_generators/scaffold_active_samba_ldap/templates/unix_id_pool.rb +3 -0
- data/rails_generators/scaffold_active_samba_ldap/templates/user.rb +3 -0
- data/setup.rb +1585 -0
- data/test-unit/History.txt +107 -0
- data/test-unit/README.txt +52 -0
- data/test-unit/Rakefile +40 -0
- data/test-unit/TODO +5 -0
- data/test-unit/bin/testrb +5 -0
- data/test-unit/lib/test/unit.rb +342 -0
- data/test-unit/lib/test/unit/assertionfailederror.rb +14 -0
- data/test-unit/lib/test/unit/assertions.rb +1149 -0
- data/test-unit/lib/test/unit/attribute.rb +125 -0
- data/test-unit/lib/test/unit/autorunner.rb +329 -0
- data/test-unit/lib/test/unit/collector.rb +43 -0
- data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
- data/test-unit/lib/test/unit/collector/dir.rb +108 -0
- data/test-unit/lib/test/unit/collector/load.rb +135 -0
- data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
- data/test-unit/lib/test/unit/color-scheme.rb +86 -0
- data/test-unit/lib/test/unit/color.rb +96 -0
- data/test-unit/lib/test/unit/diff.rb +538 -0
- data/test-unit/lib/test/unit/error.rb +124 -0
- data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
- data/test-unit/lib/test/unit/failure.rb +110 -0
- data/test-unit/lib/test/unit/fixture.rb +176 -0
- data/test-unit/lib/test/unit/notification.rb +125 -0
- data/test-unit/lib/test/unit/omission.rb +143 -0
- data/test-unit/lib/test/unit/pending.rb +146 -0
- data/test-unit/lib/test/unit/priority.rb +181 -0
- data/test-unit/lib/test/unit/runner/console.rb +52 -0
- data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
- data/test-unit/lib/test/unit/testcase.rb +425 -0
- data/test-unit/lib/test/unit/testresult.rb +89 -0
- data/test-unit/lib/test/unit/testsuite.rb +110 -0
- data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
- data/test-unit/lib/test/unit/ui/console/testrunner.rb +223 -0
- data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +49 -0
- data/test-unit/lib/test/unit/ui/testrunner.rb +20 -0
- data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
- data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
- data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
- data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
- data/test-unit/lib/test/unit/util/observable.rb +90 -0
- data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
- data/test-unit/lib/test/unit/version.rb +7 -0
- data/test-unit/sample/adder.rb +13 -0
- data/test-unit/sample/subtracter.rb +12 -0
- data/test-unit/sample/tc_adder.rb +18 -0
- data/test-unit/sample/tc_subtracter.rb +18 -0
- data/test-unit/sample/test_user.rb +22 -0
- data/test-unit/sample/ts_examples.rb +7 -0
- data/test-unit/test/collector/test-descendant.rb +135 -0
- data/test-unit/test/collector/test-load.rb +333 -0
- data/test-unit/test/collector/test_dir.rb +406 -0
- data/test-unit/test/collector/test_objectspace.rb +98 -0
- data/test-unit/test/run-test.rb +13 -0
- data/test-unit/test/test-attribute.rb +86 -0
- data/test-unit/test/test-color-scheme.rb +56 -0
- data/test-unit/test/test-color.rb +47 -0
- data/test-unit/test/test-diff.rb +477 -0
- data/test-unit/test/test-emacs-runner.rb +60 -0
- data/test-unit/test/test-fixture.rb +287 -0
- data/test-unit/test/test-notification.rb +33 -0
- data/test-unit/test/test-omission.rb +81 -0
- data/test-unit/test/test-pending.rb +70 -0
- data/test-unit/test/test-priority.rb +119 -0
- data/test-unit/test/test-testcase.rb +507 -0
- data/test-unit/test/test_assertions.rb +1082 -0
- data/test-unit/test/test_error.rb +26 -0
- data/test-unit/test/test_failure.rb +33 -0
- data/test-unit/test/test_testresult.rb +113 -0
- data/test-unit/test/test_testsuite.rb +129 -0
- data/test-unit/test/testunit-test-util.rb +14 -0
- data/test-unit/test/ui/test_testrunmediator.rb +20 -0
- data/test-unit/test/util/test-method-owner-finder.rb +38 -0
- data/test-unit/test/util/test_backtracefilter.rb +41 -0
- data/test-unit/test/util/test_observable.rb +102 -0
- data/test-unit/test/util/test_procwrapper.rb +36 -0
- data/test/asl-test-utils.rb +276 -0
- data/test/command.rb +67 -0
- data/test/config.yaml.sample +17 -0
- data/test/run-test.rb +20 -0
- data/test/test_asl_groupadd.rb +69 -0
- data/test/test_asl_groupdel.rb +88 -0
- data/test/test_asl_groupmod.rb +259 -0
- data/test/test_asl_groupshow.rb +21 -0
- data/test/test_asl_passwd.rb +126 -0
- data/test/test_asl_populate.rb +92 -0
- data/test/test_asl_purge.rb +21 -0
- data/test/test_asl_useradd.rb +712 -0
- data/test/test_asl_userdel.rb +75 -0
- data/test/test_asl_usermod.rb +549 -0
- data/test/test_asl_usershow.rb +27 -0
- data/test/test_entry.rb +21 -0
- data/test/test_group.rb +21 -0
- data/test/test_password.rb +51 -0
- data/test/test_samba_encrypt.rb +35 -0
- data/test/test_user_home_directory.rb +43 -0
- metadata +314 -0
data/README.ja
ADDED
@@ -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: バグを報告してくれました。
|
data/Rakefile
ADDED
@@ -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")
|