1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linuxユーザーとグループ管理コマンド - ユーザー作成

Posted at

ユーザーとグループ管理コマンド - ユーザー作成

ユーザー管理コマンド

  • useradd: 新しいLinuxユーザーを作成するコマンド
  • usermod: 存在するユーザーの情報を変更するコマンド
  • userdel: ユーザーを削除するコマンド

グループアカウント維持コマンド

  • groupadd: 新しいグループを作成するコマンド
  • groupmod: 存在するグループの情報を変更するコマンド
  • groupdel: グループを削除するコマンド

ユーザー作成

useradd コマンドで新しいLinuxユーザーを作成することができます。

フォーマット:

useradd [options] LOGIN
useradd -D
useradd -D [options]

# 主なオプション

  • -u--uid UID: UIDを指定します。
  • -g--gid GID: 初期ユーザーグループを指定します。-g groupnameまたは --gid GIDとします。
  • -c--comment COMMENT: 新しいアカウントのGECOSフィールドです。
  • -d--home-dir HOME_DIR: ホームディレクトリーを指定します。存在しなくても指定可能ですが、それにより自動的にディレクトリーが作られるわけではありません。
  • -s--shell SHELL: 使用するシェルを指定します。使用可能なシェルは/etc/shellsで確認できます。
  • -r--system: システムユーザーを作成します。CentOS 6以前はID<500がシステムユーザー、CentOS7以降はID<1000がそれに該当します。ログインユーザーに関する情報は作成されません。
  • -m--create-home: ホームディレクトリーを作成します。通常ログインユーザーに使われます。
  • -M--no-create-home: ホームディレクトリーを作成しません。ログイン不要なユーザーに使われます。
  • -p--password PASSWORD: パスワードを設定します。このパスワードは /etc/shadow ファイル中で平文の形式になります。
  • -o--non-unique: 重複するUIDを持つユーザーを作成できます。
  • -G--groups GROUP1[,GROUP2,...]: ユーザーの追加グループを明記します。グループは事前に存在している必要があります。
  • -N--no-user-group: 同名のグループを作成しないようにし、代わりにusersグループを主グループとして使用します。
  • -D--defaults: useradd のデフォルト設定を表示または変更します。デフォルト設定ファイルは /etc/default/useradd です。
  • -e--expiredate EXPIRE_DATE: アカウントの有効期限を YYYY-MM-DD フォーマットで指定します。
  • -f--inactive INACTIVE: パスワード有効期限切れ後、アカウントが完全に禁止されるまでの日数を指定します。0はパスワード有効期限切れと同時に禁止、-1はこの機能を使用しないことを意味します。
  • -k--skel SKEL_DIR: ホームディレクトリのテンプレートを指定します。ホームディレクトリを作成する際には、このディレクトリからファイルがコピーされます。デフォルトは /etc/skel/ですが、-mオプションと併用する必要があります。
  • -K--key KEY=VALUE: /etc/login.defs のデフォルト値を使用せず、自分で指定します。例えば -K UID_MIN=100 のように使用します。
  • -l--no-log-init: ユーザーをログインの最近の記録とログイン失敗の記録に追加しません。以前に取り上げた認証監査に関連する lastloglastbcat /var/log/secure に該当します。

范例:

[root@rocky8 ~]#rpm -q --scripts postfix
preinstall scriptlet (using /bin/sh):
# 必要に応じてユーザーやグループを追加する
/usr/sbin/groupadd -g 90 -r postdrop 2>/dev/null
/usr/sbin/groupadd -g 89 -r postfix 2>/dev/null
/usr/sbin/groupadd -g 12 -r mail 2>/dev/null
/usr/sbin/useradd -d /var/spool/postfix -s /sbin/nologin -g postfix -G mail -M -r -u 89 postfix 2>/dev/null

范例:

# ユーザーを作成する前に先にグループを作成することで、グループIDの把握が可能
# 既に存在するグループIDの利用は避ける
[root@rocky8 ~]# groupadd -g 33 mysql
groupadd: GID '33' already exists
# システムグループを作成
[root@rocky8 ~]# groupadd -g 336 -r mysql
# 確認
[root@rocky8 ~]# getent group mysql
mysql:x:336:
[root@rocky8 ~]# getent gshadow mysql
mysql:!::
# ユーザーを作成
useradd -u 336 -g mysql -s /sbin/nologin -d /data/mysql -M -r mysql
# 確認
[root@rocky8 ~]# useradd -u 336 -g mysql -s /sbin/nologin -d /data/mysql -M -r mysql
[root@rocky8 ~]# getent passwd mysql
mysql:x:336:336::/data/mysql:/sbin/nologin
[root@rocky8 ~]# getent shadow mysql
mysql:!!:19168::::::

デフォルトでのユーザー作成

[root@rocky8 ~]# useradd tom
# 確認
[root@rocky8 ~]# getent passwd tom
tom:x:1003:1003::/home/tom:/bin/bash
[root@rocky8 ~]# getent shadow tom
tom:!!:19168:0:99999:7:::
[root@rocky8 ~]# getent group tom
tom:x:1003:
[root@rocky8 ~]# getent gshadow tom
tom:!::
[root@rocky8 ~]# ls -a /home/tom/
. .. .bash_logout .bash_profile .bashrc

useradd のデフォルト設定は /etc/default/useradd によって定義されています。

