makoto_blog

パパさん_blog

プログラミング勉強メモや雑記など。

Linux ユーザーとグループ

ユーザー

  • 一般ユーザー、システムユーザー、rootユーザーがある。
  • ユーザーには、ユーザーID(UID)が割り当てられる。
  • id コマンドで確認。引数にユーザーID。ないなら自分。

ユーザー情報が格納されたファイル

/etc/passwd

なんかいっぱいいた。

ユーザーとユーザーID

  • root:0
  • システムユーザー:1~99
  • 一般ユーザー:100〜

ちなみにUbuntu18.04で私のユーザーIDを見たら1000でした。

rootユーザー

su(代理ユーザー Substitute User)コマンドで一時的にrootユーザーに切り替わる。
suはrootユーザー以外にも切り替えられる。ユーザー名を省略するとrootユーザーを指定したことになる。

su -

suコマンドのオプション[-]ですが、省略すると、

  • rootユーザー用コマンドの多くが使えない。
  • カレントディレクトリのまま。

[-]を付けるとrootユーザーとしてログインした状態になる。/rootがカレントディレクトリになる。

Ubuntu

Ubuntuでは初期状態でrootユーザーにパスワードが設定されていない。suでrootユーザーになれない。
sudo -s でユーザー自身のパスワードを入れるとrootユーザーになれる。

mhaya@mhaya-V5-131:/etc$ sudo -s 
[sudo] mhaya のパスワード: 
root@mhaya-V5-131:/etc# 

Ubuntuではsudoコマンドを使って管理者コマンドを実行する。

グループ

  • ユーザーはグループに所属しなければならない。
  • 複数のグループに所属することが出来る。
  • groups コマンドかidコマンドで、所属しているユーザーを調べられる。
  • ユーザーのもっとも基本となるグループをプライマリグループという。
mhaya@mhaya-V5-131:/etc$ groups
mhaya adm cdrom sudo dip plugdev lpadmin sambashare
mhaya@mhaya-V5-131:/etc$ groups jj
jj : jj

なんか、いっぱい所属してるやん。

一般ユーザーを作成するとそのグループ名のグループが作られそれがプライマリグループになる。
他にも参加しているグループをサブグループ(参加グループ)という。

ユーザーとグループの管理

  • ユーザー作成:useraddコマンド。パスワード設定:passwd
  • ユーザー情報:/etc/passwdファイルに格納
  • グループ作成:groupadd
  • ユーザー削除:userdel
  • グループ削除:groupdel

ユーザーの管理

mhaya@mhaya-V5-131:~$ sudo useradd hosino
[sudo] mhaya のパスワード: 
mhaya@mhaya-V5-131:~$ sudo passwd hosino
新しい UNIX パスワードを入力してください: 
新しい UNIX パスワードを再入力してください: 
passwd: パスワードは正しく更新されました

rootユーザーは一般ユーザーのパスワードを知らなくても変更できる。

/etc/passwdファイルの書式

mhaya:x:1000:1000:mhaya,,,:/home/mhaya:/bin/bash
jj:x:1002:1002:,,,:/home/jj:/bin/bash
hosino:x:1003:1003::/home/hosino:/bin/sh

左から

  1. ユーザー名
  2. 旧パスワード欄(現在はxのみ)昔はパスワードを記録していたファイルらしいが現在は/etc/shadowファイルに格納。sudo cat で見てみたらなんか暗号化された文字列が。。
  3. ユーザーID
  4. グループID
  5. コメント
  6. ホームディレクト
  7. デフォルトシェル

グループの管理

グループを作成しユーザーを参加させる。

mhaya@mhaya-V5-131:~$ sudo groupadd gen
mhaya@mhaya-V5-131:~$ sudo usermod -G gen hosino
mhaya@mhaya-V5-131:~$ id hosino
uid=1003(hosino) gid=1003(hosino) groups=1003(hosino),1004(gen)

グループ削除

mhaya@mhaya-V5-131:~$ sudo groupdel hosino
groupdel: ユーザ 'hosino' のプライマリグループは削除できません。
mhaya@mhaya-V5-131:~$ sudo groupdel gen
mhaya@mhaya-V5-131:~$ id hosino
uid=1003(hosino) gid=1003(hosino) groups=1003(hosino)

/etc/groupファイル

mhaya:x:1000:
postgres:x:105:
jj:x:1002:
hosino:x:1003:

書式は左から、

  1. グループ名
  2. 旧パスワード欄(現在はxのみ)
  3. グループID
  4. 所属ユーザー

なんかちがうような。

ユーザーのプライマリグループのグループ名を知りたいとき

/etc/passwdファイルでグループID(プライマリグループは第4フィールドに記録)を調べそのIDを/etc/groupファイルで探す。