smbcacls {//server/share} {ファイル名} [-U ユーザ名] [-A acl] [-M acl] [-D acl] [-S acl] [-C 名前] [-G 名前] [-n] [-h]
このツールは Samba スイートの一部である。
smbcacls は、ファイル共有内のアクセスコントロールリスト(Access Control Lists, ACL) を操作する。
smbcacls コマンドでは以下のオプションが利用可能である。 ACLの形式は、ACL FORMAT セクションで記述する。
ACLリストで設定されたACLを追加する。 既存のACLは変更されない。
コマンドラインで指定されたACLの mask 値(パーミッション)を変更する。 ACLリストに指定されたACLが存在しない場合、 そのACL毎にエラーが出力される。
コマンドラインで指定されたACLを削除する。 ACLリストに指定されたACLが存在しない場合、 そのACL毎にエラーが出力される。
このコマンドは、 コマンドラインで指定されたACLのみをファイルに設定する。 その他の全てのACLは削除される。 呼び出しを成功させるためには、 指定するACLに最低限リビジョン、タイプ、 所有者とグループが含まれている必要がある。
指定されたサービスに接続する際に利用するユーザ名を指定する。 ユーザ名が "username" の形式で与えられた場合、 smb.conf で指定されたワークグルー プが用いられ、 ユーザにはパスワード入力を求めるプロンプトが表示される。 "username%password" もしくは "DOMAIN\username%password" の場合、 パスワードやワークグループ名は指定されたものが用いられる。
ファイルやディレクトリの所有者は、 -C オプションを利用することで指定した name に変更することが可能である。 名前は S-1-x-y-z 形式の sid で指定するか、 先頭の引数で指定したサーバが認識可能な name で指定する。
このコマンドは -M OWNER:name の短縮形になる。
ファイルやディレクトリのグループ所有者は、 -G オプションを利用することで指定した name に変更することが可能である。 名前は S-1-x-y-z 形式の sid で指定するか、 先頭の引数で指定したサーバが認識可能な name で指定する。
このコマンドは -M OWNER:name の短縮形になる。
このオプションは、全てのACL情報を数値 形式で表示させる。 デフォルトでは、SIDは名前に、ACEの type と mask は、 可読性のある文字列形式に変換される。
smbcacls コマンドの利用方法を表示する。
ACLの形式は、 コンマか改行記号で1つ以上のACLエントリを区切ったものである。 ACLエントリは以下のいずれかの形式をとる:
REVISION:<リビジョン番号> OWNER:<sid もしくは name> GROUP:<sid もしくは name> ACL:<sid もしくは name>:<type>/<flag>/<mask>
ACLのリビジョンは、セキュリティディスクリプタに対する 内部的なWindows NT ACLのリビジョンを表す。 特に指定されない場合のデフォルトは 1 である。 1 以外の値を指定した場合は、予期しない結果となることがある。
OWNER と GROUP はオブジェクトの所有者およびグループのsidを指定する。 SIDが CWS-1-x-y-z の形式で指定された場合は、そのまま用いられ、 それ以外の場合、 指定された名前はファイルやディレクトリが存在するサーバによって 解析される。
ACLはSIDに対して与えられるパーミッションを指定する。 このSIDも CWS-1-x-y-z の形式で指定するか、 名前で指定することが可能で、 後者の場合、 ファイルやディレクトリが存在するサーバによって解析される。 type, flag, mask の値は、SIDに対して与えられた アクセスの種類を指定する。
type は0 か 1 の値をとり、 これは SID に対する 許可および拒否に対応する。 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' パーミッションと等価である。