SAMBA開発者ガイド

Edited by

Jelmer R. Vernooij

The Samba Team

Abstract

Last Update : Fri Oct 10 00:59:58 CEST 2003

この資料は、Sambaを開発する人か、そういうことに興味がある人にとって便利かもしれない 資料を集めたものである。これは、単に、sambaのいろいろな部分の内部構造や、SMBプロトコルに ついて記述された文書の集合でしかない。これは常時発展途上である。この文書の最も最新な ものは、http://devel.samba.org/にある。

この文書はGPL(GNU General Public License)のバージョン2でライセンスされている。 ライセンス文書はSambaソースディストリビューション内に含まれている。オンラインでは http://www.fsf.org/licenses/gpl.txt で参照できる。

Warning

この文書は未完でメンテナンスされていない。単に開発に関連する注意事項を集めた ものである。

Table of Contents

Attribution
I. プロトコル
1. UNIX領域におけるNetBIOS
概要
ユーザー名
ファイルの所有権
パスワード
ファイルのロック
拒否モード
Trapdoor UID
ポート番号
プロトコルの複雑さ
2. NTドメインにおけるRPC
概要
ソース
クレジット
注意事項と構造
注意事項
列挙
構造体
名前付きパイプトランザクション上でのMSRPC
MSRPC パイプ
ヘッダー
Tail
RPC Bind / Bind Ack
NTLSA トランザクション名前付きパイプ
LSAオープンポリシー
LSA Query Info ポリシー
LSA がエミュレートする信頼するドメイン
LSA Open Secret
LSA Close
LSA Lookup SIDS
LSA ルックアップ名
NETLOGON rpc トランザクション名前付きパイプ
LSA Request Challenge
LSA Authenticate 2
LSA Server Password Set
LSA SAM Logon
LSA SAM Logoff
\\MAILSLOT\NET\NTLOGON
PDCのためのクエリ
SAM Logon
SRVSVC トランザクション名前付きパイプ
Net Share Enum
Net Server Get Info
NTドメイン認証における暗号化の側面
定義
プロトコル
コメント
SIDとRID
よく知られているSID
よく知られているRID
II. Sambaの基本
3. Sambaアーキテクチャ
概要
マルチスレッドとSamba
smbdのスレッド化
nmbdのスレッド化
nbmdのデザイン
4. Sambaのデバッグシステム
新しい出力形式
DEBUG() マクロ
DEBUGADD()マクロ
DEBUGLVL()マクロ
新しい関数
dbgtext()
dbghdr()
format_debug_text()
5. Sambaの内部
文字の取り扱い
新しい機能
byteorder.h中のマクロ
CVAL(buf,pos)
PVAL(buf,pos)
SCVAL(buf,pos,val)
SVAL(buf,pos)
IVAL(buf,pos)
SVALS(buf,pos)
IVALS(buf,pos)
SSVAL(buf,pos,val)
SIVAL(buf,pos,val)
SSVALS(buf,pos,val)
SIVALS(buf,pos,val)
RSVAL(buf,pos)
RIVAL(buf,pos)
RSSVAL(buf,pos,val)
RSIVAL(buf,pos,val)
LAN Manager用Samba API
パラメーター
戻り値
コード文字テーブル
6. コーディングに対する助言
7. コードの寄贈
8. モジュール
利点
モジュールのロード
静的モジュール
動的モジュール
モジュールを書く
configure.inにおける静的/動的の選択
III. Sambaサブシステム
9. RPC着脱可能なモジュール
はじめに
概要
10. VFS モジュール
Samba (Posix) VFSレイヤ
汎用インタフェース
有効なVFS操作レイヤ
Samba VFSサブシステムとモジュールの間での相互作用
初期化と登録
どのようにモジュールは接続単位でデータを処理するか
新しいVFSインタフェースへのアップグレード
2.2.*から3.0αモジュールへのアップグレード
いくつかの注意事項
TRANSPARENT関数の実装
OPAQUE関数の実装
11. smb.confファイル
Lexical Analysis
空白の取り扱い
継続行の取り扱い
偶然による行の結合
文法
params.cについて
12. Samba WINS の内部構造
WINS のフェイルオーバー
13. LanMan と NT Password の暗号化
初めに
どのようにして動作するか?
smbpasswd ファイル
IV. デバッグ方法とトレース
14. Sambaシステムコールのトレース
15. Samba印刷機能の詳細
概要
種々のバックエンドに対する印刷インタフェース
印刷キューTDB
ChangeIDとプリンター情報のキャッシング
Windows NT/2K におけるPrinter Change Notify
V. 付録
16. パッケージングについての注意
バージョン番号の付与方法
モジュール