Red Hat Training

A Red Hat training course is available for RHEL 8

26.4. シンボリック値を使用したファイル権限の変更

chmod ユーティリティーにシンボリック値 (組み合わせ文字および記号) を付けて、ファイルまたはディレクトリーのファイルのパーミッションを変更できます。

以下の パーミッション を割り当てることができます。

  • 読み取り (r)
  • 書き込み (w)
  • 実行 (x)

パーミッションは、以下の レベルの所有権 に割り当てることができます。

  • ユーザー所有者 (u)
  • グループ所有者 (g)
  • その他 (o)
  • すべて (a)

パーミッションを追加または削除するには、以下の 記号 を使用できます。

  • +: 既存のパーミッションの上にパーミッションを追加します。
  • -: 既存のパーミッションからパーミッションを削除します。
  • =: 既存のパーミッションを削除し、新しいパーミッションを明示的に定義します。

手順

  • ファイルまたはディレクトリーのパーミッションを変更するには、以下を使用します。

    $ chmod <level><operation><permission> file-name

    <level> は、パーミッションを設定する 所有権のレベル に置き換えます。<operation> は、署名 の 1 つに置き換えます。<permission> は、割り当てる パーミション に置き換えます。file-name は、ファイルまたはディレクトリーの名前に置き換えます。たとえば、すべてのユーザーに読み取り、書き込み、実行 (rwx) my-script.sh のパーミッションを付与するには、chmod a=rwx my-script.sh コマンドを使用します。

    詳細は、「ベースパーミッション」を参照してください。

検証手順

  • 特定のファイルのパーミッションを表示するには、以下を使用します。

    $ ls -l file-name

    file-name は、ファイルの名前に置き換えます。

  • 特定のディレクトリーのパーミッションを表示するには、以下を使用します。

    $ ls -dl directory-name

    directory-name は、ディレクトリー名に置き換えます。

  • 特定のディレクトリー内の全ファイルのパーミッションを表示するには、以下を使用します。

    $ ls -l directory-name

    directory-name は、ディレクトリー名に置き換えます。

例26.8 ファイルおよびディレクトリーの権限の変更

  • my-file.txt のパーミッションを -rw-rw-r-- から -rw------ に変更するには以下を使用します。

    1. my-file.txt の現在のパーミッションを表示します。

      $ ls -l my-file.txt
      -rw-rw-r--. 1 username username 0 Feb 24 17:56 my-file.txt
    2. グループ所有者 (g) およびその他のファイル (o) からファイルを読み取り、書き込み、実行 (rwx) するパーミッションを削除します。

      $ chmod go= my-file.txt

      パーミッションを等号 (=) の後ろに指定していない場合には自動的に無視される点に注意してください。

    3. my-file.txt のパーミッションが正しく設定されていることを確認します。

      $ ls -l my-file.txt
      -rw-------. 1 username username 0 Feb 24 17:56 my-file.txt
  • my-directory のパーミッションを drwxrwx--- から drwxrwxr-x に変更するには、以下を使用します。

    1. my-directory の現在のパーミッションを表示します。

      $ ls -dl my-directory
      drwxrwx---. 2 username username 4096 Feb 24 18:12 my-directory
    2. 全ユーザー (a) の読み取り、書き込み、実行 (rwx) アクセスを追加します。

      $ chmod o+rx my-directory
    3. my-directory とそのコンテンツが正しく設定されていることを確認します。

      $ ls -dl my-directory
      drwxrwxr-x. 2 username username 4096 Feb 24 18:12 my-directory