[root@rocky8 ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100 # useraddがグループを指定しない、あるいは/etc/login.defs中のUSERGROUPS_ENABが「no」、あるいはuseradd -Nの場合、groupは100です
HOME=/home # デフォルトのホームディレクトリの親ディレクトリ
INACTIVE=-1 # 対応するのは/etc/shadowファイルの7列目、つまりユーザーパスワードの有効期限が切れた後のアカウントロックの猶予期間です。-1はロックしないことを意味します
EXPIRE= # 対応するのは/etc/shadowファイルの8列目、つまりユーザーアカウントの有効期限です
SHELL=/bin/bash # デフォルトはbashです
SKEL=/etc/skel # 新たに作ったユーザーのホームディレクトリ制作のための模擬ファイルです
CREATE_MAIL_SPOOL=yes # デフォルトで受信箱の作成を行います

デフォルト設定の表示または変更:

# useradd -Dで見ることができます
# useradd –D -s SHELLで変更
# useradd –D –b BASE_DIRで変更
# useradd –D –g GROUPで変更

確認と変更例:

[root@rocky8 ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

# デフォルトのshellを変更
[root@rocky8 ~]# useradd -D -s /bin/sh

# 変更後
[root@rocky8 ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

ホームディレクトリのテンプレート

[root@rocky8 ~]# ls -a /etc/skel/
. .. .bash_logout .bash_profile .bashrc
# このディレクトリの内容を変更すると、新しく作成されるユーザーのホームディレクトリの中身も変わります

新規ユーザーに関連するファイル:

  • /etc/default/useradd
  • /etc/skel/*
  • /etc/login.defs

一括ユーザー作成コマンド

newusers file

范例:

[root@rocky86 ~]# cat user.txt
u1:123456:1024:1024::/home/u1:/bin/bash
u2:123456:1025:1025::/home/u2:/bin/bash

[root@rocky86 ~]# newusers user.txt
[root@rocky86 ~]# id u1
uid=1024(u1) gid=1024(u1) groups=1024(u1)
[root@rocky86 ~]# id u2
uid=1025(u2) gid=1025(u2) groups=1025(u2)

一括ユーザーパスワード変更コマンド

chpasswd < file

范例:

[root@rocky86 ~]# cat pwd.txt
u1:1234567
u2:1234567

# 標準入力からリダイレクト
[root@rocky86 ~]# chpasswd < pwd.txt

# 複数行のリダイレクト
[root@rocky86 ~]# chpasswd <<EOF
> u1:1234567
> u2:1234567
> EOF

# パイプからリダイレクト
[root@rocky86 ~]# echo u1:123456 | chpasswd

CentOS 8ではsha512アルゴリズムで暗号化されたパスワードを生成する例:

[root@centos8 ~]#openssl passwd -6 magedu
$6$UOyYOao.iM2.rPnM$jCpTnBVIQBuGCLOm4N5hqh5YUc3wWXcDzkDMddthpKNL3scOZjTHh9fXds8E
u6gNdEQqLMQgOboipZ08mnz2V

CentOS 7でPythonを用いてsha512アルゴリズムで暗号化されたパスワードを生成する例:

[root@centos7 ~]#python -c 'import crypt,getpass;pw="magedu";print(crypt.crypt(pw))'
$6$pt0SFMf6YqKea3mh$.7Hkslg17uI.Wu7BcMJStVVtkzrwktXrOC8DxcMFC4JO1igrqR7VAi87H5PH
OuLTUEjl7eJqKUhMT1e9ixojn1

CentOS 6 でsha512アルゴリズムに基づくパスワードを含むユーザーを作成する例:

[root@centos6 ~]#grub-crypt --help
Usage: grub-crypt [OPTION]...
Encrypt a password.
-h, --help Print this message and exit
-v, --version Print the version information and exit
--md5 Use MD5 to encrypt the password
--sha-256 Use SHA-256 to encrypt the password
--sha-512 Use SHA-512 to encrypt the password (default)
Report bugs to <bug-grub@gnu.org>.
EOF

[root@centos6 ~]#grub-crypt --sha-512
Password:
Retype password:
$6$v9A2/xUNwAWwEmHN$q7Wz.uscsV/8J5Gss3KslX8hKXOoaP3hDpOBWeBfMQHVIRZiwHUUkii84cvQ
WIMnvtnXYsdVHuLO4KhOiSOMh/

[root@centos6 ~]#useradd -p
'$6$v9A2/xUNwAWwEmHN$q7Wz.uscsV/8J5Gss3KslX8hKXOoaP3hDpOBWeBfMQHVIRZiwHUUkii84cv
QWIMnvtnXYsdVHuLO4KhOiSOMh/' test

[root@centos6 ~]#getent shadow test
test:$6$v9A2/xUNwAWwEmHN$q7Wz.uscsV/8J5Gss3KslX8hKXOoaP3hDpOBWeBfMQHVIRZiwHUUkii
84cvQWIMnvtnXYsdVHuLO4KhOiSOMh/:18459:0:99999:7:::

Ubuntu 18.04 でsha512アルゴリズムに基づくパスワードを生成する例:

[root@ubuntu1804 ~]#openssl passwd -6 123456
$6$RyaXh7L.7fORQBjB$0WXRATSjh3IU.eufhsY5uJpKZwCAGjyAj5r/et9ymohEKsTdMvagEW92t1IA
kNte0yVZ88YyMUqx1b6uHIrxM/
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?