【読書メモ】Linux標準教科書（第7章〜第8章）

#はじめに
初学者が何より理解すべき、Linuxについて、『Linux標準教科書（PDF）』を読んだ要約をアウトプットします。今回は後半の第7章と第8章。

コマンド1個1個書くのはかなり時間取るので、いざ使う時になったら「ここに具体的な方法が書いてある！」というものを抜粋するのをメインとしてます。予めご了承ください。

#第7章　管理者の仕事
・Linuxを利用するには、ユーザアカウントが必要だが、グループを使えば複数のユーザを束ねることができる。
・グループとユーザを適切に設定することで、**ファイルやディレクトリ、任意のプログラムやシェルスクリプトなどを必要なユーザにのみ参照・編集する権限や実行権限を付与できる**。
・#になっているコマンドはroot権限でのみ可能で、$になっている物はユーザ権限でも実行可能

###ユーザの作成・変更・削除・グループの作成・削除など
・インストール時から用意されているユーザに加え、管理者が必要に応じてユーザを定義できる。ただし、リンクにあるコマンドは**Macでは適用されない模様**。

それぞれかなりできることが多いので、下記記事を参考に。

[【 useradd 】コマンド――新規ユーザーを作成する](https://www.atmarkit.co.jp/ait/articles/1811/02/news035.html)

[【 usermod 】コマンド――ユーザーアカウントの情報を変更する](https://www.atmarkit.co.jp/ait/articles/1612/14/news022.html)

[【 userdel 】コマンド――ユーザーを削除する](https://www.atmarkit.co.jp/ait/articles/1811/09/news031.html)

[【 groupadd 】コマンド――新規グループを作成する
](https://www.atmarkit.co.jp/ait/articles/1811/15/news025.html)

[【 groupmod 】コマンド――グループIDや名前を変更する
](https://www.atmarkit.co.jp/ait/articles/1811/22/news031.html)

[【 groupdel 】コマンド――グループを削除する
](https://www.atmarkit.co.jp/ait/articles/1811/16/news043.html)

[@markITさんのLinux検索表示画面](https://www.atmarkit.co.jp/ait/subtop/linux/)

###パスワード
・ユーザの権限を使うには、ユーザ名とパスワードを使って認証する。ユーザのパスワードを登録・変更するコマンドは、``passwd [ユーザ名]``で可能。
・シャドウファイル：ユーザのパスワードはパスワードファイルではなく、シャドウファイル（/etc/shadow）に保存される。シャドウファイルに登録された1つのユーザ（１行）の内容はこんな感じ。

```
account:password:last_changed:may_be_changed:warned:expires:disabled:reserved
```

|項目|内容|
|:-:|:-:|
|account|ユーザの名前|
|password|暗号化されたパスワード|
|last_changed|1970年1月1日から、最後にパスワードが更新された日までの日数|
|may_be_changed|パスワードが変更可能となるまでの日数|
|must_be_changed|パスワードを変更しなくてはならなくなるまでの日数|
|warned|パスワードの有効期限が来る前に、ユーザが警告を受ける日数|
|expires|パスワードが有効期限を過ぎ、アカウントが使用不能になるまでの日数|
|disabled|1970年1月1日からアカウントが使用不可になるまでの日数|
|reserved|予約フィールド|

###用意されているユーザとグループ
・グループを作るメリット：システム上にあるディレクトリのアクセス権を設定して、特定のグループに属したユーザのみアクセスできるディレクトリを作成するといった使い方や特定のグループに属しているユーザのみrootユーザになることができるといった運用が可能。
・rootユーザ：システム設定の変更やプログラムのインストールや削除、ユーザを作成・削除できる利用制限がない特別なユーザ


###suコマンド
suコマンドはすでに別のユーザでログインしているユーザが一時的に他のユーザになるためのコマンド。

```
su
su - [ユーザ]
オプション
su - (もしくは su - root)：rootユーザになれる
su - user 指定したユーザになれる
```

###sudoコマンド
・suコマンドでユーザをrootに切り替えることなくスーパーユーザ（root）権限でコマンドを実行できる。


#第8章　ユーザ権限とアクセス権
###ファイルの所有者と所有グループ
・ファイル作成者のユーザIDとグループIDがファイルの所有者と所有グループとなる。所有者はchownコマンドで変更でき、所有グループはchgrpコマンドで変更できる。

```
chown ユーザ[.　グループ]　ディレクトリ
chown ユーザ[.　グループ]　ファイル
chgrp グループ ディレクトリ
chgrp グループ ファイル
※変更する場合、rootユーザである必要がある
```

###ファイルとアクセス権
・ファイルは、ファイルを所有するユーザファイル所有グループからファイル所有者を除いたユーザその他のユーザの3つのレベルで権限を設定可能。
・ファイルにはユーザで分けた3つのレベルごとに**①読み②書き③実行**の3つの権限あり。
・``ls -l``コマンドで、ファイルのモードを含めて表示可能。例えば、こんな感じ。

```
$ ls -l
drwxr-xr-x@ 2 user  staff   64  7 30 09:46 test
drwxr-xr-x@ 4 user  staff  128  7 26 15:38 method
drwxr-xr-x@ 7 user  staff  224  7 29 21:37 practice
drwxr-xr-x@ 4 user  staff  128  7 24 15:52 繰り返し処理
```
・ファイル種別のr,w,xの意味は下記の通り。

|項目|内容|
|:-:|:-:|
|r|読み込み|
|w|書き込み|
|x|実行またはディレクトリの移動|
|rwx|3つとも可能|

アクセス権変更する場合は、下記の通り。

```
chmod モード[,　モード]...ディレクトリ
chmod モード[,　モード]...ファイル
chmod 8進数表記のモード　ディレクトリ
chmod 8進数表記のモード　ファイル
```

その他詳細は、こちらの記事が具体的でわかりやすかったので、共有

[chmod? chown? よくわからんって人のための、ファイル権限系まとめ
](https://qiita.com/t-a-run/items/239ed690ece7a011804a)

###ファイルの作成モード
・ファイルを新規に作成するとUSERごとに規定されたパーミッションである644もしくは664といったパーミッションが設定されてファイルが作成される。umaskコマンドを使うことで、指定したパーミッションでファイル作成するよう制限可能。

```
umask [8進数のモードのマスク値]
```

・ファイルモードという形で、パーミッションが設定される。詳細は下記リンク

[Linuxのファイルモードとは？ と変更方法
](https://eng-entrance.com/linux-permission-filemode)

[Linuxにおける「ファイルモード」と「パーミッション」とは？【初心者向け】
](https://linuxfan.info/filemode-and-permission#toc_id_1)

#参考資料

[【 useradd 】コマンド――新規ユーザーを作成する](https://www.atmarkit.co.jp/ait/articles/1811/02/news035.html)

[【 usermod 】コマンド――ユーザーアカウントの情報を変更する](https://www.atmarkit.co.jp/ait/articles/1612/14/news022.html)

[【 userdel 】コマンド――ユーザーを削除する](https://www.atmarkit.co.jp/ait/articles/1811/09/news031.html)

[【 groupadd 】コマンド――新規グループを作成する
](https://www.atmarkit.co.jp/ait/articles/1811/15/news025.html)

[【 groupmod 】コマンド――グループIDや名前を変更する
](https://www.atmarkit.co.jp/ait/articles/1811/22/news031.html)

[【 groupdel 】コマンド――グループを削除する
](https://www.atmarkit.co.jp/ait/articles/1811/16/news043.html)

[@markITさんのLinux検索表示画面](https://www.atmarkit.co.jp/ait/subtop/linux/)

[chmod? chown? よくわからんって人のための、ファイル権限系まとめ
](https://qiita.com/t-a-run/items/239ed690ece7a011804a)

[Linuxのファイルモードとは？ と変更方法
](https://eng-entrance.com/linux-permission-filemode)

[Linuxにおける「ファイルモード」と「パーミッション」とは？【初心者向け】
](https://linuxfan.info/filemode-and-permission#toc_id_1)