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
に実行権限が追加されたことがわかります。 。
シンボリックメソッドを介して権限を変更するための追加の例:
読み取り
の削除 およびwrite
group
の権限 およびその他
: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
およびexecute
user
へ 、read
およびexecute
group
へ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に感謝します。