8.5.3 chmodコマンド(パーミッションを数値で設定する)
形式
chmod [-fhR] モード パス名
このコマンドはサンプルスクリプトファイルscript_chmod2を基に作成します。作成手順については「(2) スクリプト形式のUNIX互換コマンドを使うための準備【Windows限定】」を参照してください。
機能
既存のACL(Access Control List)を削除して,モードの数値の指定に従ったACLを再設定します。
このコマンドは,次のような設定をしたい場合などにアクセス権を数値で設定します。
「所有者」以外のユーザーの「書き込み」「読み取り」を抑止したい場合
すべてのユーザーの「書き込み」または「読み取り」を許可したい場合
「所有者」を含むすべてのユーザーの「書き込み」を抑止したい場合
引数
- -f
指定を無視します。
- -h
指定を無視します。
- -R
指定を無視します。
- モード
モードの指定値と,それによって設定される各ACE(Access Control Entry)のアクセス許可を次に示します。これ以外のモードが指定された場合,標準エラー出力へ「chmod: invalid file mode: モード」を出力し,アクセス許可は変更されません。
モードの指定値
設定されるアクセス許可
777
所有者:F,Everyone:F
766
所有者:F,Everyone:C
755
所有者:F,Everyone:R
744
所有者:F,Everyone:R
733
所有者:F,Everyone:W
722
所有者:F,Everyone:W
700
所有者:F
666
所有者:C,Everyone:C
655
所有者:C,Everyone:R
644
所有者:C,Everyone:R
633
所有者:C,Everyone:W
622
所有者:C,Everyone:W
600
所有者:C
555
所有者:R,Everyone:R
544
所有者:R,Everyone:R
533
所有者:R,Everyone:W
522
所有者:R,Everyone:W
500
所有者:R
444
所有者:R,Everyone:R
433
所有者:R,Everyone:W
422
所有者:R,Everyone:W
400
所有者:R
333
所有者:W,Everyone:W
322
所有者:W,Everyone:W
300
所有者:W
222
所有者:W,Everyone:W
200
所有者:W
- (凡例)
表のF,C,R,Wは,caclsコマンドの次のアクセス許可と対応しています。
F:フルコントロール
C:変更権限
R:読み取り権限
W:書き込み権限
モードでは,読み取り権限と書き込み権限を合わせたもの(モードビット6の場合)を変更権限として定義しています。すべての権限を合わせたもの(モードビット7の場合)をフルコントロールとして定義しています。
モードで,実行権限に相当する指定は無視します。したがって,モードビット5は4と同等,モードビット3は2と同等として定義しています。
- パス名
対象とするファイルまたはフォルダを指定します。複数指定することもできます。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1以上 |
エラー終了 |
注意事項
このコマンドを実行すると,既存のACLは削除され,モードの説明にあるACEの設定だけを実施します。必要なアカウントのACEがある場合は,サンプルスクリプト内のcaclsコマンドの定義に追加してください。
「その他のユーザー」のアカウントをEveryoneにしているため,所有者のアクセス権がその他のユーザーのアクセス権より低い場合でも,所有者はEveryoneのアクセス権でアクセスできるようになります。
ファイルおよびフォルダのアクセス許可の変更権限がない場合,caclsコマンドが標準エラー出力にメッセージ「アクセスが拒否されました」を出力してcaclsコマンドがエラーとなり,権限を変更できません。実行ユーザーにアクセス許可の変更権限を付与して使用してください。
-
引数パス名にシンボリックリンクを指定した場合,リンク先のファイル,ディレクトリが変更の対象となります。シンボリックリンク自身を変更の対象とする場合はOSが提供するコマンドを使用してください。
使用例
ジョブ定義スクリプトの定義例を次に示します。サンプルスクリプトファイルscript_chmod2を基にchmodコマンドが作成されていることを前提とします。
指定したファイルに対し,すべてのユーザーを読み取り可能にします。
chmod 444 test.txt
指定が許可されていないモードを指定します。
chmod 611 test.txt
この場合,標準エラー出力には次のように出力されます。
chmod: invalid file mode: 611