ubuntuユーザとアクセス権管理

ユーザの作成

useraddを使ってユーザを作成

sudo useradd -d /home/jdoe -m jdoe

-dオプション:作成するユーザのホームディレクトリを指定する。

-mオプション:指定したユーザホームディレクトリを実際に作成する。指定しなければ手動で作成する必要がある。

最後のjdoeは作成するユーザ名を指定している。

sudo passwd jdoe

作成したユーザにパスワードを設定する。

adduserを使う

sudo adduser dscully

adduserは/home/dscullyディレクトリを作成し、/etc/skelの内容をそこにコピーしてくれる。またパスワードも設定してくれる。useraddの実態はシェルスクリプトでLinuxディストリビューションによっては用意されていない。useraddの使い方を覚えておきたい。

ユーザの削除

sudo userdel dscully
sudo userdel -r dscully

userdelは-r指定がなければユーザのホームディレクトリを削除しない。通常ユーザのデータをバックアップしてからホームディレクトリを削除する。

/etc/passwdと/etc/shadowファイル

ユーザ情報とパスワードを保存するファイルである。

/etc/passwdの2番目のフィールドにxが示されているが、これはパスワードが暗号化され、/etc/shadowファイルに保存していることを示す。

ユーザパスワードのhash値は/etc/shadowの2番目のフィールドに保存される。rootの場合、このフィールドに「*」が書かれている。「*」また「!」が先頭にある場合、このユーザのアカウントはロックされることを示し、直接ログインできない。別のユーザでログインし、su -でそのユーザに切り替えることができる。

sudo passwd -l dscully

上記のコマンドを使ってユーザアカウントをロックすることができる。/etc/shadowファイルを編集することなしで。

sudo useradd jdoe
id jdoe
uid=1002(jdoe) gid=1003(jdoe) groups=1003(jdoe)
sudo cat /etc/shadow | grep jdoe
jdoe:!:19241:0:99999:7:::
sudo passwd -S jdoe
jdoe L 09/06/2022 0 99999 7 -1

passwd -Sはユーザアカウントの情報を表示する。二番目のLがアカウントがロックされていることを示す。三番目は前回パスワード変更した日時。四番目は次のパスワード変更が可能になる時間。五番目はパスワード変更が要求される日数。

/etc/skel

/etc/skelに.bashrc、.bash_logout、.profileなどの初期設定ファイルが格納されている。

ユーザ切り替え

以下のコマンドでrootユーザまたは他のユーザにスイッチすることができる。

sudo su -
sudo su - jdoe

Linux,ubuntu

Posted by deanza329