LinuxはマルチユーザーOSであり、一度に複数のユーザーをサポートすることを意味します。
多くの人が同時にシステムにアクセスでき、一部のリソースは共有されているため、Linuxは所有権と権限を通じてアクセスを制御します。
Linuxファイルの所有権
Linuxには、次の3つのタイプの所有者があります。 user 、 group 、およびその他 。
Linuxユーザー
ユーザーは、ファイルのデフォルトの所有者および作成者です。したがって、このユーザーは所有者とも呼ばれます。
Linuxグループ
ユーザーグループは、ユーザーの集まりです。グループに属するユーザーは、ファイル/フォルダーにアクセスするための同じLinuxグループ権限を持ちます。
グループを使用して、個別に権限を割り当てる代わりに、権限をまとめて割り当てることができます。ユーザーは複数のグループに所属することもできます。
その他
ユーザーまたはグループクラスの一部ではないユーザーは、このクラスに属します。
Linuxファイルのアクセス許可
ファイルのアクセス許可は、次の3つのカテゴリに分類されます。 read 、 write 、および execute 。
読み取り許可
通常のファイルの場合、読み取り権限により、ユーザーはファイルを開いて読み取ることのみが許可されます。ユーザーはファイルを変更できません。
同様に、ディレクトリの場合、読み取り権限により、ディレクトリを変更せずにディレクトリコンテンツを一覧表示できます。
書き込み権限
ファイルに書き込み権限がある場合、ユーザーはファイルを変更(編集、削除)して保存できます。
フォルダの場合、書き込み権限により、ユーザーはその内容を変更(フォルダ内のファイルの作成、削除、名前変更)でき、ユーザーが書き込み権限を持つファイルの内容を変更できます。
実行権限
ファイルの場合、実行権限により、ユーザーは実行可能スクリプトを実行できます。ディレクトリの場合、ユーザーはそれらにアクセスし、ディレクトリ内のファイルに関する詳細にアクセスできます。
以下は、ユーザー、グループ、その他への権限の象徴的な表現です。
長いリスト( ls -l </ code>)を使用して、ファイルとフォルダーのアクセス許可を見つけることができることに注意してください。 )Linux端末上。
上記の出力では、 d ディレクトリを表し、- 通常のファイルを表します。
chmodを使用してLinuxで権限を変更する方法 コマンド
所有権と権限の基本がわかったので、 chmodを使用して権限を変更する方法を見てみましょう。 コマンド。
chmodの構文 :
chmod permissions filename どこで、
許可読み取り、書き込み、実行、またはそれらの組み合わせが可能です。ファイル名権限を変更する必要があるファイルの名前です。このパラメータは、ファイルがパーミッションを一括で変更する場合のリストにすることもできます。
次の2つのモードを使用して権限を変更できます。
- シンボリックモード :このメソッドは
uのような記号を使用します 、g、oユーザー、グループなどを表すため。権限はr、w、xとして表されます それぞれ、読み取り/書き込みおよび実行用。 +、-、および=を使用して権限を変更できます。 - 絶対モード :このメソッドは、権限を0〜7の範囲の3桁の8進数として表します。
では、詳しく見ていきましょう。
次の表は、ユーザー表現をまとめたものです。
| ユーザー表現 | 説明 |
|---|---|
| u | ユーザー/所有者 |
| g | グループ |
| o | その他 |
数学演算子を使用して、アクセス許可を追加、削除、および割り当てることができます。次の表に概要を示します。
| オペレーター | 説明 |
|---|---|
| + | ファイルまたはディレクトリに権限を追加します |
| – | 権限を削除します |
| = | 以前に存在しなかった場合に許可を設定します。以前に設定した場合は、権限も上書きします。 |
例:
スクリプトがあり、ファイル zairaの所有者が実行できるようにしたいとします。 。
現在のファイル権限は次のとおりです。
次のように権限を分割しましょう:
実行権を追加するには( x )所有者へ( u )シンボリックモードを使用すると、次のコマンドを使用できます:
chmod u+x mymotd.sh 出力:
これで、所有者の zairaに実行権限が追加されたことがわかります。 。
シンボリックメソッドを介して権限を変更するための追加の例:
読み取りの削除 およびwritegroupの権限 およびその他:chmod go-rw。読み取りの削除その他の権限 :chmod o-r。-
writeの割り当てgroupへのアクセス許可 既存の権限を上書きする:chmod g =w。
絶対モードでは、数値を使用して権限を表し、数学演算子を使用して権限を変更します。
次の表は、関連する権限を割り当てる方法を示しています。
| 許可 | 許可を与える |
|---|---|
| 読む | 4を追加 |
| 書き込み | 2を追加 |
| 実行 | 1を追加 |
減算を使用して、アクセス許可を取り消すことができます。次の表は、関連する権限を削除する方法を示しています。
| 許可 | 許可を取り消す |
|---|---|
| 読む | 減算4 |
| 書き込み | 減算2 |
| 実行 | 減算1 |
例 :
読み取りを設定します (4を追加)user、read(4を追加)およびexecute(1を追加)グループの場合、executeのみ (1を追加)他の人のために。
chmod451ファイル名
これが私たちが計算を実行した方法です:
これはr--r-x--xと同じであることに注意してください 。
実行を削除しますotherからの権利 およびgroup。
otherから実行を削除するには およびgroup 、最後の2オクテットの実行部分から1を引きます。
読み取りを割り当てます 、writeおよびexecuteuserへ 、readおよびexecutegroupへreadのみ 他の人に。
これは、rwxr-xr-と同じになります 。
chownを使用して所有権を変更する方法 コマンド
次に、ファイルの所有権を変更する方法を学習します。 chown を使用して、ファイルまたはフォルダーの所有権を変更できます 指図。場合によっては、所有権を変更するには sudoが必要です 権限。
chownの構文 :
chown user filename
chownを使用してユーザーの所有権を変更する方法
ユーザーzairaから所有権を譲渡しましょう ユーザーへのnews 。
chown news mymotd.sh
所有権を変更するコマンド: sudo chown news mymotd.sh
出力:
chownも使用できます ユーザーとグループを同時に変更します。
chown user:group filename
ディレクトリ内のコンテンツの所有権を再帰的に変更できます。以下の例は、 / opt / scriptの所有権を変更します ユーザーadminを許可するフォルダー 。
chown -R admin /opt/script
グループの所有者を変更するだけでよい場合は、 chownを使用できます。 グループ名の前にコロンを付ける:
chown :admins /opt/script Linux権限ガイド付き演習
これまで、権限、所有権、およびそれらを変更する方法について説明してきました。次に、ガイド付きの演習で学習を強化します。
目標 :グループを作成し、そのメンバーに関連する権限を割り当てる。許可されていないユーザーからアクセスして、アクセスを確認します。
タスク : dev-teamというグループを作成します 2人のメンバー(ジョンとボブ)を追加します。フォルダ/home / dev-teamを作成します 所有権をグループdev-teamに変更します 。 dev-teamの両方のユーザーが グループは読んだ および書き込み フォルダへのアクセス。
別のグループを作成するproject-manager ユーザーを追加しますFatima それに。フォルダ/home / dev-teamかどうかを確認します Fatimaからアクセスできます 。
このように問題を視覚化できます:
ステップ1:rootユーザーに切り替えます。
rootユーザーに切り替えて、新しいユーザーとグループを作成する権限を取得します。
sudoを使用する フラグiを指定したコマンド 。
ルートパスワードをお持ちの場合は、それを使用してログインすることもできます。
<詳細><概要>解決策を表示概要>
sudo -iと入力します rootユーザーに切り替えます。
whoamiと入力します あなたがrootユーザーであるかどうかを確認するには:
rootがない場合 アクセスするには、 sudoを追加してコマンドを使用します 。
ステップ2:グループを作成する dev-team
groupaddを使用します コマンド。
構文: groupadd group-name
groupadd dev-teamと入力します dev-teamを作成します グループ
確認: cat / etc / group | grep dev-team
ステップ3:2人の新しいユーザーJohnとBobを作成し、それらを dev-teamに追加します グループ
コマンドuseraddを使用します 。
useradd 新しいユーザーを作成し、指定したグループに追加します。
構文: useradd -G groupname username
ここで-G グループを指定します。
useradd -G dev-team John
useradd -G dev-team Bob
確認: cat / etc / group | grep dev-team
ステップ4:ユーザーJohnとBobにパスワードを提供する
<詳細><概要>ヒントを表示概要>
コマンドpasswdを使用します
passwd ユーザーのパスワードを作成します。
構文: passwd username
passwd John
passwd Bob
ステップ5:/ homeにディレクトリを作成し、 dev-teamという名前を付けます
コマンドmkdirを使用します
mkdir ディレクトリを作成します。
構文: mkdir directory-name
mkdir / home / dev-team
確認:
ステップ6:フォルダー dev-teamのグループ所有権を変更します dev-teamをグループ化する
コマンドchownを使用します
構文: chown:group-name folder
chown:dev-team / home / dev-team /
ステップ7:フォルダー dev-teamの権限を確認します グループメンバーがファイルを作成および削除できるようにします。
コマンドchmodを使用します
書き込み権限により、ユーザーとグループはファイルを作成および削除できます。
構文:chmodパーミッションフォルダー
chmod g + w / home / dev-team /
ステップ8:「others」が dev-teamのファイルにアクセスできないことを確認します フォルダ。
コマンドchmodを使用します
読み取り、書き込み、実行の権限が存在する場合は、「その他」から削除します。
構文:chmodパーミッションフォルダー
chmod o-rx dev-team
ステップ9: rootを終了します セッションしてJohnに切り替えます
コマンドexitを使用します rootユーザーからログアウトします。
suを使用する ユーザーを切り替えるため。
構文: su --user
現在のユーザーを確認するには、コマンド whoamiを使用します 。
exit
su-ジョン
コマンドwhoamiで確認します 。
ステップ10:フォルダーに移動します: / home / dev-team
コマンドcdを使用します フォルダを切り替える。
構文: cd / path / to / folder
pwdで現在のパスを確認します 。
cd / home / dev-team
ステップ11:次のフォルダーに空のファイルを作成します: / home / dev-team
コマンドtouchを使用します 空のファイルを作成します。
構文: touch filename
touch john-file.txt
確認: ls -lrt
ステップ12:作成したファイルのグループ所有権を dev-teamに変更します 確認します。
コマンドchownを使用します 所有権を変更します。
構文: chown:group file-name
chown:dev-team john-file.txt
グループの所有権が変更されると、グループのすべてのメンバーがこのファイルにアクセスできるようになります。
ls -lrtを確認します
ステップ13:シェルを終了し、ユーザー Bobに切り替えます
コマンドexitを使用します ターミナルを終了します。
suを使用する ユーザーを切り替えるため。
構文: su --user
現在のユーザーを確認するには、コマンド whoamiを使用します 。
exit
su-ボブ
コマンドwhoamiを使用して現在のユーザーを確認します 。
ステップ14:パス / home / dev-teamに移動します
コマンドcdを使用します フォルダを切り替える。
構文: cd / path / to / folder
pwdで現在のパスを確認します 。
cd / home / dev-team
ステップ15:Bobのを見つける john-file.txtにアクセスするための権限
コマンドls-lを使用します 長いリストの場合。
構文: ls -l | grepファイル名
グループにはrw-がありますか 権限?
ls -l | grep john-file.txt
ステップ16:ファイル john-file.txtを変更します Bobとしてログインしている間
コマンドechoを使用します ファイルにテキストを追加します。
構文: echo "Some text">> file-name
これにより、引用符で囲まれたテキストがファイルの最後にリダイレクトされます。
<詳細><概要>解決策を表示概要>
echo"これはボブのコメントです">john-file.txt
すべての権限が正しく設定されている場合は、 Bob このファイルを編集して保存することができます。そうしないと、次のようなエラーが発生します: Permissiondenied 。
cat john-file.txtを確認します
ステップ17:別のグループを作成する project-manager メンバーをFatimaに割り当てます それに
コマンドgroupaddを使用します 新しいグループを追加します。
構文: groupadd group-name
コマンドuseraddを使用して新しいユーザーを作成します 。
フラグ-Gを使用します ユーザーを割り当てます。
groupadd project-manager
useradd -G project-manager Fatima
passwd Fatima
ステップ18:フォルダー / home / dev-teamに移動します Fatimaかどうかを確認します アクセスできます
cdを使用する / home / dev-teamに移動します 。
cd / home / dev-team 。
このエラーが発生します:
これは、その他 フォルダdev-teamにアクセスできません 。
思い出してください。以下はdev-teamの権利です。 フォルダ。
アクセス許可と所有権は、マルチユーザーオペレーティングシステム全体にセキュリティを適用するための便利な概念です。権限と所有権の変更について詳しく学ぶことができたと思います。
このチュートリアルから学んだお気に入りのことは何ですか? Twitterで教えてください!
私の他の投稿もここで読むことができます。
ガイド付きエクササイズを手伝ってくれたTomMondlochに感謝します。