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

Linuxのchmodとchown–Linuxでファイルのパーミッションと所有権を変更する方法

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つのモードを使用して権限を変更できます。

  1. シンボリックモード :このメソッドは uのような記号を使用します 、 g o ユーザー、グループなどを表すため。権限はr、w、xとして表されます それぞれ、読み取り/書き込みおよび実行用。 +、-、および=を使用して権限を変更できます。
  2. 絶対モード :このメソッドは、権限を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に感謝します。


Linux
  1. Linuxでファイルのパーミッションと所有権を別のファイルにコピーする方法

  2. Linux でファイルとディレクトリのアクセス許可/所有権を管理する方法

  3. Linuxで隠しファイルをchmodおよびchownする方法は?

  1. Linuxファイルパーミッションチュートリアル:パーミッションを確認および変更する方法

  2. Linuxでchownコマンドを使用して所有権を変更する方法

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

  1. Linuxでchmodを使用してファイルパーミッションを再帰的に変更する方法

  2. Linuxでchownコマンドを使用してファイル/グループ所有者を変更する方法

  3. Linuxでユーザーパスワードを変更する方法