Name

net — Samba およびリモート CIFS サーバの管理ツール

Synopsis

net {<ads|rap|rpc>} [-h] [-w workgroup] [-W myworkgroup] [-U user] [-I ip-address] [-p port] [-n myname] [-s conffile] [-S server] [-l] [-P] [-d debuglevel] [-V] [--request-timeout seconds]

説明

このツールは、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 コマンドはプロトコルを自動判別しようとする。 すべてのコマンドがすべてのプロトコル上で使用できるわけではない。

オプション

-h|--help

コマンドラインオプションの要約を表示する。

-w target-workgroup

操作対象とするワークグループやドメインを指定する。 このオプションか、サーバの IP アドレスもしくは名前のいずれかは指定する必要がある。

-W workgroup

クライアントのワークグループやドメインを指定する。

-U user

アクセスを行なうユーザ名を指定する。

-I ip-address

操作対象のサーバの IP アドレスを指定する。 このオプションか、 操作対象のワークグループもしくは対象のサーバ名のいずれかを指定する必要がある。

-p port

操作対象のサーバに接続する際に用いるポート番号 (通常 139 か 445) を指定する。 既定値ではまず 445 を試行し、ついで 139 を試行する。

-n <primary NetBIOS name>

Samba 自身の NetBIOS 名を指定する。このオプションは、 smb.conf中の、 パラメータの設定に相当する。コマンドラインの指定は、 smb.conf 内の設定よりも優先される。

-s <configuration file>

サーバーが必要とする詳細な設定を含む設定ファイルを 指定する。このファイルには、サーバーが提供するサービスに関する記述や、 どの printcap ファイルを利用するかといった情報が含まれている。詳細は smb.conf を参照のこと。設定ファイルの名前の既定値は、コンパイル時 に決定される。

-S server

操作対象のサーバ名を指定する。 このオプションか、操作対象のワークグループもしくは IP アドレスのいずれかを指定する必要がある。

-l

情報を表示する際に、各項目の詳細情報を表示する。

-P

ローカルサーバのコンピュータアカウントを用いて別のサーバに対する問い合わせを行なう。

--request-timeout 30

クライアントの要求を30秒後にタイムアウトさせる。既定値は10秒。

-d|--debuglevel=level

level は0から10までの整数値である。 既定値の値は、パラメータが設定されていなければ0である。

この値を大きくするほど、サーバの動作に関するより詳細な情報が ログファイルに記録される。レベル 0 では、致命的なエラーと重大な警告 のみが記録される。レベル 1 は日々の運用に適しており、少量の稼働状況 に関する情報を生成する。

1 より上のレベルは大量のログが生成されるので、問題解決の時にのみ 使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されて おり、莫大な量のログデータが生成される。そのほとんどは非常に謎めいた内容 となっている

このパラメータの指定は、smb.confファイル中の、 パラメータの 指定よりも優先する。

コマンド

USERSHARE

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] - ユーザ定義の共有の一覧出力

USERSHARE ADD 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 の再起動を行なう必要はない。

CONF

バージョン 3.2.0から、Sambaサーバはレジストリにデータを格納することにより設定する事が出来るようになった。この設定データは新しい"net conf"コマンドで編集できる。

この設定データの配布は smb.confファイルから2つのレベルで有効にできる。 レジストリからの共有定義は[global]セクション中でregistry sharesyesにすることで有効にでき、 グローバルオプションは、複合設定の場合、[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 - 共有定義からインクルードを削除

DOM

EVENTLOG

Samba 3.4.3 から、net コマンドはネイティブな WIN32 イベントログファイル (通常 *.evt) の読み取り、ダンプ、インポート、エクスポートが可能となった。 evt ファイルはネイティブな Windows のイベントビューワツールによって使われる。

evtファイルのインポートとエクスポートは、smb.conf ファイル中でeventlog listが定義されている時のみ 行える。詳細は smb.conf(5) マニュアルページを参照のこと。

eventlog のサブコマンドは以下の通り:

net eventlog dump - イベントログファイル *.evt の内容を画面上にダンプする。
net eventlog import - イベントログファイル *.evt を、イベントログを保持する Samba 内部の tdb ファイルにインポートする。
net eventlog export - Samba内部の tdb 形式によるイベントログをイベントログファイル *.evt にエクスポートする。

バージョン 3.2.0 から、Sambaではクライアントもしくはサーバサイドから、リモートでマシンをドメインに参加・削除させるAPIがサポートされた。Windowsでは、リモートでマシンをメンバに参加させる機能はWindows 2000からサポートされていた。

Sambaでリモートでマシンをドメインに追加するには、操作するアカウントが「Domain Admins」グループのメンバか、「Administrators group」グループのメンバか、もしくは「SeMachineAccountPrivilege 権限が付与されている」のいずれかでなければならない。

クライアント側でリモートでマシンをドメインに参加させるnet domコマンドは以下の通り:

net dom join - リモートでマシンをドメインに参加させる
net dom unjoin -リモートでマシンをドメインから削除する
net dom renamecomputer - ドメインに参加しているリモートコンピュータの名前を変更する。

DOM JOIN 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」でドメインに参加させている。ドメインに参加した後にマシンは再起動する。

DOM RENAMECOMPUTER newname=NEWNAME account=ACCOUNT password=PASSWORD reboot

ドメインに参加しているコンピュータの名前を変更する。このコマンドは以下のサブパ ラメータをサポートする:

  • NEWNAME ドメイン中の新しいマシンの名前を定義する。

  • ACCOUNT ドメイン中でマシンの名前を変 更する時に使うドメインアカウントを定義する。このドメインアカウントはマシン名を 変更するために必要な権限を持つ必要がある。

  • PASSWORD ACCOUNTで定義されるドメインアカウントのパスワードを定義する。

  • REBOOT はオプションのパラメータで、ドメイン中で名前の変更が成功した後にマシンをリブートするように設定する。

ドメイン中で名前を変更したいリモートマシンに、標準のnetパラメータを使って接続と 認証を行う必要があることに注意。それらの追加のパラメータには -S コンピュータ名 と-U ユーザ名を含む。

例: net dom renamecomputer -S xp -U XP\\administrator%secret newname=XPNEW account=MYDOM\\administrator password=topsecret reboot.

この例では、XPという名前のコンピュータに、パスワードがsecretのローカルの Administratorとして接続し、ドメインに参加しているコンピュータの名前を、 MYDOMというドメインの管理者のアカウントとパスワード topsecretを使って、 XPNEWに変更している。変更が成功したら、コンピュータをリブートする。