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

Linuxの権限の変更

この記事では、 chmodを使用してLinux®クラウドサーバーの権限を変更する方法について説明します。 コマンド。

chmodコマンドとは何ですか?

簡単に言えば、 chmod 変更モードの略です Linuxでファイルまたはディレクトリのアクセス許可を設定するために使用されます。ルートユーザーはchmodを使用します どのユーザー、グループ、その他がファイルやディレクトリにアクセスできるかを判断するため。

通常、 chmodを使用します 次の形式のコマンド:

$ chmod (options) (permissions) (file name)
$ chmod (permissions) (file name)

chmodでのオプションの使用 コマンドはオプションです。 2番目の例は、最も頻繁に使用されます。オプションがない場合、 chmod コマンドで指定されたファイルまたはディレクトリの権限を変更します。

権限

Linuxシステムでは、権限を使用して、ファイルまたはディレクトリの所有者(ユーザー)、ファイルまたはディレクトリを所有するグループ(グループ)、またはファイルまたはディレクトリにアクセスする他のユーザー(その他)を参照できます。

次の表記を使用して、これらの権限を記述してください。

  • 英数字(r、w、x)
  • 8進数(0〜7)

たとえば、 example.txtというファイルがあります 、次の権限を設定する必要があります:

  • ユーザーはファイルの読み取り、書き込み、および実行を行うことができます。
  • グループメンバーはファイルの読み取りと実行はできますが、書き込みはできません。
  • 他の人はファイルを読み取ることしかできません。

次のコマンドオプションは、 example.txtに必要な権限を設定します :

$ chmod u=rwx,g=rx,o=r example.txt

このオプションでは、英数字を使用して、ファイルにアクセスできるユーザーと、これらの指定されたユーザーに設定する権限を示します。

  • 文字「u」=ユーザー
  • 文字「g」=グループ
  • 文字「o」=その他
  • 文字「r」=読む
  • 文字「w」=書く
  • 文字「x」=実行

次の例は、Linuxが前の例で付与された権限をどのように表現するかを示しています。

-rwxr-xr--

最初の3文字(rwx)は、ユーザーの権限です。次の3つ(r-x)はグループの権限を表し、最後の3つ(r–)は他のユーザーの権限を表します。

次に、 example.txtの8進数オプションがあります 演習:

$ chmod 754 example.txt

この例では、数字の7、5、および4はそれぞれ、ユーザー、グループ、およびその他の権限を表します。最初の数字の位置はユーザーの権限を決定し、2番目の数字はグループの権限を決定し、3番目の数字は他のユーザーの権限を割り当てます。

これらの番号はランダムに選択されていません。数字の4、2、1、および0を合計すると、権限が決まります。番号には次の割り当てがあります:

  • 4は「読み取り」の略です
  • 2は「書き込み」の略です
  • 1は「実行」の略です
  • 0は「なし」を表します

したがって、前の例では、7は読み取り(4)、書き込み(2)、および実行(1)の組み合わせから決定されます:4 + 2 + 1 =7。5は読み取り(4)の追加から取得されます。 none(0)、および実行(1):4 + 0 + 1 =5。最後に、4は読み取り(4)、none(0)、およびnone(0)の組み合わせです:4 + 0 + 0 =4 。

オプション

通常、 chmodのオプションを使用する必要はありません。 コマンドを実行しますが、その場合は、 chmodで次のオプションを使用できます。 :

  • -c -変更 :加えられた変更について詳細な出力を提供します
  • -f -サイレント-静かな :ほとんどのエラーメッセージを消音します
  • -v -verbose :処理されたすべてのアクションの詳細メッセージを出力します
  • -no-preserve-root :デフォルトで/(ルート)ディレクトリに通常与えられる差異を無視します
  • -preserve-root :/(ルート)ディレクトリで再帰的に動作しません
  • -reference =RFILE :特定のモードを無視して、RFILEの権限と一致する権限を設定します
  • -R -recursive :ファイルまたはディレクトリに加えられた変更は再帰的に適用されます
  • -ヘルプ :ヘルプメッセージを表示してから終了します
  • -バージョン :バージョン情報を表示してから終了します
追加

すでに説明した権限に加えて、 chmod コマンドは、Linuxで他の3つの特別な権限を設定できます。

  • SUID(ユーザーIDの設定)
  • SGID(グループIDの設定)
  • スティッキービット

SUID

s ユーザーのrwx xを置き換える権限セット 、は、次の例に示すように、この権限を表します。

$ chmod 4755 /usr/bin/passwd
$ ls -lh /usr/bin/passwd
-rwsr-xr-x.  1  root  root  28K  Mar  10  2020  /usr/bin/passwd

rwsr-xr-xの最初の3文字 ユーザーの権限を表します。 xの代わりに注意してください sがあります ユーザーの3つの権限スロットにあります。 xを表示する代わりに 実行には、 sがあります 実行スポットで。なぜですか?

