Linuxファイルの基本属性の知識ポイントのまとめ

Linuxファイルの基本属性の知識ポイントのまとめ

Linux システムは典型的なマルチユーザー システムです。異なるユーザーは異なる立場にあり、異なる権限を持ちます。システムのセキュリティを保護するために、Linux システムでは、異なるユーザーが同じファイル (ディレクトリ ファイルを含む) にアクセスするための権限について異なる規制が設けられています。

Linux では、次のように ll または ls –l コマンドを使用して、ファイルの属性と、そのファイルが属するユーザーとグループを表示できます。

[root@www /]# ls -l
合計 64
dr-xr-xr-x 2 ルート ルート 4096 2012年12月14日 bin
dr-xr-xr-x 4 ルート ルート 4096 2012年4月19日 ブート
…

この例では、bin ファイルの最初の属性は「d」で表されます。 Linux の「d」は、ファイルがディレクトリ ファイルであることを意味します。

Linux では、最初の文字はファイルがディレクトリ、ファイル、リンク ファイルなどであるかどうかを表します。

  • [d]の場合はディレクトリ
  • [-]の場合はファイルです。
  • [l]の場合はリンクファイルを意味します。
  • [b]の場合は、ストレージに使用できるデバイスファイル内のインターフェースデバイス(ランダムアクセスデバイス)を意味します。
  • [c] の場合は、キーボードやマウスなどのデバイス ファイル内のシリアル ポート デバイス (1 回限りの読み取りデバイス) を示します。
  • 次の文字は 3 つのグループにまとめられており、すべて「rwx」の 3 つのパラメータの組み合わせです。このうち、[r]は読み取り可能(read)、[w]は書き込み可能(write)、[x]は実行可能(execute)を表します。 これら 3 つの権限の位置は変更されないことに注意してください。権限がない場合は、代わりにマイナス記号 [-] が表示されます。

各ファイルのプロパティは、左側の最初の部分の 10 文字によって決まります (以下を参照)。

左から右に0~9の数字で表されます。

ビット 0 はファイルの種類を決定し、ビット 1 ~ 3 は所有者 (ファイルの所有者) がファイルに対して持つ権限を決定します。

ビット 4 ~ 6 は、グループ (所有者と同じグループ内のユーザー) がファイルに対して持つ権限を決定し、ビット 7 ~ 9 は、他のユーザーがファイルに対して持つ権限を決定します。

このうち、1 番目、4 番目、7 番目のビットは読み取り権限を表します。これらが「r」文字で表されている場合は、読み取り権限が付与されます。これらが「-」文字で表されている場合は、読み取り権限が拒否されます。

2 番目、5 番目、および 8 番目のビットは書き込み権限を表します。これらが "w" 文字で表されている場合は、書き込み権限があります。これらが "-" 文字で表されている場合は、書き込み権限がありません。3 番目、6 番目、および 9 番目のビットは実行権限を表します。これらが "x" 文字で表されている場合は、実行権限があります。これらが "-" 文字で表されている場合は、実行権限がありません。

Linux ファイルの所有者とグループ

[root@www /]# ls -l
合計 64
drwxr-xr-x 2 ルート ルート 4096 2月15日 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 2014年4月21日 mysql
…

ファイルには特定の所有者、つまりファイルの所有権を持つユーザーが存在します。

同時に、Linux システムでは、ユーザーはグループに分類され、ユーザーは 1 つ以上のグループに属します。

ファイル所有者以外のユーザーは、ファイル所有者と同じグループのユーザーとその他のユーザーに分けることができます。

そのため、Linux システムでは、ファイル所有者、ファイル所有者と同じグループのユーザー、その他のユーザーに応じて異なるファイル アクセス権限を定義します。

上記の例では、mysql ファイルはディレクトリ ファイルです。その所有者とグループは両方とも mysql です。所有者には読み取り、書き込み、および実行権限があります。所有者と同じグループの他のユーザーには読み取りおよび実行権限があります。他のユーザーにも読み取りおよび実行権限があります。

ルート ユーザーの場合、ファイル権限は通常は影響しません。

ファイル属性の変更

1. chgrp: ファイルグループを変更する

文法:

chgrp [-R] グループ名 ファイル名

パラメータオプション

-R: ファイル グループを再帰的に変更します。つまり、ディレクトリ内のファイルのグループを変更するときに、-R パラメータを追加すると、ディレクトリ内のすべてのファイルのグループが変更されます。

2. chown: ファイルの所有者を変更すると同時にファイルグループも変更できます

文法:

chown [–R] 所有者名 ファイル名
chown [-R] 所有者名:グループ名 ファイル名

/root ディレクトリ (~) に入り、install.log の所有者を bin アカウントに変更します。

