LoginSignup
0
0

More than 3 years have passed since last update.

Linux覚え書きユーザ管理

Last updated at Posted at 2021-03-14

概要

Linux学習で覚えたコマンドや知識をメモする記事です。
コマンドはLinux覚え書きコマンド集にまとめています

ユーザ管理

グループとユーザを適切に管理することで、ファイルやプログラムなどを必要なユーザのみ参照・編集する権限を与えることが出来ます。
グループやユーザの編集を行う場合は、管理者であるrootユーザで実行する必要があります。

# で始まる場合はroot権限
$ で始まる場合は一般ユーザ

ユーザ

ユーザは/etc/passwdに定義されている。基本はコマンドで編集する。

パスワードファイルの内容

/etc/passwd
account:password:UID:GID:GECOS:directory:shell
項目 内容
account ユーザ名(大文字は含めない)
password パスワード('x'で表示される)
UID ユーザID番号
GID プライマリグループID
GECOS ユーザ名またはコメント
directory ホームディレクトリ
shell ログイン時に起動されるコマンドインタプリタ

ユーザを追加

useradd ユーザ名

<オプション>

オプション 説明
-c [コメント] コメント追加
-g [グループ名] プライマリグループを指定
-G [グループ名] 補助グループを指定
-d ホームディレクトリを指定
-s シェルを指定(デフォルト /bin/bash)
-u ユーザID

ユーザの変更

 usermod ユーザ名

<オプション>

オプション 説明
-c [コメント] コメント追加
-g [グループ名] プライマリグループを指定
-G [グループ名] 補助グループを指定
-l [ユーザ名] ユーザ名を変更する
-u [ユーザID] ユーザIDを変更

ユーザの削除

 userdel ユーザ名

<オプション>

| オプション | 説明 |
| -r | ホームディレクトリを削除

グループ

グループファイルの内容

/etc/group
group_name:password:GID:user_list
項目 内容
group_name グループの名前
password パスワードが不要なら空欄
GID グループID
GECOS ユーザ名またはコメント
user_list グループに所属するユーザ

ユーザは/etc/groupに定義されている。基本はコマンドで編集する。

グループの作成

groupadd グループ名

<オプション>

オプション 説明
-g [グループID] グループIDを指定

グループ情報の変更

groupmod [-g gid] [-n new-group-name] 変更対象のグループ

<オプション>

オプション 説明
-n 既存グループ名の変更をする場合に指定
-g 既存グループIDを変更

グループ情報の削除

groupdel グループ名

パスワード

ユーザを利用するにはパスワードが必要。パスワードは/etc/shadowに暗号化されて記録される。

passwd [ユーザ名]

シャドウファイル

account:password:last_changed:may_be_changed:must_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ユーザ

rootユーザはシステムの変更やプログラムのインストール、ユーザ作成などが行える(利用制限のないユーザ)です。

su コマンド

別ユーザでログインしているユーザが、一時的に他のユーザになる為のコマンド。
ユーザを指定しない場合はrootユーザでシェルを起動する。

オプションなしで実行した場合、カレントディレクトリを変更しないでログインします。
rootの帆無ディレクトリに変更したい場合は、以下のように実行する
+ su -
+ su -root

su コマンドを利用することでrootユーザで作業を開始した時間などが履歴に残るため、管理面を考える

sudoコマンド

sudoコマンドを利用することで、rootユーザでコマンドを実行することができる。
su コマンドはユーザを切り替えるが、sudoコマンドは切り替えることなく実行が可能。

sudo コマンド
オプション 説明
-u [ユーザ名] 指定したユーザでコマンドを実行

用途別

一般ユーザにsudo権限を付与

以下の方法で、特定のユーザをwheelグループに追加し、sudoコマンドを実行時にPWの入力を不要とする。

su   # rootに変更
usermod -G wheel <username> # wheelグループに<username>を追加
vigr     # wheelグループにユーザが追加されているか確認
visudo   # wheelグループを有効に変更(%wheel ALL=(ALL) NOPASSWD: ALL)

アクセス権

ユーザとグループを変更する場合は、rootユーザで実行する必要がある。

ファイルは以下の3つの権限レベルが存在する

  • ファイルを所有するユーザ
  • ファイル所有グループからファイル所有者を除いたユーザ
  • その他のユーザ

権限レベルごとに 読み・書き・実行の権限が存在する

それぞれの権限を確認するには以下のコマンドを実行する

ls -l 

#d rwxrwxrwx <所有者><所有グループ><バイトサイズ><更新日><ファイル名> # ユーザ , グループ, その他
項目 説明
r 読み込み
w 書き込み
x 実行またはディレクトリの移動

8進数表記は、付与したい権限を合計する

項目 数値
r 4
w 2
x 1

chmod :アクセス権の変更

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

chown :所有者の変更

chown ユーザ[. グループ] ディレクトリorファイル
オプション 説明
-R ディレクトリの中のファイルも再帰的に変更する

chgrp :所有グループの変更

chgrp グループ ディレクトリ
オプション 説明
-R ディレクトリの中のファイルも再帰的に変更する

特殊な属性(setuid, setgid, sticky)

setuid/setgid 付与されていると所有者/所有グループの権限で実行される

例) 一般ユーザがrootユーザ所有のsetuidがセットされたプログラムを実行
 → rootユーザが実行した場合と同じ動作になる

stickyが付与されたディレクトリ内のファイルは所有者以外削除できなくなる
一般的には/tempディレクトリに付与される

作成時のデフォルト

CentS7は/etc/login.defsに記載されている

umaskを利用することで、デフォルトのモードから変更してファイルを作成出来る

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0