Linuxはマルチユーザーシステムであるため 、ネットワークまたはインターネットに接続されている場合、複数のユーザーが同時にシステムにアクセスできるようにします。リモートユーザーは、ssh(セキュアシェル)を介してログインし、コンピューターを操作できます。
このようなマルチユーザー環境では、ユーザーの運用精度を確保する必要があります。そのため、あるユーザーのアクションによってシステムがクラッシュしたり、あるユーザーが別のユーザーに属するファイルに干渉したりすることはできません。
Linuxシステムのセキュリティ対策は非常に優れていますが。しかし、それでも抜け穴があります。これらはファイル権限です ユーザーにファイルとディレクトリへの正しいアクセス許可が与えられていない場合に発生する問題に基づいています。今日の記事では、Linuxでのファイルのアクセス許可と、さまざまな方法でアクセス許可を定義および設定する方法について説明します。
Linuxでのファイル権限
Linuxでは、ファイル権限は次のグループに付与されます。
- 所有者: ファイルを作成した人。したがって、所有者がファイルまたはディレクトリに対して実行できるアクションを決定します。
- グループ: これには、ファイルへのアクセスとアクセス許可が付与されている複数のユーザーが含まれる場合があります。
- その他: これには他のすべてのユーザーが含まれ、特定のファイルに対して実行できるアクションを表します。
Linuxでの許可の種類
Linuxでは、ファイルアクセスは、読み取り、書き込み、実行アクセスの3つの用語で定義されます。
- 読む: これは、ユーザーにファイルを表示するためのアクセス権が与えられていることを示しています。
- 書き込み: これは、ユーザーにファイルを変更するためのアクセス権が与えられていることを示しています。
- 実行: これは、ユーザーにファイルを実行するためのアクセス権が与えられていることを示しています。
ファイルの読み取り権限
ターミナルで次のコマンドを実行すると、これがどのように機能するかを理解できます。
$ ls -l
このコマンドを使用すると、システムのファイルとディレクトリのアクセス許可を確認できます。ここで10 数字の強調表示部分は、ファイルの種類と権限を示します。これらの10文字で、最初の文字はファイルタイプを示します。いくつかのファイルタイプは次のとおりです。
- –: 通常のファイルを表します
- d: ディレクトリを表します
- l: シンボリックリンクを表します
- c: 文字特殊ファイルを表します。端末など、データをバイトのストリームとして処理するデバイス。
- b: ブロック特殊ファイルを表します。ハードドライブなどのブロック内のデータを処理するデバイス。
現在、残りの9文字はファイル属性を表しており、ファイルモードとも呼ばれます。これは、ファイルの所有者、グループなどに付与されたファイルのアクセス許可を示しています。
ここでは、最初の文字の後に3文字の rwx 所有者、次の3つのグループ、および最後の3つのグループの権利を表します。ここ:
- r: ファイルを開いて読み取ることができます
- w: ファイルを開いて変更できるようにします
- x: ファイルを開いて実行できるようにします
ここで、上記の例では、ディレクトリが表示されています。所有者には読み取り、書き込み、実行の権利がありますが、グループや他の人には読み取りと実行の権利のみがあります。変更を加える権利はありません。
これで、特定のファイルのアクセス許可を読み取るために、「ls -l」を特定のファイルの名前またはディレクトリ名と一緒に使用できます:
$ ls -l [name of file or directory]
以下の例では、コマンドを使用して / etc / passwdに関する情報を確認しました。 ファイル。
ここで、最初の文字はそれが通常のファイルであることを示しています。所有者はそれを読んで変更する権利があります。グループなどはファイルを読み取ることしかできませんが、ファイルを変更したり実行したりすることはできません。
ファイル権限の変更
場合によっては、権限を変更して、ファイルまたはディレクトリに対する権限を他の人に付与したいことがあります。この目的のために、「 chmod」というコマンドがあります。 」。このコマンドは、ファイル所有者またはcdスーパーユーザーのみがファイルへの他のアクセスを許可するために使用できます。
Chmodは、アクセスとアクセス許可を付与するために2つの方法で使用されます。1つは明示的に使用され、もう1つはバイナリ参照を使用する方法です。
明示的に許可を与える:
このため、さまざまな権限グループに使用される記号を覚えておく必要があります。
- u-所有者を表す
- g-グループを表す
- o-他の人を代表する
- a-上記のすべてのユーザーを表す
これらの+および–演算子に加えて、ファイルまたはディレクトリのr、w、x(読み取り、書き込み、および実行)の許可を与えるために使用されます。これをよりよく理解するために、デスクトップディレクトリにテキストファイルを作成し、chmodを使用してその権限を変更します。次のコマンドを実行します:
まず、デスクトップに移動する必要があります:
$ cd Desktop
ここで、touchを使用してテキストタイプのファイルを作成する必要があります:
$ touch filename.txt
ここで、ファイル情報を確認するには、「ls-l」を実行します。
$ ls -l
これで、コマンド「ls -l」は、デスクトップ内のすべてのファイルに関する情報を表示しました。ここに私たちが作成したファイルがあり、所有者とグループはそれを読み書きすることしかできず、他の人はそれを読むことしかできないことを示しています。
他の人の権利を変更して、ファイルも実行します。このために、次のコマンドを実行します:
$ chmod o+x [filename]
ここでは、+演算子とともに代表的な記号を使用して、他のユーザーにアクセスできるようにしました。他のユーザーに読み取り/書き込みと実行のすべての権限を付与する場合は、次のコマンドを実行します。
$ chmod o+rwx [filename]
その後、「ls -l」コマンドを実行すると、行った変更が表示されます。
権限を付与するためのバイナリリファレンス:
読み取り/書き込みと実行を表す3桁の2進数参照を使用して、許可を与えることもできます。
- r =4
- w =2
- x =1
ここで、アクセスを許可する場合は、番号を追加するだけです。たとえば、「chmod 760 filename.txt」は、所有者がファイルの読み取り、書き込み、および実行を行う権利を持っていることを示しています。グループにはファイルの読み取りと書き込みの権利がありますが、他のグループには権利がありません。それをデモンストレーションして、次のコマンドを実行しましょう:
$ chmod 760 filename.txt
コマンドを実行した後、「ls -l」を実行すると、所有者が読み取り、書き込み、および実行する権限を持っていることがわかります。一方、グループにはファイルの読み取りと書き込みのみの権利が付与され、すべての許可は他のユーザーから奪われます。このようにして、バイナリ参照が機能します。
ファイルの所有者とグループを変更する
あなたができるもう一つのことは、ファイルの所有者を変更し、他の誰かをあなたの与えられたファイルの所有者にすることです。これは「chown」を介して行われます 」とsudo:
$ sudo chown owner:group [filename]
その後、「ls -l」を実行すると、「ubuntuuser」という名前の別のユーザーがファイルの所有権として付与されていることがわかります。
このようにして、ファイルまたはディレクトリの他のユーザーに所有権を与えることができます。
結論
マルチユーザーであるLinuxには、長所と短所があり、その1つがファイルのアクセス許可です。この記事では、Linuxでのファイルのアクセス許可、Linuxでのさまざまなグループ、さまざまなアクセス許可モード、および各アクセス許可グループにアクセス許可を付与する方法について学習しました。さらに、Linuxで許可を与えるさまざまな方法と、他のユーザーに所有権を与える方法を学びます。
他の人に自分のファイルへのアクセスを許可したくない場合があるため、これは非常に便利です。彼らの行動があなたやシステム全体に影響を与えないようにするためです。