[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r-- 1 bin ユーザー 68495 6月25日 08:53 install.log

install.log の所有者とグループを root に戻します。

[root@www ~]# chown root:root インストール.log
[root@www ~]# ls -l
-rw-r--r-- 1 ルート ルート 68495 6月25日 08:53 install.log

3. chmod: 9 つのファイル属性を変更する

Linux ファイル属性を設定するには、数字とシンボルの 2 つの方法があります。

Linux ファイルには、所有者/グループ/その他という 9 つの基本的な権限があり、それぞれに読み取り/書き込み/実行権限があります。

先ほど述べたデータを見てみましょう。ファイルの権限文字は「-rwxrwxrwx」であり、これら 9 つの権限は 3 つずつのグループになっています。このうち、各権限は数字で表すことができ、各権限のスコア比較表は次のようになります。

r:4
w:2
x:1

各 ID (所有者/グループ/その他) の 3 つの権限 (r/w/x) のスコアを累積する必要があります。たとえば、権限が [-rwxrwx---] の場合、スコアは次のようになります。

所有者 = rwx = 4+2+1 = 7
グループ = rwx = 4+2+1 = 7
その他= --- = 0+0+0 = 0

したがって、後で権限の変更を設定すると、ファイルの権限番号は 770 になります。権限を変更する chmod コマンドの構文は次のとおりです。

chmod [-R] xyz ファイルまたはディレクトリ

オプションとパラメータ:

xyz: これは先ほど述べた数値の権限属性であり、rwx 属性値の合計です。

-R: 再帰的な変更を実行します。つまり、サブディレクトリ内のすべてのファイルが変更されます。

たとえば、.bashrc ファイルのすべての権限を有効にする場合、コマンドは次のようになります。

[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 ルート ルート 395 7月 4日 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 ルート ルート 395 7月 4日 11:45 .bashrc

権限を -rwxr-xr-- に変更したい場合はどうすればよいでしょうか?すると権威スコアは[4+2+1][4+0+1][4+0+0]=754になります。

ファイルの権限を変更する別の方法があります。前回の紹介から、基本的に 9 つの権限があることがわかります。

(1)ユーザー
(2)グループ
(3)その他

次に、u、g、o を使用して 3 つの ID の権限を表すことができます。

さらに、a は all を表し、すべての ID を意味します。読み取り権限と書き込み権限は r、w、x として記述でき、次の表を使用して表示できます。

ファイルの権限を -rwxr-xr-- に設定する必要がある場合は、chmod u=rwx,g=rx,o=r filename を使用して設定できます。

# touch test1 // test1 ファイルを作成# ls -al test1 // test1 のデフォルトの権限を表示 -rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r test1 // test1 の権限を変更します # ls -al test1
-rwxr-xr-- 1 ルート ルート 0 11月15日 10:32 test1

他の既存の権限を変更せずに権限を削除したい場合はどうすればよいでしょうか?たとえば、すべてのユーザーの実行権限を削除するには、次のようにします。

# chmod ax test1
# ls -al テスト1
-rw-r--r-- 1 ルート ルート 0 11月15日 10:32 test1

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux または Android でファイル システムを追加する属性インターフェイスを解析する方法
  • PythonはLinuxのファイル(フォルダ)の権限を変更します
  • Linux シェル - 識別によってファイル システム属性をテストする方法の例
  • Linux の crw、brw、lrw などのファイル属性は何ですか?
  • Linux でファイル属性を表示する詳細な例 (ls、lsattr、file、stat)
  • Linux rwxrwxrwt フォルダ属性についての簡単な説明

<<:  JSはアニメーションのレイアウト変換を実装します

>>:  MySQL は制限を使用してページング例メソッドを実装します

推薦する

MySQLのlike演算子の詳細

1. はじめに不明な値または部分的に既知の値をフィルタリングする場合は、like 演算子を使用でき...

CSS の border 属性と display 属性の使い方の簡単な分析

境界プロパティの概要borderプロパティは要素の境界を設定します。境界線の3要素は、太さ、線の種類...

dockercompose を使用して springboot-mysql-nginx アプリケーションをビルドする

前回の記事では、Docker を使用して、コンパイルされた jar パッケージをイメージに組み込む ...

HTMLでvueとel​​ement-uiを直接参照する方法

コードは次のようになります。 <!DOCTYPE html> <html> ...

startup.bat をダブルクリックすると Tomcat がクラッシュする問題の解決方法の詳細な説明

Tomcat を学習したばかりのプログラマーにとって、これはよくある間違いです。 1. 環境変数の問...

Typescriptを使用してWeChatミニプログラムでプロジェクトを作成する方法

プロジェクトを作成するWeChat開発者ツールでプロジェクトを作成し、言語でTypeScriptを選...

Vue diffアルゴリズムの完全な分析

目次序文Vue 更新ビューパッチ同じVノードパッチVノード更新子供序文Vue は仮想 DOM を使用...

vue cli3は環境ごとにパッケージ化の手順を実装します

cli3 でビルドされた vue プロジェクトは、ゼロ構成ファイルとして知られています。パッケージ化...

el-table のテーブルを最適化するために仮想リストを使用する方法についての簡単な説明

目次序文解決具体的な実装満たすべき前提条件質問序文テーブルをよく使用します。データ量が多い場合は直接...

CSS パフォーマンスの最適化 - will-change の使用方法の詳細な説明

will-change は、要素にどのような変更が行われるかをブラウザに伝え、ブラウザが事前に最適化...

MySQL のソートとページング (order by と limit) と既存の落とし穴

並べ替えクエリ (order by)電子商取引の場合: 今日完了したすべての注文を表示し、取引金額に...

HTMLのインライン要素とブロックレベル要素とは何か、またそれらの違いは何ですか

以前の就職面接で面接官が尋ねた質問を覚えています。「インライン要素とは何ですか。ブロックレベル要素と...

Typora コードブロックのカラーマッチングとタイトルシリアル番号実装コード

効果: タイトルには独自のシリアル番号があり、コードブロックには配色があり、コードブロックの左上隅に...

Tomcatc3p0 で jnid データ ソースを構成する 2 つの実装方法の分析

c3p0の使用c3p0jarパッケージをインポートする <!-- https://mvnrep...

vue3を使用して人間と猫のコミュニケーションアプレットを実装する

目次序文プロジェクトを初期化するデザインコードの実装オンデマンドロードオーディオを再生録音長押しイベ...