Windowsユーザーが最も意味不明なのが、本記事の内容だと思います。
「chown とか -rx-rr-rx とか見たくなーい!」って思っている人、多いんじゃないでしょうか。
でも、Linuxで環境構築する上では避けては通れないんですよね。
一度しっかり勉強しておく必要がありそうです。
ユーザーとは?
useraddでユーザーを作成する
構文
useradd -m [ユーザー名]
例
$ sudo useradd -m noric
# 作成したユーザーのホームディレクトリが作成されていることを確認
$ ls -l /home
合計 0
drwx------ 3 ec2-user ec2-user 146 7月 17 02:17 ec2-user
drwx------ 2 noric noric 62 7月 17 03:00 noric
noric というユーザーをuseraddで作成した。そのため、自動で /home/noric が作成され、オーナーが作成したnoricになっている。
オプション | 説明 |
-m | ホームディレクトリを作成する |
-g | 所属するグループを指定する |
-p | ログイン時のパスワードを指定する |
Linuxユーザーの一覧を表示する
コマンドとしては存在しないが、/etc/passwdを見ることで、ユーザーの一覧を得ることができる。
$ useradd -m noric
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
ec2-user:x:1000:1000:EC2 Default User:/home/ec2-user:/bin/bash
noric:x:1001:1001::/home/noric:/bin/bash
whoコマンドで現在ログインしているユーザーを表示する
例
[ec2-user@ip-172-31-47-3 ~]$ who
ec2-user pts/0 2021-07-17 01:37 (ad016218.dynamic.ppp.asahi-net.or.jp)
オーナー(所有者)とは?
Linuxでは、全てのファイルやコマンドにオーナー(所有者)が設定されている。オーナーは、ファイルへのアクセス権限(誰に、どのような操作を許可するか)を自由に設定できる。
ls -l で、ファイルのパーミッションとオーナーを確認する
構文
ls -l
例
[ec2-user@ip-172-31-47-3 ~]$ ls -l
合計 952
-rw-r--r-- 1 ec2-user ec2-user 974718 7月 17 01:26 hoge.png
↑オーナー ↑グループ
グループとは?
Linuxでは、ユーザーのまとまりをグループという。
- ユーザーは1つ以上のグループに必ず属する。
- ユーザー作成時にグループを指定しないと、ユーザー名と同じグループ名に属する。
グループの一覧を確認する
グループの一覧のみ表示するコマンドはないが、/etc/groupを表示することで、グループの一覧を得られる。
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
...
ec2-user:x:1000:1000:EC2 Default User:/home/ec2-user:/bin/bash
noric:x:1001:1001::/home/noric:/bin/bash
groupsコマンドで、自分が所属するグループを確認する
構文
groups
例 EC2のec2-userの場合
[ec2-user@ip-172-31-47-3 ~]$ groups
ec2-user adm wheel systemd-journal
chmodコマンドでファイルモード(パーミッション)を設定する
構文
chmod [ugoa][+-=][rwx] [ファイル名]
[ugoa] uはオーナー、gはグループ、oはその他のユーザー、aはugo全て。
[+-=] +は許可する、-は禁止する、=は[rwx]で上書きする
[] rは読み込み、wは書き込み、xは実行
構文
chmod [オーナーのパーミッション][グループのパーミッション][その他ユーザーのパーミッション]
各ユーザーのパーミッションは、rwxを足し算した数値で表す。
rを許可する=4、wを許可する=2、xを許可する=1
全ユーザーに全て許可 777
オーナーの読み書きのみ許可 600
ユーザーの切り替え
suコマンドでrootユーザーになる
suコマンドは一般的には別のユーザーに切り替えるためのコマンドですが、rootユーザーになるために使用することが多いです。
例1 rootユーザーになる
$ su
パスワード:
例2 環境変数もホームディレクトリも含めてrootユーザーになる
$ su -
パスワード:
su - のハイフン付きの方が技術ブログではよく見かけます。
ハイフンを付けると、環境変数もrootユーザーのものがセットされ、rootユーザーのホームディレクトリに移動するため、より本物のrootユーザーのようになれます。
例3 別のユーザーになる
$ su - [ユーザー名]
パスワード:
上記のように、ユーザー名を指定することで、root以外の別のユーザーになることもできます。ただし、パスワードを知っておく必要があります。
sudoコマンドでrootユーザーとして実行する
個別ユーザーにはパーミッションが許可されていないコマンドでも、rootユーザーなら実行できます。
sudo = superユーザーとしてdoするという意味でしょうか。
$ cat /etc/shadow
cat: /etc/shadow: Permission denied
$ sudo cat /etc/shadow
suとsudoのどちらを使うべきか?
現在ではsudoがよく使われるようです。
suでは明示的にexitするまでrootユーザーとしてコマンド実行できますが、小さなミスが致命的なミスになることがあるため、安全上の理由からsudoが良いようです。
AWSでの環境構築で手間取ることはありませんか?環境構築にはLinuxの基礎知識が不可欠だと悟り、私はこの本でLinuxを勉強し直しました。