- PR -

Samba 3 で ActiveDirectory に参加

投稿者投稿内容
まるちねす
ぬし
会議室デビュー日: 2004/04/28
投稿数: 302
投稿日時: 2005-05-01 14:15
OS Fedora Core 3
samba samba-3.0.8-0.pre1.3
kerberos のヴァージョン・・・

  どうやって調べるのでしょう? 
ldd /usr/sbin/smbd の結果
  libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb7c76000)
  ですが、これじゃあわかりませんよね。

ところで、CUPSとsamba連携でプリントサーバーの構築にも着手したのですが、
下記のような現象がおきました。

共有プリンタのアイコンを右クリックし、「接続」をクリックすると
Windows Serverが提供している共有プリンタの場合、

HKCU\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts
にUNCが登録され、ユーザー毎にプリンタ設定を別々にすることが可能ですが、
sambaが提供するプリンタドライバ自動配布機能を持つプリンタサーバーに
接続し、プリンタアイコンを右クリックし接続すると、
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\LanMan Print Services\Servers
にプリンタに関する情報が追加され、HKCUにもUNCの情報が追加される。

ほかのユーザーでログオンしなおすと、別のユーザーが追加し、自分が追加していない
プリンタが最初から追加された状態になっている。
共有プリンタのアイコンをクライアントに追加するためにはクライアントの
管理者権限が必要で usersグループのユーザーはアクセス権がないといわれる。
%windir%\system32\spoolなどにはusersの書き込み権限がないが、windows serverの
プリントサーバーに接続した場合にはsystem権限で行われるせいか、ドライバは
ローカルマシンに追加される。sambaでは書き込み権限がないためか、ドライバの導入
に失敗する。(ローカルのAdministrators等の権限があれば大丈夫)

いわばwindows 9× 的に ドライバを追加したようになるのですが、これは
sambaをプリントサーバーにした場合の仕様なのでしょうか?

さらに検証中・・・・・・


まるちねす
ぬし
会議室デビュー日: 2004/04/28
投稿数: 302
投稿日時: 2005-05-01 14:43
やはり、ローカルプリンタ的に追加されることを確認しました。

レジストリ上でも、ローカルプリンタの情報がある
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\
に情報が追加され、

共有プリンタを追加した場合に情報が書き込まれる
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers
部分は変化がありませんでした。

win XP 2000 2003 では実際のドライバのファイルは
C:\WINDOWS\system32\spool\drivers\w32x86\3 にダウンロードされますが、
共有プリンタはユーザー別に構成されるのですが、sambaの提供するプリントサーバー
に接続し、プリンタを追加した場合、ドライバはダウンロードされ
C:\WINDOWS\system32\spool\drivers\w32x86\3 に書き込まれると同時に
ユーザー別ではなく、マシンレベルによるプリンタ構成になるようです。

これが仕様だとすると、sambaをプリントサーバーに使用するのは断念せざる
を得ない気がしてきたけど・・・・・
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-05-01 20:29
こんばんわ.
引用:

まるちねすさんの書き込み (2005-05-01 14:15) より:
OS Fedora Core 3
samba samba-3.0.8-0.pre1.3
kerberos のヴァージョン・・・

  どうやって調べるのでしょう? 
ldd /usr/sbin/smbd の結果
  libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb7c76000)
  ですが、これじゃあわかりませんよね。


失礼しました.
ker5 の rpm package でよいです.
RedHat Enterprise Linux 3 の package では kerberos の library が旧いらしく,
ダメなんだそうで...
引用:

まるちねすさんの書き込み (2005-05-01 14:43) より:

win XP 2000 2003 では実際のドライバのファイルは
C:WINDOWSsystem32spooldriversw32x863 にダウンロードされますが、
共有プリンタはユーザー別に構成されるのですが、sambaの提供するプリントサーバー
に接続し、プリンタを追加した場合、ドライバはダウンロードされ
C:WINDOWSsystem32spooldriversw32x863 に書き込まれると同時に
ユーザー別ではなく、マシンレベルによるプリンタ構成になるようです。

これが仕様だとすると、sambaをプリントサーバーに使用するのは断念せざる
を得ない気がしてきたけど・・・・・


case by case でしょうね.
client 単位で設定したほうが良い場合はむしろ好都合だと思います.
end-user に操作させることが不都合な場合もありますし.

でも,
引用:

ほかのユーザーでログオンしなおすと、別のユーザーが追加し、自分が追加していない
プリンタが最初から追加された状態になっている。
共有プリンタのアイコンをクライアントに追加するためにはクライアントの
管理者権限が必要で usersグループのユーザーはアクセス権がないといわれる。
%windir%\system32\spoolなどにはusersの書き込み権限がないが、windows serverの
プリントサーバーに接続した場合にはsystem権限で行われるせいか、ドライバは
ローカルマシンに追加される。sambaでは書き込み権限がないためか、ドライバの導入
に失敗する。(ローカルのAdministrators等の権限があれば大丈夫)


