# smbcacls

## Name

smbcacls -- NT のファイルやディレクトリのACLの取得や設定

## Synopsis

smbcacls {//server/share} {ファイル名} [-U ユーザ名] [-A acl] [-M acl] [-D acl] [-S acl] [-C 名前] [-G 名前] [-n] [-h]

## DESCRIPTION

このツールは Samba スイートの一部である。

smbcacls は、ファイル共有内のアクセスコントロールリスト(Access Control Lists, ACL) を操作する。

## OPTIONS

smbcacls コマンドでは以下のオプションが利用可能である。 ACLの形式は、ACL FORMAT セクションで記述する。

-A acl

  ACLリストで設定されたACLを追加する。 既存のACLは変更されない。

-M acl

  コマンドラインで指定されたACLの mask 値(パーミッション)を変更する。 ACLリストに指定されたACLが存在しない場合、 そのACL毎にエラーが出力される。

-D acl

  コマンドラインで指定されたACLを削除する。 ACLリストに指定されたACLが存在しない場合、 そのACL毎にエラーが出力される。

-S acl

  このコマンドは、 コマンドラインで指定されたACLのみをファイルに設定する。 その他の全てのACLは削除される。 呼び出しを成功させるためには、 指定するACLに最低限リビジョン、タイプ、 所有者とグループが含まれている必要がある。

-U ユーザ名

  指定されたサービスに接続する際に利用するユーザ名を指定する。 ユーザ名が "username" の形式で与えられた場合、 `smb.conf` で指定されたワークグルー プが用いられ、 ユーザにはパスワード入力を求めるプロンプトが表示される。 "username%password" もしくは "DOMAIN\username%password" の場合、 パスワードやワークグループ名は指定されたものが用いられる。

-C name

  ファイルやディレクトリの所有者は、 `-C` オプションを利用することで指定した name に変更することが可能である。 名前は S-1-x-y-z 形式の sid で指定するか、 先頭の引数で指定したサーバが認識可能な name で指定する。

  このコマンドは -M OWNER:name の短縮形になる。

-G name

  ファイルやディレクトリのグループ所有者は、 `-G` オプションを利用することで指定した name に変更することが可能である。 名前は S-1-x-y-z 形式の sid で指定するか、 先頭の引数で指定したサーバが認識可能な name で指定する。

  このコマンドは -M OWNER:name の短縮形になる。

-n

  このオプションは、全てのACL情報を数値 形式で表示させる。 デフォルトでは、SIDは名前に、ACEの type と mask は、 可読性のある文字列形式に変換される。

-h

  smbcacls コマンドの利用方法を表示する。

## ACL FORMAT

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' パーミッションと等価である。

## 戻り値

The smbcacls コマンドは、 操作が成功したか、その他の結果になったかに応じた戻り値を設定する。 戻り値は、以下の値のいずれかになるであろう。

操作が成功した場合、smbcacls は戻り値として 0 が返却される。 もし smbcacls が指定したサーバに接続できなかったか、 ACLを取得または設定する際にエラーが発生した場合は、 戻り値として 1 が返却される。 コマンドライン引数の解析に失敗した場合は、 戻り値として 2 が返却される。

## VERSION

このマニュアルページは Samba バージョン 2.2 スイート用である。

## AUTHOR

オリジナルの Samba ソフトウェアと関連するユーティリティは、 Andrew Tridgell によって作成された。現在 Samba は Samba Team によって、 Linux カーネルの開発と同様の オープンソースプロジェクトとして開発が行なわれている。

smbcacls は Andrew Tridgell と Tim Potter によって書かれた。

Samba 2.2 における DocBook 形式への変換は、 Gerald Carter によって行なわれた。