注: 通常の8進数のパーミッションセットの前にある4は、このパーミッションを表します。したがって、 755の代わりに 、権限は 4755として記述されます 。

この特定の権限により、ユーザーはバイナリプログラムを、所有者ではない場合でも所有者であるかのように実行できるため、このオプションは注意して使用する必要があります。この最もよく知られている例は、 passwdです。 コマンド。

passwdの場合 、バイナリプログラムがrootによって所有されている場合でも、ユーザーはプログラムを実行できます。ただし、 passwd デフォルトではSUIDとして設定されており、常にrootユーザーとして実行されます。

通常のユーザーが他のバイナリプログラムに対するSUID権限を持っている場合、 rootがなくてもrootとしてコマンドを実行できます。 権限。これにより、通常は sudoを必要とする特権の異常な昇格が可能になります。 アクセスする権限。

SUID権限は、バイナリのみの形式でLinuxOSに組み込まれている予防策に影響を与える可能性があります。スクリプトには影響しません。

SGID

s グループのrwx xを置き換える権限セット in t r-x 次の例に示すように、セグメントはSGID権限を表します。

$ chmod 2755 /usr/bin/screen
$ ls -lh /usr/bin/screen
-rwxr-sr-x.  1  root  screen  465K  Feb  10  2020  /usr/bin/screen

このs は3つの権限の2番目のグループにあります。これは、英数字スタイルで記述されたときのグループの権限です。 8進レンダリングでは、 2 他の3つの8進数の許可番号の前は、この許可を示します。 755の代わりに 、これを 2755と記述します 。

SUIDと同様に、SGID権限はバイナリでのみ機能します。スクリプトでは機能しません。 SGIDの機能に関しては、特権のないグループメンバーがrootユーザーであるかのようにバイナリを実行できるようにします。

通常、このアクセス許可は、グループのメンバーがグループによって共有されているディレクトリ内でアクセスできる必要があるディレクトリで使用できます。このディレクトリに作成されたファイルは、ファイルを作成したグループメンバーに関係なく、同じグループ所有者になります。

スティッキービット

t 他の人のrwx xを置き換える権限セット 、は、次の例に示すように、この権限を表します。

$ chmod 1777 /tmp
$ ls -lhd /tmp
drwxrwxrwt.  8  root  root  4.0K  Nov  6  14:42  /tmp

tに注意してください 3文字の最後のセットで。 tに相当する8進数 1です 3つの許可オクタルの前。 777の代わりに 、これを 1777と記述します 。

このスティッキービットは何をしますか?通常、この権限は tmpで使用します ディレクトリ、およびその機能は、ユーザーが他のユーザーが所有するファイルを削除できないようにすることです。通常、グループがディレクトリへの書き込みアクセス権を持っている場合、そのグループ内のすべてのユーザーは、そのディレクトリ内の任意のファイルを削除できます。スティッキービットの許可はそれを止めます。ファイルの作成者のみがファイルを削除できます。

ベストプラクティスとして、他のアクセス許可が8進数の7(読み取り、書き込み、実行)であるディレクトリには、スティッキービットのアクセス許可を設定する必要があります。 754で たとえば、8進数が 757 の場合、スティッキービット権限を使用するとします。 ここで、7は3番目の8進数です(他のユーザーの許可を表します)。

ファイルとディレクトリのPemissionsチートシート

以下は、出力例の各部分を説明する簡単なチートシートです。

-rwxrw-r--  rack  space  123G  Feb  03  15:36  example.txt
  • -- 最初は、これがファイルであることを示しています。 d 冒頭はディレクトリを示します。
  • rwx :最初の3文字はファイル所有者の権限を表し、所有者がファイルexample.txtの読み取り、書き込み、および実行を実行できることを意味します。
  • rw- :次の3文字はグループの権限を表し、グループメンバーはファイルの読み取りと書き込みはできますが、実行はできません。
  • r- :3番目の3文字は他のユーザーの権限を表し、ファイルを所有している所有者またはグループに属していない人はファイルを読み取ることしかできないことを意味します。ファイルへの書き込みやファイルの実行はできません。
  • ラック :ファイルの所有者。
  • スペース :グループの所有者。
  • 123G :ファイルのサイズ(ギガバイト単位)。 M メガバイトを示し、 K キロバイトを表します。
  • Feb 03 15:36 :これは、ファイルが最後に変更された日時を示します。
  • example.txt :ファイルの名前。これを「/example」としてリストすると、ディレクトリの名前になります。

Linux
  1. LinuxのUmaskとは

  2. Linuxファイルパーミッションの基本

  3. Linux –フォルダのアクセス許可を変更しますか?

  1. Linuxの権限101

  2. Linuxパーミッション:chmodの紹介

  3. Linuxでchmod(モード変更)コマンドを使用する方法

  1. Linuxパーミッションのビギナーズガイド

  2. Linuxchmodコマンド

  3. chmod:ディレクトリの権限を変更する操作は許可されていません