これは「共有として見えるけど導入できない」という意味でしょうか?
なんとなく一般 user だから device driver の導入が出来ないという意味かな?
ちょっと読み取りきれませんでした.
まるちねす
ぬし
会議室デビュー日: 2004/04/28
投稿数: 302
投稿日時: 2005-05-02 16:42
kerberosに関してはsambaといっしょにインストールされたのか、OS導入時に
インストールされたのか定かではありませんが、得にパッケージでインストール
した記憶がなく、rpm -qaでググってみても みつかりませんでした。 すみません。

プリンタ共有に関してですが、表現がわかりずらくもうしわけありません。

*****Windows Serverがホストしているプリントサーバーの場合*******

Windows Serverが公開している共有プリンタに
クライアントのコンソールに制限ユーザー(users)に属するあるユーザーがログオンし
プリントサーバーのUNC指定あるいはActive Directoryの検索などから
プリンタアイコンを右クリックし、「接続」 を選択すると
進捗度を示すダイアログなどは表示されないが、ドライバのダウンロードが行われ
ユーザーのプリンタフォルダにもアイコンが追加される。
しかし、クライアントにおけるドライバのインストール先である
%windir%\system32\spools\drives\W32X86
には制限ユーザーが書き込めるアクセス権はなく、
(事実制限ユーザーがsetup.exeや*.infファイルの参照などでローカルプリンタを
 追加しようとすると失敗する)
制限ユーザーが "共有"プリンタに接続し、ドライバをローカルにダウンロード
する作業はユーザーのプロセスではなく、Localsystem権限でおこなわれているのでは
ないかと思われる。

あるユーザーAが共有プリンタのアイコンを追加しても、ほかのユーザBのプリンタフォルダ
には現れず、(ドライバのファイル群自体はローカルに導入済みだけれど・・・・)
Bがそのプリンタを使うためには改めてプリントサーバー上のプリンタアイコンを
右クリック→接続 するなどして 自分のプリンタフォルダにアイコンを追加しなくては
いけない。 しかし、ドライバのファイル群はすでに導入済みのため、ダウンロード
のプロセスは省略される。

また、
setup.exe や *.inf でインストールしたローカルプリンタに関しては
すべてのユーザーにアイコンが表示される。(箱型の下にケーブルの絵がないアイコン)


*****Samba Serverがホストしているプリントサーバーの場合*******

プリンタアイコンの追加の方法は上記とおなじだが、制限ユーザーに属するユーザーC
がプリンタアイコンを自分のプリンタフォルダに追加しようとすると、
アクセス権がありません といわれ、失敗する

引用:
これは「共有として見えるけど導入できない」という意味でしょうか?
なんとなく一般 user だから device driver の導入が出来ないという意味かな?



まさにそのとおりで プリンタのアイコンも見えるし
\\Sambaserver\print$にも読み取りのアクセス権があるのに
クライアントの...\spool\drivers\W32X86 に書き込み権限がないために失敗している
みたいなのです。もしかしたらレジストリのHKLMへの書き込み権限も影響か・・・・?

しかし、そのユーザーをAdministratorsグループに追加すると、問題なく
ドライバのダウンロード アイコンの追加が行われる。
Cがログオフし、D(メンバーシップは問わない)がログオンすると、Cが追加したプリンタ
アイコンが見え、Dもそのプリンタをそのまま使える。
C,DあるいはあらたなユーザーEでもいいのだが、そのプリンタアイコンを削除すると
すべてのユーザーのプリンタフォルダからアイコンが削除される。
(ローカルプリンタ的 といったのはこのこと)
アイコンの形は"箱の下ににケーブルの絵"のある共有プリンタのものになるけれど、
先の投稿でも書きましたが、ローカルプリンタと同じレジストリキーの場所に情報が
書き込まれているっぽいです。

自分のところではWindows Serverとまったく同じ運用ができているという方がいるのか
どうかとても気になり話題にしてみました。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-05-10 13:14
こんにちわ.

今更ですが,RedHat Enterprise Linux 3 でうまくいきましたのでご報告いたします.
結論から書かせていただくと,Update4 の状態で何の問題もなくうまくいきました.
kerberos5 の話など,まだちゃんと確認してませんが,
少なくとも Windows Server 2003 で構築したての ActiveDirectory へ
samba/winbind で 利用できました.
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-05-10 17:21
前述通り,なんとか RHEL 3.0 で ActiveDirectory に参加できました.
認証や HomeDirectory の自動生成も普通に動いています.
Update4 に下だけなのですが,参考までにそれぞれの version を.
Samba 3.0.7-1.3E.1
krb5 1.2.7-31

ここで質問させていただきたいのですが,
Linux は winbind 経由の ActiveDirectory の user account で利用できるとして,
例えば ssh や imap などの認証が可能となります.
この場合,ActiveDirectory に参加している client は
普通に password の変更などを実施できますが,
ActiveDirectory に参加していない場合,
或いは Windows ですら無い場合,password の変更を実施する方法はあるのでしょうか?
また,E_Mail Server として利用する場合,
user の HomeDirectory を予め作っておく方法はありますでしょうか?

認証の基盤を ActiveDirectory にするのは目処が付きましたが,
実際に E_Mail Server として利用するにあたって,
HomeDirectory に MailDir を作りたいと考えています.
方法をご存じの方,思いつかれた方,
何卒ご教示いただきたく,よろしくお願いいたします.

スキルアップ/キャリアアップ(JOB@IT)