GNU/Linux >> Linux の 問題 >  >> Linux

Linux での基本的な「chmod」コマンドの例

ファイルまたはディレクトリのパーミッションを変更する Linux コマンドは chmod で、ファイル モードの変更と読みます。 chmod には 2 つの操作モードがあります:

<オール>
  • シンボリック モード
  • 数値/8 進数モード
  • Linux の chmod コマンドを使用して権限を変更するには、いくつかの構文と規則に従う必要があります。上記で説明したように、数値とアルファベットの方法を使用して許可を変更できます。ここでは、すべてのトリックを使用して両方の方法を説明しました.

    アルファベット順

    この方法を使用するには、適切に使用するために以下の規則とアルファベットを覚えておく必要があります。ユーザーの権限を変更するには、アルファベット「u」を使用する必要があります 」。グループ「g」も同様です 」、他の人にとっては「o」 「.

    ユーザー、グループ、その他と同様に、読み取り、書き込み、および実行のアクセス許可を与えるには、いくつかのアルファベットを覚えておく必要があります。読み取りアクセス許可と同様に、アルファベット「r」を使用する必要があります。 」、書き込み「w」の場合 」、実行の場合は「x」 「.

    したがって、chmod コマンドを使用して権限を割り当てる式は以下のとおりです:

    • u – ユーザー
    • g – グループ
    • o – その他
    • r – 読む
    • w – 書く
    • x – 実行

    たとえば、ユーザー/所有者に読み取りと書き込みのアクセス許可を付与し、グループとその他に読み取りのアクセス許可をアルファベット順で付与する場合、コマンドは次のようになります。

    # chmod u+rw,g+r,o+r file_name

    数値的方法

    この方法を使用するには、適切に使用するために以下のルールと番号を覚えておく必要があります。

    • 4 – 読み取り許可を与える
    • 2 – 書き込み許可を与える
    • 1 – 実行権限を付与する

    たとえば、数値の方法を使用して、ユーザー/所有者に読み取りと書き込みのアクセス許可を付与し、グループとその他に読み取りのアクセス許可を付与する場合、コマンドの計算は次のようになります。

    4+2 =6 :ユーザー/所有者に読み取りと書き込みのアクセス許可が追加されます。
    4 :グループに読み取りアクセス許可が追加されます。
    4 :その他に読み取りアクセス許可が追加されます。

    したがって、コマンドは次のようになります:

    # chmod 644 filename

    以下のコマンドを使用して、任意のファイルのアクセス許可を確認できます:

    # ls -l file.txt 
    -rw-rw-r-- 1 geeklab geeklab 0 Feb 20 06:16 file.txt

    以下のコマンドを使用して、ディレクトリのアクセス許可を確認します:

    # ls -ld data/
    drwxrwxr-x 2 geeklab geeklab 4096 Feb 20 06:18 data/

    ここで問題は、ファイルまたはディレクトリに割り当てられているアクセス許可を特定する方法です。とても簡単です。以上、2つの例を挙げました。それでは、file.txt のパーミッションを特定しましょう。ファイルのプロパティが「-rw-rw-r–」で始まることに気付いた場合。ここで、file.txt に割り当てられた権限を特定できます。

    許可セクションは 10 ビットに分割され、そのうち

    」 :最初のビットは、ファイル、ディレクトリ、またはシンボリック リンクのいずれであるかを識別する役割を果たします。以下の記号を参照してください:

    重要な記号:

    • :ファイルに割り当てられた権限
    • d :ディレクトリに割り当てられた権限
    • l :シンボリック リンクに割り当てられた権限
    • 2 番目、3 番目、4 番目のビットは所有者の許可を得るためのものです。
    • 5 番目、6 番目、7 番目のビットは、グループの許可を得るためのものです。
    • 8 番目、9 番目、10 番目のビットは、他者の許可を得るためのものです。

    ファイル/ディレクトリに許可を与えるには、「+」を使用する必要があります 」のシンボル。ファイル/ディレクトリからアクセス許可を削除するには、「」を使用する必要があります 」 シンボル。

    chmod コマンドの使用例

    ファイルに権限を割り当てる

    ここに、file.txt という名前のファイルがあります。 chmod コマンドを使用して、ユーザー/所有者に読み取りと書き込みのアクセス許可を付与しましょう。

    $ chmod u+rw file.txt
    $ ls -l file.txt 
    -rw------- 1 geeklab geeklab 0 Feb 20 06:16 file.txt

    数値的には、以下のコマンドを使用してください:

    $ chmod 600 file.txt

    ディレクトリへの権限の割り当て

    以下のコマンドを使用して、ディレクトリにアクセス許可を与えることができます。ここに data という名前のディレクトリがあります。そこで、ユーザー/所有者に完全な権限 (読み取り、書き込み、実行) を与えましょう。以下のコマンドを参照してください。

    $ chmod u+rwx data/
    $ ls -ld data/
    drwx------ 2 geeklab geeklab 4096 Feb 20 06:18 data/

    数値的方法:

    $ chmod 700 data/

    ファイル/ディレクトリから権限を削除

    以下の Linux chmod コマンドを使用して、ファイル/ディレクトリから権限を削除します。ここで、ユーザー/所有者から読み取りと書き込みのアクセス許可を削除します。

    $ chmod u-rw file.txt 
    $ ls -l file.txt 
    ----rw-r-- 1 geeklab geeklab 0 Feb 20 07:18 file.txt

    全員に許可を与える

    以下のコマンドを使用して、全員に許可を与えることができます。ここでは、全員に file.txt にアクセスするための完全なアクセス許可を割り当てています。同じことを行うには 2 つの方法があります。

    方法 1

    $ chmod a+rwx file.txt 
    $ ls -l file.txt 
    -rwxrwxrwx 1 geeklab geeklab 0 Feb 20 06:44 file.txt

    方法 2
    以下の Linux chmod コマンドを使用して同じことを行うこともできます。

    $ chmod ugo+rwx file.txt 
    $ ls -l file.txt 
    -rwxrwxrwx 1 geeklab geeklab 0 Feb 20 06:44 file.txt

    数値的方法 :

    $ chmod 777 file.txt 

    単一の Linux chmod コマンドを使用して、ユーザー、グループ、およびその他に異なる権限を割り当てる

    ここでは、単一のコマンドを使用して、ユーザー/所有者から実行権限を削除し、グループおよびその他に実行権限を追加しています。

    $ chmod u-x,g+x,o+x file.txt
    $ ls -l file.txt 
    -rw-rwxrwx 1 geeklab geeklab 0 Feb 20 09:40 file.txt

    他のファイルを参照してファイルに権限を割り当てる

    あるファイルから別のファイルに許可をコピーできます。ここに a1.txt という名前のファイルがあり、その許可は「-rw-r–r–」のようなものです 「.

    $ ls -l a1.txt 
    -rw-r--r-- 1 geeklab geeklab 0 Feb 20 07:21 a1.txt

    ここで、a2.txt という名前の別のファイルに同じアクセス許可を割り当てたいと考えています。引数 –reference を指定して Linux の chmod コマンドを使用すると、これを行うことができます。以下のコマンドを参照してください。

    $ chmod --reference=a1.txt a2.txt 
    $ ls -l a2.txt 
    -rw-r--r-- 1 geeklab geeklab 0 Feb 20 07:22 a2.txt

    パーミッションを再帰的に割り当てる

    data という名前のディレクトリがあり、そこには非常に多くのファイルがあり、手動で 1 つずつではなく、一度にすべてのファイルにアクセス許可を与えたいと考えています。そのためには、引数 -R を指定して Linux の chmod コマンドを使用できます。これにより、再帰的に許可を与えることができます。

    $ chmod -R ugo+rwx data/

    数値的方法 :

    $ chmod -R 777 data/

    詳細出力で許可を割り当てる

    引数 -v を指定して Linux の chmod コマンドを使用すると、任意のファイル/ディレクトリにアクセス許可を割り当てた後に出力を取得できます。以下のコマンドを参照してください。

    $ chmod -v 777 file.txt 
    mode of 'file.txt' changed from 0664 (rw-rw-r--) to 0777 (rwxrwxrwx)

    出力で許可を割り当てます (このコマンドは、変更がある場合にのみ出力を提供します)

    引数 -c を指定した chmod コマンドも、詳細出力 (つまり -v) と同じことを行います。ただし、権限に変更がある場合にのみ出力が表示されます。同じ権限を割り当てている場合、出力は表示されません。

    $ chmod -c 755 file.txt 
    mode of 'file.txt' changed from 0777 (rwxrwxrwx) to 0755 (rwxr-xr-x)

    エラーを無視/解決して権限を割り当てる

    エラーを回避したり、権限の割り当て中にエラーを修正したりするには、引数 -f を指定して Linux の chmod コマンドを使用できます。以下のコマンドを参照してください。

    $ chmod -f 755 file.txt 

    chmod コマンドのヘルプ

    chmod コマンドのその他のオプションと引数については、以下のコマンドを使用できます。

    $ chmod --help
    Usage: chmod [OPTION]... MODE[,MODE]... FILE...
      or:  chmod [OPTION]... OCTAL-MODE FILE...
      or:  chmod [OPTION]... --reference=RFILE FILE...
    Change the mode of each FILE to MODE.
    With --reference, change the mode of each FILE to that of RFILE.
    
      -c, --changes          like verbose but report only when a change is made
      -f, --silent, --quiet  suppress most error messages
      -v, --verbose          output a diagnostic for every file processed
          --no-preserve-root  do not treat '/' specially (the default)
          --preserve-root    fail to operate recursively on '/'
          --reference=RFILE  use RFILE's mode instead of MODE values
      -R, --recursive        change files and directories recursively
          --help     display this help and exit
          --version  output version information and exit
    
    Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.
    
    GNU coreutils online help: [http://www.gnu.org/software/coreutils/]
    Full documentation at: [http://www.gnu.org/software/coreutils/chmod]
    or available locally via: info '(coreutils) chmod invocation'

    chmod コマンドのバージョンを確認

    引数 –version を指定して Linux の chmod コマンドを使用すると、インストールされている chmod コマンドのバージョンを確認できます。

    $ chmod --version
    chmod (GNU coreutils) 8.25
    Copyright (C) 2016 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later [http://gnu.org/licenses/gpl.html].
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    
    Written by David MacKenzie and Jim Meyering.


    Linux
    1. Linuxでのmvコマンド:7つの重要な例

    2. Linux での ln コマンドの例

    3. Linux での gzip コマンドの例

    1. Linuxテールコマンドの例

    2. Linux でのコマンド例

    3. Linux での head コマンドの例

    1. Linuxでの8つのヘッドコマンドの例

    2. Linuxでの8つのStatコマンドの例

    3. Linux での file コマンドの例