1.ファイルのアクセス許可とディレクトリ構成
1.ユーザータイプ
(1)ファイルの所有者
(2)ユーザーグループ
(3)その他
(4)最高の権限を持つrootユーザー
rootユーザーに切り替えます:suコマンド
ユーザー情報は/ etc / passwdに記録されます個人パスワードは/ etc / shadowに記録されますグループ名は/ etc / groupに記録されます
2.ファイルのアクセス許可
(1)ファイル属性
例:ls-alコマンドで取得した情報
-rw-r–r--。1ルートルート18645月4日18:01initial-setup-ks.cfg
ファイルタイプ許可リンク数ファイル所有者ファイルユーザーグループファイルサイズファイル最終変更時刻ファイル名
最初の列は、ファイルのアクセス許可の種類を表します。
-Rwxrwx—
ファイルのアクセス許可の種類は10文字で構成されています
最初の文字は、ファイルがディレクトリ、ファイル、またはリンクファイルであることを示します。
- dはディレクトリ、-はファイル、lはリンクファイル、bはデバイスファイルに保存できる周辺機器、cはシリアルポートデバイスです。
次の文字では、3つはグループであり、すべて[rwx]の3つのパラメーターの組み合わせです。
- rは読み取り可能、wは書き込み可能、xは実行可能を表します
- 許可の位置は変更されません。許可がない場合は、記号-
- 最初のグループは、ファイル所有者が持つことができる権限です
- 2番目のグループは、このユーザーグループアカウントに参加するための権限です
- 3番目のグループは非自己であり、このユーザーグループの他のアカウントに参加する権限がありません(その他)
2番目の列は、ノードにリンクされているファイル名の数を表します
3番目の列は、このファイル(またはディレクトリ)の所有者のアカウントを表します
4番目の列は、このファイルが属するユーザーグループを示します
5番目の列はファイルのサイズで、デフォルトの単位はバイトです。
6番目の列は、このファイルの作成日または最新の変更日です。
7列目はファイル名です
- ファイル名の前にもう1つある場合、それはファイルが隠しファイルであることを意味します
ファイルパーミッションの重要性:
- システム保護機能
- チーム開発ソフトウェアまたはデータ共有機能
- 安全性
(2)ファイルのパーミッションと属性を変更する
chgrp:ファイルが属するユーザーグループを変更します
chgrp [-R] dirname/filename ...
参数:
-R : 进行递归( recursive )的持续变更,亦即连同次目录下的所有档案、目录都更新成为这个群组之意。常常用在变更某一目录的情况。
范例:
[root@linux ~]# chgrp users install.log
[root@linux ~]# ls -l
-rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log
[root@linux ~]# chgrp testing install.log
chgrp: invalid group name `testing' <== 发生错误讯息啰~找不到这个群组名~
chown:ファイルの所有者を変更します
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:用户组名称 文件或目录
参数:
-R : 进行递归( recursive )的持续变更,亦即连同次目录下的所有档案、目录都更新成为这个群组之意。常常用在变更某一目录的情况。
范例:
[root@linux ~]# chown bin install.log
[root@linux ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
[root@linux ~]# chown root:root install.log
[root@linux ~]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
chmod:ファイルのパーミッションを変更する
Linuxファイルには、所有者、ユーザーグループなど、9つの基本的なアクセス許可があります。3つのIDにはそれぞれ、独自の読み取り、書き込み、および実行があります。
各機関の数は次のとおりです。
- r:4
- w:2
- x:1
各IDの3つの権限番号は累積されます。
例:属性が[-rwxrwx—]の場合
所有者= rwx = 4 + 2 + 1 = 7
所属するユーザーグループ= rwx = 4 + 2 + 1 = 7
その他= — = 0 + 0 + 0 = 0
したがって、アクセス許可を設定すると、ファイルのアクセス許可番号は770になります。
chmodコマンドの構文は次のとおりです。
chmod [-R] xyz 档案或目录
参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归( recursive )的持续变更,亦即连同次目录下的所有档案、目录
都更新成为这个群组之意。常常用在变更某一目录的情况。
例子:如果要将 .bashrc 这个档案所有的属性都打开,那么就下达:
[root@linux ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@linux ~]# chmod 777 .bashrc
[root@linux ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
属性が「-rwxr-xr--」に変更された場合はどうなりますか?すると[4+ 2 + 1] [4 + 0 + 1] [4 + 0 + 0] = 754になるので、chmod754ファイル名を発行する必要があります。
変更する別の方法:
- 3つのID(所有者ユーザー、ユーザーグループグループ、およびその他の人々)は、文字u、g、o、および文字aのすべてのID(すべて)に対応します。
- 許可はr、w、xと書くことができます
- 記号を使用する権限を追加します+
- 許可記号を削除する-
- 記号を使用する権限を設定する=
例:特定のファイルのアクセス許可を[-rwxr-xrx]に設定するには:
ユーザー:読み取り、書き込み、実行の権限があります
グループおよびその他:読み取りおよび実行のアクセス許可があります
[root@linux ~]# chmod u=rwx,go=rx .bashrc
# 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格符!
[root@linux ~]# ls -al .bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
それで「-rwxr-xr--」なら?「chmodu = rwx、g = rx、o = rfilename」で設定できます。
ファイルの元の属性がわからない場合は、誰でも書き込むことができる権限を追加するだけです。
root@linux ~]# ls -al .bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
[root@linux ~]# chmod a+w .bashrc
[root@linux ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
たとえば、他の既存のアクセス許可を変更せずにアクセス許可を削除する場合は、すべてのユーザーの実行可能アクセス許可を削除します。
[root@linux ~]# chmod a-x .bashrc
[root@linux ~]# ls -al .bashrc
-rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc
(3)ディレクトリとファイルのアクセス許可の意味
ファイルパーミッションの意味:
- r:このファイルの実際の内容を読み取ることができます
- w:ファイルの内容を編集、追加、または変更できます(ただし、ファイルを削除することはできません)
- x:ファイルにはシステムで実行できる権限があります
ディレクトリ権限の意味:
- r:ディレクトリ構造リストを読み取る権限があることを意味し、ディレクトリ内のファイル名データを照会でき、lsコマンドを使用してディレクトリのコンテンツリストを表示できます。
- w:ディレクトリ構造のリストを変更する権限を示します:新しいファイルとディレクトリの作成、既存のファイルとディレクトリの削除、既存のファイルまたはディレクトリの名前の変更、ディレクトリ内のファイルとディレクトリの場所の移動
- x:ユーザーがディレクトリに入り、作業ディレクトリになることができるかどうかを表します
(4)Linuxファイルの種類と拡張子
ファイルの種類
- 通常のファイル:最初の記号は-です。含む:プレーンテキストファイル(ASCLL)、バイナリファイル(バイナリ)、データファイル(データ)
- ディレクトリ:最初の記号はdです。
- リンクファイル:最初の属性はlで、Windowsシステムのショートカットに似ています。
- 機器および機器ファイル:通常は/ devディレクトリに集中しています。ブロックデバイスファイル:最初の属性はbで、システムのランダムアクセス用のインターフェイスデバイスを提供します。文字デバイスファイル:最初の属性はc、シリアルポートのインターフェイスデバイスです
- インターフェイスデータファイル:最初の属性はsです。これは通常、インターネットでのデータ交換に使用され、通常は/ tmpまたは/ runにあります。
- データ転送ファイル:最初の属性はpです。これは主に、複数のプログラムが同時にファイルを読み書きすることによって引き起こされるエラーの問題を解決するために使用されます。
Linuxファイル拡張子
- LInuxファイルにはいわゆる拡張子はありません。Linuxプログラムを実行できるかどうかは、その最初の列の10個の属性に関連しており、ファイル名とは関係ありません。パーミッションにxが含まれている限り、ファイルを実行できることを意味します。
Linuxファイル名の長さの制限
- 1つのファイルまたはディレクトリの最大許容ファイル名は255バイトであり、ASCII英語が1バイトを占める場合、最大255文字の長さにすることができます。各漢字が2バイトを占める場合、最大ファイル名は約128漢字です。
Linuxファイル名の制限
- 特殊文字は避けてください
* ? > < ; & ! [ ] | \ ' " ` ( ) { }
- 同時に、-または+で始めるのは避けるのが最善です
3.Linuxディレクトリ構成
(1)Linuxディレクトリ構成の基礎-FHS
目的:インストールされたソフトウェアが通常どのディレクトリに配置されているかをユーザーが理解できることを願っています
実際、ルートディレクトリ(/)の下のメインディレクトリに配置するディレクトリの種類を指定するだけです。FHSは、次の2つのレベルの仕様を定義しています。
- 最初のレベルは/(ルートディレクトリ:システム起動システムに関連)で、どの種類のファイルデータを各ディレクトリの下に配置する必要があります。
- 2番目のレベルは、2つのディレクトリ/ usr(unixソフトウェアリソース:ソフトウェアのインストールと実行に関連)と/ var(変数:システム実行プロセスに関連)のサブディレクトリに対して定義されます。
FHSによって定義された4種類のディレクトリ相互作用:
- 共有可能:他のシステムと共有して、ディレクトリをマウントして使用できます
- 共有不可:自分のマシンで動作するプログラムに関連するデバイスファイルまたはソケットファイルは自分のマシンにのみ関連しているため、もちろん他のホストとの共有には適していません
- 変数:ログインファイル、一般ユーザーが自分で受信できるニュースグループなど、頻繁に変更されるデータ。
- 変更不可:一部のデータは頻繁に変更されず、変更せずに分布に従います。たとえば、関数ライブラリ、ファイル記述ファイル、システム管理者が管理するホストサービス構成ファイルなどです。
ルートディレクトリの意味と内容(/)
システム起動システムに関連する
重要性:ルートディレクトリは、システム全体で最も重要なディレクトリです。これは、すべてのディレクトリがルートディレクトリから派生しているだけでなく、ルートディレクトリがブート/復元/システム修復やその他のアクションにも関連しているためです。
FHSの推奨事項:ルートディレクトリが配置されているパーティションは小さいほど良いです。アプリケーションによってインストールされるソフトウェアは、ルートディレクトリと同じパーティションに配置しないでください。これにより、パフォーマンスが向上するだけでなく、ファイルも向上します。ルートディレクトリが配置されているシステムでは、問題が発生しにくくなります。
FHSでは、ディレクトリが存在している必要があります。
-
/ bin:シングルユーザーメンテナンスモードで操作できる命令を配置します
-
/ boot:商談を開始するために使用されるファイルを配置します
-
/ dev:配置されたデバイスファイル。このディレクトリ内のファイルにアクセスすることは、デバイスにアクセスすることと同じです。
-
/ etc:システムの主な構成ファイルを配置します
-
/ home:これはシステムのデフォルトのユーザーホームフォルダです。ホームフォルダには2つのコードがあります。〜は現在のユーザーのホームフォルダを表し、〜boatmanはユーザーboatmanのホームフォルダを表します。
-
/ lib:多くのシステム関数があり、/ libは、システムの起動時に使用される関数ライブラリと、/ binまたは/ sbinの下のコマンドによって呼び出される関数ライブラリを配置します。/に特に注意してください。 lib / modulesディレクトリ、カーネル関連のモジュール(ドライバ)はその下に配置されます
-
/ media:削除可能なデバイスに対応するファイルが配置されます。これには、CD、DVD、およびその他のデバイスが一時的にここにマウントされます。
-
/ mnt:いくつかの追加デバイスを一時的にマウントする場合は、通常、このディレクトリに配置することをお勧めします。初期の頃は、このディレクトリの目的は/ mediaと同じです!/ mediaを使用した後でのみ、これはディレクトリは一時的なマウントに使用されます
-
/ opt:サードパーティのソフトウェアインストールディレクトリ(ただし、以前のLinuxシステムでは、/ usr / localディレクトリに配置するために引き続き使用されます)
-
/ root:システムスーパーアドミニストレーター(root)のホームフォルダー(ここに配置される理由は、シングルユーザーメンテナンスモードに入り、ルートディレクトリのみをマウントすると、ルートディレクトリにルートホームフォルダーを含めることができるためです。したがって、(ルートのホームフォルダとルートディレクトリが同じパーティションに配置されることを願っています)
-
/ sbin:システムの起動、修復、復元に必要なコマンドを含む、起動プロセス中に必要なコマンドを配置します。
一部のサーバーソフトウェアプログラム
については、ローカルインストールと同様に通常/ usr / sbin /に配置されます。ソフトウェアによって生成されたシステム実行可能ファイル(システムバイナリ)は、/ usr / local / sbin /に配置されます。 -
/ srv:srvは、「service」の略語と見なすことができます。これは、一部のネットワークサービスの開始後にこれらのサービスがアクセスする必要のあるデータディレクトリです(たとえば、WWWサービスに必要なWebページデータは/ srv /に配置できます)。 www /)
-
/ tmp:システム一時プログラム、データディレクトリ
-
/ usr:ソフトウェアのインストールと実行に関連
-
/ var:システムの実行中のプロセスに関連します
FHSで定義されていないカタログも非常に重要です。
- / lost + found:このディレクトリは、標準のext2 / ext3 / ext4ファイルシステム形式が使用されている場合にのみ生成されるディレクトリです。目的は、ファイルシステムでエラーが発生したときに、不足しているフラグメントをこのディレクトリに配置することです。 xfsファイルシステムの場合、このディレクトリは存在しません
- / proc:このディレクトリ自体は仮想ファイルシステムです。配置するデータは、システムカーネル、プロセス情報、外部デバイスのステータス、ネットワークステータスなど、すべてメモリ内にあります。このディレクトリの下のデータはメモリ内にあるため、ハードディスク領域を占有しません。
- / sys:このディレクトリは実際には/ procと非常によく似ており、主にカーネルに関連する情報を記録する仮想ファイルシステムでもあります。現在ロードされているカーネルモジュールや、カーネルによって検出されたハードウェア設定情報などが含まれます。このディレクトリもハードディスク容量を占有しません
/ usrの意味と内容
ソフトウェアのインストールと実行に関連する
/ usrに配置されたデータは共有可能で不変(共有可能、静的)です。ネットワーク(NFSサーバー)を介してパーティションをマウントする方法を知っている場合、/ usrは実際にローカルエリアネットワークの他の部分と共有できます。使用する
FHSの推奨事項:ソフトウェア開発者は、ソフトウェア用に独自の独立したディレクトリを作成するのではなく、このディレクトリのサブディレクトリにデータを個別に配置する必要があります。
FHSでは、ディレクトリが存在している必要があります。
- / usr / bin /一般ユーザーが使用できるすべてのコマンドがここに配置されています。現在、新しいCentOS 7ではすべてのユーザーコマンドがここに配置されており、ファイルをリンクするパラダイムを使用して/ binをこれにリンクしています。つまり、/ usr / binと/ binはまったく同じです。さらに、FHSでは、このディレクトリの下にサブディレクトリがないことが必要です。
- / usr / lib /:基本的に/ libと同じ機能なので、/ libはこのディレクトリにリンクされています
- / usr / local:システム管理者は、このマシンにソフトウェア(非リリースバージョンでデフォルトで提供されます)をインストールします。管理しやすいこのディレクトリにインストールすることをお勧めします。
- / usr / sbin /:システムの通常の操作に必要のないシステムコマンド。最も一般的なものは、一部のWebサーバーソフトウェアのサービスコマンド(デーモン)です。ただし、基本的な機能は/ sbinに似ているため、現在/ sbinはこのディレクトリにリンクされています
- / usr / share /:共有ファイルを含む読み取り専用データファイルを主に保存します。このディレクトリに配置されるデータは、ハードウェアアーキテクチャに関係なく、ほとんど読み取り可能なデータです。このディレクトリの下の一般的なサブディレクトリ:/ usr / share / doc:ソフトウェアドキュメント; / usr / share / man:オンラインヘルプドキュメント; / usr / share / zoneinfo:タイムゾーンに関連するタイムゾーンファイル
/ varの意味と内容
システム運用プロセス関連
/ varディレクトリは、主にキャッシュ、ログファイル、一部のソフトウェア操作など、頻繁に変更されるファイル用であるため、システムの実行後にハードディスクの容量を徐々に占有するディレクトリです。プログラムを含むファイルファイル(ロックファイル、実行ファイル)、またはMySQLデータベースなどのファイル。
FHSでは、ディレクトリが存在している必要があります。
- / var / cache /:アプリケーション自体の操作中に生成される一部のキャッシュ
- / var / lib /:プログラム自体の実行中に使用する必要のあるデータファイルが配置されるディレクトリ。各ソフトウェアには、このカタログの下に独自のカタログが必要です。
- / var / lock /:一部の機器またはファイルリソースは、一度に1つのアプリケーションプログラムでしか使用できません。2つのプログラムが同時にデバイスを使用すると、エラー状態が発生する可能性があるため、デバイスロック(ロック)をインストールする必要があります。 )デバイスが単一のソフトウェアによってのみ使用されるようにするため。
- / var / log /:非常に重要です。これはログファイルが配置されるディレクトリです。その中のより重要なファイルは/var.log.messages、/ var / log / wtmp(ログインレコード情報)などです。
- / var / mail /:個人の電子メールメールボックスが配置されるディレクトリですが、このディレクトリも/ var / pool / mail /ディレクトリに配置されます!通常、これら2つのディレクトリは相互にリンクされたファイルです。
- / var / run /:いくつかのプログラムまたはサービスが開始された後、それらのPIDはこのディレクトリに配置されます
- / var / pool /:このディレクトリには通常、いくつかのキューデータが含まれています。いわゆるキューは、他のプログラムで使用するためにキューに入れられたデータです。これらのデータは通常、使用後に削除されます。
スケジュールされたタスクデータ(crontab)の場合は、/ var / pool / cron /ディレクトリに配置されます。
(2)ディレクトリツリー
Linuxでは、すべてのファイルとディレクトリは、すべてのディレクトリとファイルのソースであるルートディレクトリ/から始まり、ツリーブランチのように1つずつ分岐します。したがって、このタイプのディレクトリ構成をディレクトリツリーとも呼びます。
特性:
- ディレクトリツリーの開始点はルートディレクトリ(/、root)です。
- 各ディレクトリは、ローカルパーティションのファイルシステムだけでなく、ネットワーク上のファイルシステムも使用できます。
- このディレクトリツリー内の各ファイルのファイル名(フルパスを含む)は一意です。
例:CentOSのルートディレクトリにあるデータ
[lqq@localhost ~]$ ls -l /
总用量 32
lrwxrwxrwx. 1 root root 7 2月 4 12:08 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 2月 19 11:01 boot
drwxr-xr-x. 4 root root 28 2月 17 19:14 data
drwxr-xr-x. 20 root root 3380 2月 20 11:40 dev
drwxr-xr-x. 141 root root 8192 2月 20 11:40 etc
drwxr-xr-x. 5 root root 41 2月 20 11:55 home
lrwxrwxrwx. 1 root root 7 2月 4 12:08 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 2月 4 12:08 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 4月 11 2018 media
drwxr-xr-x. 3 root root 18 2月 6 20:31 mnt
drwxr-xr-x. 5 root root 46 2月 4 12:37 opt
dr-xr-xr-x. 244 root root 0 2月 20 11:39 proc
dr-xr-x---. 10 root root 4096 2月 20 11:46 root
drwxr-xr-x. 43 root root 1320 2月 20 11:45 run
lrwxrwxrwx. 1 root root 8 2月 4 12:08 sbin -> usr/sbin
drwxr-xr-x. 4 root root 71 2月 19 11:01 srv
dr-xr-xr-x. 13 root root 0 2月 20 11:39 sys
drwxrwxrwt. 52 root root 8192 2月 20 12:10 tmp
drwxr-xr-x. 13 root root 155 2月 4 12:08 usr
drwxr-xr-x. 20 root root 282 2月 4 12:18 var
(3)相対パスと絶対パス
絶対パス:ルートディレクトリ(/)から書き込まれたファイル名またはディレクトリ名(例:/home/dmtsai/.bashrc)
相対パス:ファイル名は、現在のパスを基準にして書き込まれます。例:/ home / dmtsaiまたは... / ... / home / dmtsai /
/で始まらない、相対パスの書き込みに属します
2つの特別なディレクトリ:
- 。:現在のディレクトリを表し、。/で表すこともできます。
- …:上位レベルのディレクトリを表し、…/で表すこともできます。
例:現在/ homeディレクトリにいます。/var/logディレクトリに入る場合、どのように記述できますか?
- cd / var / log
- cd…/ var / log