ActiveSambaLdap 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- 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")
|