Linuxの権限確認・変更とスーパーユーザ

job_illustrator_pc_woman-e ※Web開発
Linuxの権限確認・変更とスーパーユーザ - Qiita
ファイルのオーナーとグループcatコマンド(既存コマンド)のオーナーの確認$ ls -l /bin/cat-rwxr-xr-x 1 root root 54160 Nov 30 15:16 /…

ファイルのオーナーとグループ

catコマンド(既存コマンド)のオーナーの確認

$ ls -l /bin/cat
-rwxr-xr-x  1 root root 54160 Nov 30 15:16 /bin/cat

最初のrootはファイルの所有者、2つ目のrootはファイルが所属するグループを意味します。
/bin/catファイルは、rootユーザがオーナーで、rootグループに属しています。

新規作成したファイルのオーナーの確認

$ touch test.txt
$ ls -l test.txt
-rw-rw-r--  1 banri banri 54160 Nov 30 15:16 test.txt

以上の例では、test.txtというファイルを作成し、そのオーナーを確認しています。
→ユーザbanriがファイルを作成したため、banriがオーナーになっています。

グループ

グループとは、ユーザの集合を意味します。
自分がどこにグループに属しているかは以下のコマンドで確認できます。

$ groups
banri wheel

banriはbanriwheelというグループに属しています。

ファイル権限(パーミッション)確認

ファイルタイプ

$ ls -l /bin/cat
-rwxr-xr-x  1 root root 54160 Nov 30 15:16 /bin/cat

もう1度、catコマンドの例を挙げます。-rwxr-xr-xの箇所に注目です。
一番左の-はファイルタイプの一種で、ファイルを意味します。以下はファイルタイプとそれらの意味となる対応表です。

ファイルタイプ意味
ファイル
dディレクトリ
lシンボリックリンク

ファイルタイプを除いた部分rwxr-xr-xの部分に注目です。
これら9文字はファイルモードを意味し、rwxr-xr-xと3文字ごとのブロックに分けられます。
catコマンドでは、以下のようになります。

オーナーグループその他ユーザ
rwxr-xr-x

ファイル権限の記号と意味は以下のようになります。

記号意味
r読み取り(read)
w書き込み(write)
x実行(execute)

なお、-となっているところは、権限がないという意味です。
そして、ファイル権限の記号はディレクトリ関しにも同様です。

記号意味
r読み取り→ディレクトリに含まれるファイル一覧取得
w書き込み→ディレクトリ下にあるファイル・ディレクトリの作成・削除
x実行(execute)→ディレクトリをカレントディレクトリにする

ファイル権限(パーミッション)変更

ファイル権限の変更方法は以下の2つです。

1.シンボルモード

シンボルモードは、変更対象にどのような権限を追加・禁止するかが明確です。

chmod [ugoa]  [+-=]  [rwx]  <file name>
    ------  -----  -----  -----------
      変更対象  演算子   権限   ファイル名

変更対象はそれぞれ以下のような意味になります。

記号意味
uユーザ(=オーナー)(user)
gグループ(group)
oその他(others)
aすべて(all)

演算子はそれぞれ以下のような意味になります。

記号意味
=指定した権限と等しくする
+権限を付与する
権限を禁止する

先ほど、作成したtest.txtのファイルの権限を変更してみます。オーナーやグループと同様に、その他ユーザへファイルの書き込み権限を付与します。

$ ls -l test.txt
-rw-rw-r--.  1 banri banri 54160 Nov 30 15:16 test.txt
$ chmod o+w test.txt
$ ls -l test.txt
-rw-rw-rw-.  1 banri banri 54160 Nov 31 02:16 test.txt

その他ユーザの権限r--rw-に変更されましたね。

次に、グループのファイルへの書き込み権限を禁止します。

$ ls -l test.txt
-rw-rw-rw-.  1 banri banri 54160 Nov 31 02:16 test.txt
$ chmod g-w test.txt
$ ls -l test.txt
-rw-r--rw-.  1 banri banri 54160 Nov 31 02:17 test.txt

グループの権限rw-r--に変更されましたね。

複数のユーザの権限を一括指定する場合は以下のようにします。

$ ls -l test.txt
-rw-rw-rw-.  1 banri banri 54160 Nov 31 02:17 test.txt
$ chmod ug=x test.txt
$ ls -l test.txt
---x--xrw-.  1 banri banri 54160 Nov 31 02:18 test.txt

2.数値モード

chmod <8進数の数値> <file name>
数字意味
4読み取り(read)
2書き込み(write)
1実行(e x ecute)

権限は以上の8進数の足し算で決定できます。例えばrwxr-xr-xのような権限を一括指定したい場合は以下のようになります。権限の一括指定には、シンボルモードより数値モードの方が利用されるそうです。私も権限設定で「700」や「754」などをよく使用します。

オーナーグループその他ユーザ
rwxrw-r-x
4+2+14+24+1
765

以上のように、それぞれの足し算の結果を繋げた765が権限の数値となります。 

$ ls -l test.txt
-rwxr-xrw-.  1 banri banri 54160 Nov 31 02:17 test.txt
$ chmod 765 test.txt
$ ls -l test.txt
-rwxrw-r-x.  1 banri banri 54160 Nov 31 02:18 test.txt

スーパーユーザ

スーパーユーザは、あらゆる権限が付与されたユーザのことで、システムの設定ファイルの変更やアプリケーションをインストールする権限を持っています。rootユーザとも呼ばれています。スーパーユーザに対して、ユーザbanriなどは一般ユーザに分類されます。以下はスーパーユーザになる方法とスーパーユーザで実行する方法です。

1.スーパーユーザになる – suコマンド

[banri@localhost]$ su
Password:
[root@localhost]#

一般ユーザからスーパーユーザになる(ログインする)と、プロンプトが$から#に変更されます。

[root@localhost]# exit
exit
[banri@localhost]$

スーパーユーザから一般ユーザに戻る(ログアウトする)には、exitコマンドを入力します。プロンプトが#から$に戻りました。

2.スーパーユーザで実行する – sudoコマンド

sudoは設定ファイルを実行したい時やアプリケーションをインストール・起動したい時など、アプリケーションのインストール・起動などに利用されます。以下は、sudoを使用したnginxのインストールと起動に関するコマンドです。

# nginxをインストール
$ sudo yum install nginx

# nginxを起動
$ sudo systemctl start nginx
タイトルとURLをコピーしました