chmod

ファイルやディレクトリのパーミッションを変更する。

形式: chmod アクセス権限 ファイル名 -> chmod 777 work/test01.sh

対象 説明
u 所有者
g 所有グループ
o その他のユーザ
a 全てのユーザ
操作 説明
+ 権限を追加
権限を削除
= 権限を指定
権限 説明
r 読み取り権
w 書き込み権
x 実行権
s SUIDまたはSGID
t スティッキービット

特殊なパーミッション

  • SUID
    • 実行ファイルに設定し、そのプログラムをどのユーザが実行してもプログラムの所有ユーザの権限で実行。
    • 設定はchmodコマンドで、通常のパーミッションの値に4000を加えた値を設定するか、所有ユーザに「s」という権限を追加(u+s)。
    • これが設定された代表的なプログラム「passwd」コマンド。
    • 例: test.txt (744) -> chmod 4744 test.txt / chmod u+s test.txt
  • SGID
    • 実行ファイルに設定する事で、そのプログラムをどのユーザが実行しても、プログラムの所有グループの権限で実行されます。
    • ディレクトリに設定する事で、そのディレクトリ配下に作成したファイルやディレクトリの所有グループは親ディレクトリと同じになります
    • 設定はchmodコマンドで、通常のパーミッションの値に2000を加えた値を設定するか、所有グループに「s」という権限を追加します(g+s)。
    • 例: test.txt (744) -> chmod 2744 test.txt / chmod g+s test.txt
  • スティッキービット
    • ディレクトリに設定する事で、そのディレクトリに対して書き込み権限を持つユーザでも、自分が所有する以外のファイルを削除できなくなります。
    • 設定方法はchmodコマンドで、通常のパーミッションの値に1000を加えた値を設定するか、その他ユーザに「t」という権限を追加します(o+t)。
    • これが設定された代表的なディレクトリに「/tmp」ディレクトリがあります。
    • 例: test.txt (744) -> chmod 1744 test.txt / chmod o+t test.txt