##はじめに
この記事はプログラミング初学者による備忘録用の記事であり、また、少しでも他の初学者のお役に立てればと思い書いています。
今回は、EC2で権限管理を統一するためのユーザー作成手順を学びましたので、すぐに復習できるよう記事にまとめておきたいと思います。
間違いなどがございましたら、ご指摘のほどよろしくお願い致します。
##権限管理用ユーザーの作成手順
~権限管理用ユーザーを作成する理由~
何故、権限管理用ユーザーを作成するかというと、アプリケーションの各ディレクトリと各ファイルの所有者やグループがrootであったり、パーミッションが777であると権限管理が不明確になってしまうので、権限管理を統一するためのユーザーを作成します。
下記にて、権限管理用ユーザーの作成手順をまとめておきます。
###1.ユーザー追加の準備
デフォルトのままユーザーを追加すると、ホームディレクトリの権限が700
で作成されます。
他のユーザーも対象ディレクトリを扱えるように権限を755
に変更します。
ターミナルでEC2にログイン後、下記のようにコマンドで/etcディレクトリ
のlogin.defs
をviで開きます。
$ sudo vi /etc/login.defs
viの起動後、UMASK
の設定を下記のように変更します。
# 略
# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK 022 //この行の077を022に変更
# 略
上記のUMASKを022
へ変更することにより、ユーザー追加時にそのホームディレクトリの権限が755
となります。
~補足:ファイル内容を誤った場合~
もしvi起動後の編集時に、ファイルの内容を誤った際は、以下の操作を行なってください。
1.escキーを押して、インサートモードを終了します
2.:q!
と入力してエンターキーを押すことで、ファイルを保存せずにviを終了します
その後、改めてviを起動してファイルを編集してください。
###2.ユーザーの追加
下記のコマンドを実行してユーザーを追加していきます。
$ sudo useradd username
次に、追加できたかどうかを確認するために下記コマンドを実行します。
$ id username
//実行結果(追加成功例)
uid=1001(username) gid=1001(username) groups=1001(username)
最後に、追加したユーザーのホームディレクトリ権限を下記のコマンドを実行して確認します。
$ ls -l /home
//実行結果
drwx------ 6 ec2-user ec2-user 138 9月 16 09:30 ec2-user
drwxr-xr-x 6 username username 158 9月 21 10:28 username
上記のように、作成したusernameのディレクトリ権限(左から2桁目以降)がrwxr-xr-x(755)
となっていれば大丈夫です。
###3.作成ユーザーへの切り替え方法
先ほど作成した追加ユーザーに切り替える場合は下記コマンドを入力します。
$ sudo su - username
//実行結果
[username@ip-xxx-xxx-xxx-xxx ~]$
上記のように、ターミナルに切り替え対象となるユーザー名が表示されていれば切り替えは成功しています。
コマンド説明
・su
su(substitute user)コマンドは、ログインし直さずに他のユーザーに切り替えるコマンドです。通常はrootユーザーの権限でシェルを動かし、様々なコマンドを実行したい場合に使用します。
要するに、suコマンド実行以降は、全てのコマンドがrootユーザーとして実行されます。プログラムのインストールやアップデートなど、root権限が必要なコマンドを実行する際に使用します。
rootユーザー権限を解除する際は、exitコマンド
を使用します。
元のユーザーに戻るのが面倒な場合、特定のコマンドだけrootユーザーで実行できる「-c」オプションを使うことで、元のユーザーに戻るのを忘れてしまうようなトラブルを避けることができます。
・-
-
をつけることで、切り替えたユーザーのホームディレクトリに移動することができます。
##補足
###・umaskとは
umaskは新規ファイルや新規ディレクトリの作成時のパーミッションを設定したり、ファイル属性を確認できるLinuxコマンドです。
例えば、下記の例のように新規ファイルや新規ディレクトリを作成した際に、設定するファイル属性を確認できます。
使用例:
$ umask
//実行結果
0022
実行結果は、3桁or4桁の数値で表示され下三桁を確認することでファイル属性がわかり、1文字目が所有者、2文字目がグループ、3文字目がゲストユーザーの設定となっています。
###パーミッション数値
ファイルに与えるパーミッションの属性は下記の4種類です。
英 | 数 | 意味 |
---|---|---|
r | 4 | 読み込み可能 |
w | 2 | 書き込み可能 |
x | 1 | 実行可能 |
- | 0 | 許可なし |
上記を組み合わせることで、様々なパーミッションを与えることが可能となります。 |
組み合わせ例
数値 | 組み合わせ | 権限 | 英字 |
---|---|---|---|
7 | 4 + 2 + 1 | 読・書・実行 | rwx |
6 | 4 + 2 | 読・書 | rw- |
5 | 4 + 1 | 読・実行 | r-x |
4 | 4 | 読 | r-- |
3 | 2 + 1 | 書・実行 | -wx |
2 | 2 | 書 | -w- |
1 | 1 | 実行 | --x |
0 | 0 | なし | --- |