smbcacls — Windows NT 上のファイルやディレクトリの ACL の取得や設定
smbcacls
{//server/share} {filename} [-D acls] [-M acls] [-a acls] [-S acls] [-C name] [-G name] [--numeric] [-t] [-U username] [-h] [-d]
smbcacls
コマンドでは以下のオプションが
利用可能である。ACL の形式は、ACL FORMAT セクションで記述する。
ACL リストで指定された ACL を追加する。既存の ACL は変更されない。
コマンドラインで指定された ACL の mask 値 (パーミッション) を変更する。ACL リストに指定された ACL が存在しない場合、その ACL 毎にエラーが出力される。
コマンドラインで指定された ACL を削除する。ACL ACL リストに指定された ACL が存在しない場合、その ACL 毎にエラーが 出力される。
このコマンドは、コマンドラインで指定された ACL のみをファイルに設定する。その他の全ての ACL は削除される。 呼び出しを成功させるためには、指定する ACL に最低限リビジョン、タイプ、 所有者とグループが含まれている必要がある。
指定されたサービスに接続する際に利用するユーザ名を 指定する。ユーザ名が "username" の形式で与えられた場合、smb.conf(5) で指定されたワークグループが用いられ、ユーザには パスワード入力を求めるプロンプトが表示される。"username%password" もしくは "DOMAIN\username%password" を指定した場合、パスワードや ワークグループ名は指定されたものが用いられる。
-C
オプションを利用することで、
ファイルやディレクトリの所有者を name で指定したアカウントに変更することが可能である。
name は S-1-x-y-z 形式の sid で指定するか、
最初の引数で指定したサーバが認識可能な名前で指定する。
このコマンドは -M OWNER:name の短縮形になる。
ファイルやディレクトリのグループ所有者は、
-G
オプションを利用することで指定した name
に変更することが可能である。名前は S-1-x-y-z 形式の sid で指定するか、
先頭の引数で指定したサーバが認識可能な name で指定する。
このコマンドは -M OWNER:name の短縮形になる。
このオプションは、全ての ACL 情報を数値形式で 表示させる。デフォルトでは、SID は名前に、ACE の type と mask は、 可読性のある文字列形式に変換される。
実際に処理は行わず、指定した引数の正当性を検証する。
Print a summary of command line options.
level
is an integer
from 0 to 10. The default value if this parameter is
not specified is 0.
The higher this value, the more detail will be logged to the log files about the activities of the server. At level 0, only critical errors and serious warnings will be logged. Level 1 is a reasonable level for day-to-day running - it generates a small amount of information about operations carried out.
Levels above 1 will generate considerable amounts of log data, and should only be used when investigating a problem. Levels above 3 are designed for use only by developers and generate HUGE amounts of log data, most of which is extremely cryptic.
Note that specifying this parameter here will
override the parameter
in the smb.conf
file.
Prints the program version number.
The file specified contains the
configuration details required by the server. The
information in this file includes server-specific
information such as what printcap file to use, as well
as descriptions of all the services that the server is
to provide. See smb.conf
for more information.
The default configuration file name is determined at
compile time.
Base directory name for log/debug files. The extension
".progname"
will be appended (e.g. log.smbclient,
log.smbd, etc...). The log file is never removed by the client.
ACL の形式は、コンマか改行記号で 1 つ以上の ACL エントリを区切ったもの である。ACL エントリは以下のいずれかの形式をとる:
REVISION:<revision number> OWNER:<sid or name> GROUP:<sid or name> ACL:<sid or name>:<type>/<flags>/<mask>
REVISION は、セキュリティディスクリプタに対する内部的な Windows NT ACL のリビジョンを表す。特に指定されない場合のデフォルトは 1 である。 1 以外の値を指定した場合は、挙動がおかしくなることがある。
OWNER と GROUP はオブジェクトの所有者およびグループの sid を指定する。 SID が S-1-x-y-z の形式で指定された場合はそのまま用いられ、 それ以外の場合、指定された名前はファイルやディレクトリが存在するサーバに よって解析される。
ACL は SID に対して与えられるパーミッションを指定する。この SID も S-1-x-y-z の形式で指定するか、名前で指定することが可能で、後者の場合、 ファイルやディレクトリが存在するサーバによって解析される。 type, flag, mask の値は、SIDに対して与えられたアクセスの種類を指定する。
typeは SID に対する許可および拒否に対応する(訳注: 実際は type は ALLOWED か DENIED を指定し、それぞれ SID に対するアクセス許可および拒否に対応する、が正しい(fumiya))。 flag の値はファイルの ACL の場合通常 0 であり、ディレクトリの ACL の場合は通常 9 か 2 である。 共通的な flags は以下の通りである:
#define SEC_ACE_FLAG_OBJECT_INHERIT 0x1
#define SEC_ACE_FLAG_CONTAINER_INHERIT 0x2
#define SEC_ACE_FLAG_NO_PROPAGATE_INHERIT 0x4
#define SEC_ACE_FLAG_INHERIT_ONLY 0x8
現在のところ flag の値は 10 進数もしくは 16 進数でのみ指定することができる。
mask は SID に対して与えられたアクセス権を表現する値である。それは 10 進数もしくは 16 進数で設定するか、NT のファイルパーミッションと同じ名称である 以下の文字列のうちの一つを利用して設定することができる。
R - 読みとりの許可
W - 書き込みの許可
X - オブジェクトの実行
D - オブジェクトの削除
P - パーミッションの変更
O - 所有権の取得
以下の複合パーミッションも指定可能である:
READ - 'RX' パーミッションと等価である。
CHANGE - 'RXWD' パーミッションと等価である。
FULL - 'RWXDPO' パーミッションと等価である。
smbcacls
コマンドは、操作が成功したか、
その他の結果になったかに応じた戻り値を設定する。
戻り値は、以下の値のいずれかになる。
操作が成功した場合、smbcacls
は戻り値として 0
を返す。もし smbcacls
が指定したサーバに接続できなかったか、
ACL を取得または設定する際にエラーが発生した場合、戻り値として 1 が返される。
コマンドライン引数の解析に失敗した場合は、戻り値として 2 が返される。
オリジナルの Samba ソフトウェアと関連するユーティリティは、Andrew Tridgell によって作成された。現在 Samba は Samba Team によって、Linux カーネルの開発と同様のオープンソースプロジェクトとして開発が行なわれている。
smbcacls
は Andrew Tridgell と Tim Potter
によって書かれた。
Samba 2.2 における DocBook 形式への変換は、Gerald Carter によって行なわれた。Samba 3.0 における DocBook XML 4.2 形式への変換は、 Alexander Bokovoy によって行われた。