net — Samba およびリモート CIFS サーバの管理ツール
net
{
このツールは、samba(7)システムの一部である。
Samba の net ユーティリティは Windows や DOS に存在する NET コマンドと同様の位置づけのものである。 先頭の引数は、コマンドを実行する際に使用するプロトコルを指定するために用いられる。 ADS は Active Directory が、RAP は従来の (Windows 9x / Windows NT 3.x) クライアントが、 RPC は Windows NT 4.0 および Windows 2000 によって使用されている。 この引数が省略された場合、 net コマンドはプロトコルを自動判別しようとする。 すべてのコマンドがすべてのプロトコル上で使用できるわけではない。
コマンドラインオプションの要約を表示する。
操作対象とするワークグループやドメインを指定する。 このオプションか、サーバの IP アドレスもしくは名前のいずれかは指定する必要がある。
クライアントのワークグループやドメインを指定する。
アクセスを行なうユーザ名を指定する。
操作対象のサーバの IP アドレスを指定する。 このオプションか、 操作対象のワークグループもしくは対象のサーバ名のいずれかを指定する必要がある。
操作対象のサーバに接続する際に用いるポート番号 (通常 139 か 445) を指定する。 既定値ではまず 445 を試行し、ついで 139 を試行する。
Samba 自身の NetBIOS 名を指定する。このオプションは、smb.conf
中の、 パラメータの設定に相当する。コマンドラインの指定は、smb.conf
内の設定よりも優先される。
サーバーが必要とする詳細な設定を含む設定ファイルを指定する。このファイルには、サーバーが提供するサービスに関する記述や、どの printcap ファイルを利用するかといった情報が含まれている。詳細はsmb.conf
を参照のこと。設定ファイルの名前の既定値は、コンパイル時に決定される。
操作対象のサーバ名を指定する。 このオプションか、操作対象のワークグループもしくは IP アドレスのいずれかを指定する必要がある。
情報を表示する際に、各項目の詳細情報を表示する。
ローカルサーバのコンピュータアカウントを用いて別のサーバに対する問い合わせを行なう。
クライアントの要求を30秒後にタイムアウトさせる。既定値は10秒。
level
は0から10までの整数値である。既定値の値は、パラメータが設定されていなければ0である。
この値を大きくするほど、サーバの動作に関するより詳細な情報がログファイルに記録される。レベル 0 では、致命的なエラーと重大な警告のみが記録される。レベル 1 は日々の運用に適しており、少量の稼働状況に関する情報を生成する。
1 より上のレベルは大量のログが生成されるので、問題解決の時にのみ使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されており、莫大な量のログデータが生成される。そのほとんどは非常に謎めいた内容となっている
このコマンドにより、Samba のコンピュータアカウントのパスワードを外部のアプリケーションから Active Directory に格納済のものに設定させることが可能となる。何が行なわれるかを理解しない限り、このコマンドを用いないこと。このコマンドを用いるには、強制フラグ (-f) を併せて設定する必要がある。コマンドプロンプトのインタフェースは存在しない。情報は全て、コマンドラインなどを経由して標準入力経由で引き渡され、コンピュータアカウントのパスワードとして格納される。警告無しに以前のコンピュータアカウントのパスワードが上書きされてしまうため、このコマンドは注意して用いること。
ドメインに参加する。サーバ上にコンピュータアカウントがすでに存在しており、[TYPE] が MEMBER の場合、マシンの参加は自動的に行なわれる(コンピュータアカウントがサーバマネージャで作成済の場合)。それ以外の場合は、パスワードの入力が求められ、新しいコンピュータアカウントが作成される。
[TYPE] は、ドメインに参加するコンピュータのタイプを指定するもので、PDC, BDC, MEMBER のいずれかの値をとる。
[UPN] (ADSのみ)ドメインに参加する時のプリンシパル名属性を設定する。既定値の形式はhost/netbiosname@REALMである。
[OU] (ADSのみ)指定したOU中にあらかじめコンピュータアカウントを作成する。OU文字列はRDNなしで、'/'をデリミタとして、初めから最後まで読まれる。シェルとLDAPの両方で'\'がエスケープとして使われるため、その文字その物を渡すためには、二重に書くか、4重に書く必要があり、デリミタとしては扱われない。
ドメインに参加する。従来の方式によるドメイン参加を行なう場合は、OLDJOIN オプションを使用すること。参加を行なうには、事前にサーバマネージャでコンピュータアカウントを作成しておくことが必要である。
user
[password
]指定したユーザがリモートサーバにログオン可能かどうかを確認する。コマンドラインでパスワードが指定されなかった場合は、入力を求められる。
現在まだ未実装
Samba は「gencache」という汎用のキャッシュインタフェースを用いている。これは 'NET CACHE' コマンドにより制御可能である。
タイムアウトに関するパラメータはすべて、以下のサフィックスをサポートしている:
s - 秒 |
m - 分 |
h - 時 |
d - 日 |
w - 週 |
Windows のグループ ID と UNIX のグループ ID との対応づけを行なう。共通のオプションを以下に示す:
unixgroup - UNIX のグループ名
ntgroup - Windows NT のグループ名 (SID が解決可能である必要がある。)
rid - 符号なし 32 ビット整数
sid - 「S-1-...」形式の完全な SID
type - グループのタイプ。「domain」、「local」もしくは「builtin」のいずれか。
comment - 任意の文字列によるグループの説明
新しいグループマップのエントリを追加する:
net groupmap add {rid=int|sid=string} unixgroup=string \ [type={domain|local}] [ntgroup=string] [comment=string]
グループマップのエントリを削除する。複数のエントリがマッチした場合、最初にマッチしたエントリが削除される。
net groupmap delete {ntgroup=string|sid=SID}
リモートサーバをシャットダウンする。
シャットダウン後に再起動する。
全てのアプリケーションを強制的に終了させる。
システムをシャットダウンさせる前のタイムアウト時間を指定する。システムに対話的ログオンしているユーザは、この期間にシャットダウンをキャンセルすることができる。
シャットダウンの通知を行なう際に、指定したメッセージを画面上に表示する。
Active Directory 環境において、ローカルマシンのコンピュータアカウントの状態を表示する。表示内容は、デバッグ情報のようなものであり、開発者向けのものである。一般のユーザは NET ADS TESTJOIN
を使うべきである。
EXPRESSION
ATTRIBUTES...
Active Directory のサーバに対して低レベルな LDAP 検索を行ない、その結果を表示する。EXPRESSION は標準の LDAP 検索表記で行ない、 ATTRIBUTES は結果中に表示する LDAP 属性型の一覧である。
設定例: net ads search '(objectCategory=group)' sAMAccountName
DN
(attributes)
Active Directory のサーバに対して低レベルな LDAP 検索を行ない、その結果を表示する。DN は標準の LDAP DN であり、 attributes は結果中に表示する LDAP属性型の一覧である。
設定例: net ads dn 'CN=administrator,CN=Users,DC=my,DC=domain' SAMAccountName
BUILTINグループを(再)作成する。このコマンドでは通常使われるBUILTINグループのみ作成出来る。以下は、現在設定されるグループ名である: Administrators,Users, Guests, Power Users, Account Operators, Server Operators, PrintOperators, Backup Operators, Replicator, RAS Servers, Pre-Windows 2000compatible Access.このコマンドはidmapの割り当てが適切に構成されているWinbinddが動いている事を要求する。グループのgidはwinbinddのレンジの範囲外に割り当てられる。
ローカルグループを作成する(別名である)。このコマンドはidmapの割り当てが適切に構成されているWinbinddが動いている事を要求する。グループのgidはwinbinddのレンジの範囲外に割り当てられる。
もしも、ldapsam:editposixが設定されて、winbinddが動作中の時有効である。ldapのDIT上の、基本的なアカウント(Administrator)とグループ(Domain Users, Domain Admins, Domain Guests)とともに、ldap DITを 適切にpopulateする。
指定したドメインのために、secretを格納し、おおむね、idmap_ldapをバックエンドとして使うドメインのために使われる。このケースの場合、secretはldapサーバに対してバインドするユーザDNのパスワードとして使われる。
Samba 3.0.23 より、root 以外のユーザが「net usershare」コマンドを用いてユーザ定義共有を公開する機能が追加された。
これを行なうには、まず smb.conf の [global] セクションに以下を追加する必要がある:usershare path = /usr/local/samba/lib/usersharesついで /usr/local/samba/lib/usershares ディレクトリを作成し、所有者を root に、所有グループをユーザ定義共有の作成を許可したい UNIX グループ、例えば「serverops」とする。/usr/local/samba/lib/usershares のパーミッションは 01770 に設定する。(所有者と所有グループには完全なアクセス権があり、その他にはアクセス権が全くない。さらにスティッキービットにより、ディレクトリ中のファイルについて、名前の変更や削除が行なえるのはファイルの所有者のみとなる)最後に、smb.conf の [global] セクションに以下のような行を追加することで、作成可能なユーザ定義共有の最大数を smbd に設定する:usershare max shares = 100これにより、最大 100 のユーザ定義共有を設定可能となる。これにより、「serverops」という UNIX グループのメンバは必要に応じて以下のコマンドを実行することで、ユーザ定義共有を作成することが可能となる。
ユーザ定義共有に関するコマンドを以下に示す:
net usershare add sharename path [comment] [acl] [guest_ok=[y|n]] - ユーザ定義の共有の追加または変更 |
net usershare delete sharename - ユーザ定義の共有の削除 |
net usershare info [-l|--long] [wildcard sharename] - ユーザ定義の共有の情報の出力 |
net usershare list [-l|--long] [wildcard sharename] - ユーザ定義の共有の一覧出力 |
sharename
path
[comment]
[acl]
[guest_ok=[y|n]]
sharename というユーザ定義共有の新規作成もしくは修正(上書き)を行なう。
「path」には、公開するディレクトリのシステム上での絶対パス名を指定する。公開可能なディレクトリには幾つかの制約がある。グローバルな smb.conf のパラメータである「usershare owner only」、「usershare prefix allow list」、「usershare prefix deny list」を参照のこと。
オプションの「comment」パラメータは、クライアントから共有を参照した際に表示されるコメント文字列を指定する。
オプションの「acl」フィールドは、共有単位でどのユーザに読み取りや書き込みのアクセス許可を与えるかを指定する。ゲストアクセスは、 smb.conf の「usershare allow guests」パラメータを有効にしない限り行なえない。ユーザ定義共有の ACL の指定は「user:permission」という形式で行なわれる。user はシステムで有効なユーザ名であり、permission は「F」、「R」、「D」のいずれかである。「F」は「フルコントロール」、すなわち読み取りと書き込み権を示す。「D」は「拒否」を示し、ユーザの共有へのアクセスを許可しない。「R」は「読み取り専用」、すなわちこの共有への読み取りアクセスのみの許可を示す (ファイルへの書き込みやファイルやディレクトリの新規作成は行なえない)。
「acl」オプションが指定されなかった場合のデフォルトは「Everyone:R」である。これは、認証された全てのユーザが読み取り専用のアクセス権を有することを意味する。
オプションの「guest_ok」パラメータは、smb.conf 中の同名のパラメータと同じ意味を持ち、該当のユーザ定義共有に対するゲストアクセスを許可する。このパラメータは、 smb.conf 中でグローバルパラメータの「usershare allow guests」が有効になっている時のみ設定できる。
既存のユーザ定義共有を修正するコマンドは個別に用意されておらず、「net usershare add [sharename]」コマンドを用いて、sharename 共有を新規のオプションを指定して上書き変更することになる。Samba の smbd デーモンは、接続のあったタイミングでユーザ定義共有の変更を検知するのため、変更は即座に反映される。ユーザ定義共有の追加、削除、変更により、smbd の再起動を行なう必要はない。sharename
指定されたユーザ定義共有を削除する。Samba smbd デーモンは即座にこの変更を検知するが、削除された共有にその時点で接続中のユーザが切断されることはない。
[-l|--long]
[wildcard sharename]
指定されたパターンに合致するユーザによって所有されている、もしくは全てのユーザ定義共有の情報が表示される。
net usershare info は、実行したユーザが作成したユーザ定義共有の詳細情報を表示するが、ワイルドカード情報 (「*」は1文字以上の文字にマッチし、「?」は1文字のみにマッチする) が指定されている場合は、それにマッチした共有のみを表示する。「-l」もしくは「--long」オプションが指定されていた場合、他のユーザが作成したユーザ定義共有の情報も表示する。
各共有についての情報は以下のような形式で設定される:[foobar]path=/home/jeremycomment=testmeusershare_acl=Everyone:Fguest_ok=nこれは、「net usershare add」コマンドで現状設定可能なユーザ定義共有の設定一覧である。
バージョン 3.2.0から、Sambaサーバはレジストリにデータを格納することにより設定する事が出来るようになった。この設定データは新しい"net conf"コマンドで編集できる。
この設定データの配布はsmb.confファイルから2つのレベルで有効にできる。レジストリからの共有定義は[global]セクション中でregistry shares
を“yes”にすることで有効にでき、グローバルオプションは、複合設定の場合、[global]セクション中でinclude = registryを設定することで、レジストリのみの設定の場合は、[global]セクション中で、config backend = registryを設定することで有効になる。詳細はsmb.conf(5)マニュアルページを参照のこと。
conf コマンドは以下のとおり:
net conf list - smb.conf風の形式で完全な設定をダンプ |
net conf import - smb.conf形式で設定をインポート |
net conf listshares - レジストリ共有のリスト |
net conf drop - レジストリから全部の設定を削除 |
net conf showshare - レジストリ共有の定義を表示 |
net conf addshare - 新しいレジストリ共有を作成 |
net conf delshare - レジストリ共有を削除 |
net conf setparm - パラメータを格納 |
net conf getparm - パラメータの値を検索 |
net conf delparm - パラメータを削除 |
net conf getincludes - 共有定義のインクルードを表示 |
net conf setincludes - 共有のためのインクルードを設定 |
net conf delincludes - 共有定義からインクルードを削除 |
[--test|-T]
filename
[section]
このコマンドは、smb.conf形式で、ファイルから設定情報をインポートする。もしも、レジストリ中に存在するセクションが入力ファイル中に存在するならば、その内容は置き換えられる。入力ファイル中に対となるものがない、レジストリ中のセクションは何ら影響はない。もしも、それらを削除したいならば、"net conf drop" か "net conf delshare"を使うこと。任意ではあるが、その、指定したセクションに対するimportコマンドの影響を避けるためにあるセクションを指定してもよい。テストモードはパラメータ"-T"をコマンド行に指定することで有効に出来る。テストモードでは、レジストリに対する変更は行われず、設定の結果が代わりに標準出力に出力される。
sharename
指定したセクションまたは共有の定義を表示する。レジストリから、global設定オプションを検索するために、"global"を共有名として指定するのは有効である。
sharename
path
[writeable={y|N}
[guest_ok={y|N}
[comment
]]] レジストリ中に新しい共有定義を作成する。共有名とパス両方が必要である。共有名は"global"としてはいけない 。そのほか、とても一般的なオプション、"writeable", "guest ok" と "comment"も指定出来る。同じ結果は、一連の"net conf setparm"コマンドによって得てもよい。
section
(globalまたは共有の)提供されたセクションの、includeのリストを得る。
データベースとincludeディレクティブの種類により、includeは特別の扱いが必要である。パラメータ名が値の名前として、パラメータがレジストリに格納されるので、共有ごとにパラメータのインスタンスは1つだけである。また、テキストファイル中の指定したような順番は認められない。すべての真のパラメータに対して、これは完全に問題がないが、includeディレクティブはsmb.confテキストファイル中では、むしろメタパラメータであるので、他のパラメータとの間での場所の指定はとても重要である。これは単純なsmbconfデータモデルによっては実現できないので、共有後とに1つの順番のリストがあり、このリストはすべての共有パラメータの後に評価される。
さらに、現在、レジストリ構成からファイルのみインクルード出来る。将来は、他のレジストリキーから設定データをインクルード出来る予定である。
バージョン 3.2.0 から、Sambaではクライアントもしくはサーバサイドから、リモートでマシンをドメインに参加・削除させるAPIがサポートされた。Windowsでは、リモートでマシンをメンバに参加させる機能はWindows 2000からサポートされていた。
Sambaでリモートでマシンをドメインに追加するには、操作するアカウントが「Domain Admins」グループのメンバか、「Administrators group」グループのメンバか、もしくは「SeMachineAccountPrivilege 権限が付与されている」のいずれかでなければならない。
クライアント側でリモートでマシンをドメインに参加させるnet domコマンドは以下の通り:
net dom join - リモートでマシンをドメインに参加させる |
net dom unjoin -リモートでマシンをドメインから削除する |
domain=DOMAIN
ou=OU
account=ACCOUNT
password=PASSWORD
reboot
リモートでマシンをドメインに参加させる。このコマンドがサポートするパラメータは以下のとおり:
DOMAIN
には、NetBIOS名(ショートドメイン名とも言う)又はActiveDirectoryのDNSドメイン名を指定する。Windows の場合、使用するドメインコントローラを選択できる。その場合「\」で区切ってドメインコントローラの名前を指定する(例:MYDOM\MYDC)。DOMAIN
に空白は指定できない。
OU
には、既定値ではないLDAPコンテナにマシンアカウントを作成する場合、RFC 1779のLDAP DN(例:ou=mymachines,cn=Users,dc=example,dc=com)で指定する。この、任意のパラメータは、リモートマシンをActiveDirectoryドメインに参加する場合のみサポートされる。
ACCOUNT
には、参加させるマシンのドメインアカウントを指定する。このドメインアカウントには、マシンを追加できる適切な権限が付与されている必要がある。
PASSWORD
には、ACCOUNT
で指定されたドメインアカウントのパスワードを指定する。
REBOOT
は任意のオプションで、マシンが正しくドメインに参加できたときに再起動させたいときに指定する。
ドメインに参加させたいマシンに接続して認証を行う場合、-S コンピュータ や-U ユーザ のように net で標準的に使用されるパラメータを別途指定する必要があることに注意。
例: net dom join -S xp -U XP\\administrator%secret domain=MYDOM account=MYDOM\\administrator password=topsecret reboot.
この例では、XPというマシンにローカル管理者としてパスワード「secret」で接続し、ドメイン「MYDOM」にドメイン管理者としてパスワード「topsecret」でドメインに参加させている。ドメインに参加した後にマシンは再起動する。
account=ACCOUNT
password=PASSWORD
reboot
ドメインからマシンを削除する。このコマンドでは次のパラメータを指定する。
ACCOUNT
には、削除するマシンのドメインアカウント名を指定する。このドメインアカウントには、マシンを削除できる権限が付与されている必要がある。
PASSWORD
には、ACCOUNT
で指定したドメインアカウントのパスワードを指定する。
REBOOT
は任意のオプションで、マシンがドメインから削除されたときに再起動させたいときに指定する。
ドメインから削除したいマシンに接続して認証を行う場合、-S コンピュータ や-U ユーザ のようにnetで標準的に使用されるパラメータを別途指定する必要があることに注意。
例: net dom unjoin -S xp -U XP\\administrator%secret account=MYDOM\\administrator password=topsecret reboot.
この例では、XPというマシンにローカル管理者としてパスワード「secret」で接続し、ドメイン「MYDOM」にドメイン管理者としてパスワード「topsecret」でドメインから削除している。ドメインから削除された後にマシンは再起動する。