smbcacls — Windows NT 上のファイルやディレクトリの ACL の取得や設定
smbcacls
{//server/share} {filename} [-D|--delete acls] [-M|--modify acls] [-a|--add acls] [-S|--set acls] [-C|--chown name] [-G|--chgrp 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 は、 可読性のある文字列形式に変換される。
実際に処理は行わず、指定した引数の正当性を検証する。
コマンドラインオプションの要約を表示する。
level
は0から10までの整数値である。
既定値の値は、パラメータが設定されていなければ0である。
この値を大きくするほど、サーバの動作に関するより詳細な情報が ログファイルに記録される。レベル 0 では、致命的なエラーと重大な警告 のみが記録される。レベル 1 は日々の運用に適しており、少量の稼働状況 に関する情報を生成する。
1 より上のレベルは大量のログが生成されるので、問題解決の時にのみ 使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されて おり、莫大な量のログデータが生成される。そのほとんどは非常に謎めいた内容 となっている
このパラメータの指定は、smb.conf
ファイル中の、
log level パラメータの指定よりも優先する。
プログラムのバージョン番号を表示する。
サーバーが必要とする詳細な設定を含む設定ファイルを
指定する。このファイルには、サーバーが提供するサービスに関する記述や、
どの printcap ファイルを利用するかといった情報が含まれている。詳細は
smb.conf
を参照のこと。設定ファイルの名前の既定値は、コンパイル時
に決定される。
ログ/デバッグファイルのファイル名。拡張子として
".progname"
が追加される(例えば log.smbclient,
log.smbd,など)。ログファイルはクライアントによって削除されることはない。
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 によって行われた。