" />

スポンサーリンク

Linux

Linuxのユーザー、パーミッション、オーナー

投稿日:

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ログイン時のパスワードを指定する
useraddコマンドのオプション

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を勉強し直しました。

スポンサーリンク

-Linux

Copyright© ノリックジオグラフィック for Webエンジニア , 2022 All Rights Reserved Powered by AFFINGER5.