京橋のバイオインフォマティシャンの日常

まずは、データ分析、コマンドラインのメモとして

【LINUX/Macの基本コマンド②】ユーザーー覧の確認、ユーザーの追加・権限付与をする

CentOSでの、ユーザー追加や変更、権限付与についてまとめた。

今回は、基本、sudo権限でコマンド実行する。

「root」ユーザーで実行する場合には、sudoは不要。

まずは、デフォルト情報の確認

ターミナルを起動して、以下のコマンドで見える。

#作成されるユーザーのデフォルト設定値を確認する
#これだけでは、ユーザーは作成されない

useradd -D
#GROUP=100
#HOME=/home
#INACTIVE=-1
#EXPIRE=
#SHELL=/bin/bash
#SKEL=/etc/skel
#CREATE_MAIL_SPOOL=yes

#OR
#cat /etc/default/useradd

また、デフォルト値の変更もできる。

useradd -D [Option]

あるいは、vim /etc/default/useraddとかで、ファイルを直接編集しても良い。

ユーザー作成の実行例

実行例(1): デフォルトユーザーの作成

#ユーザー作成
useradd [User name]
#パスワード設定
passwd [User name]
# => PWを2回入力
#ユーザー [User name] のパスワードを変更。
#新しいパスワード:
#新しいパスワードを再入力してください:
#passwd: すべての認証トークンが正しく更新できました。

実行例(2): ユーザー作成 + ホームディレクトリのみ作成

#ユーザー作成
sudo useradd -m [User name]
#パスワード設定
sudo passwd [User name]
#PWを2回入力

#ユーザーフォルダの確認
ls ../

ここで、ターミナルから、作成されたユーザーにログインしても、Homeディレクトリに、perl5しかフォルダ作成されていない・・・

$ ls
perl5
$ ls -a
.   .bash_logout   .bashrc  .config  .local    .ssh
..  .bash_profile  .cache   .emacs   .mozilla  perl5

これの解決法については、一度、GUI画面からログインすれば、 ホームディレクトリ配下に、デスクトップなどの各ディレクトリが作成される。

実行例(2'): ユーザー作成 + ホームディレクトリ作成をしない

#ユーザー作成 + -M オプション
sudo useradd -M [User name]

実行例(3): ユーザー作成 + sudo 権限付与

#ユーザー作成
useradd -m [User name]
#パスワード設定
passwd [User name]
#PWを2回入力

ここまでは、上記と同じ。

次に、wheelグループに全てのコマンド実行権を与えて、 ユーザーをそのグループに追加する。

#設定ファイルの表示
sudo cat /etc/sudoers
#or
#sudo visudo

#wheelが含まれる行のみ出力
sudo cat /etc/sudoers | grep "wheel"
## Allows people in group wheel to run all commands
#%wheel    ALL=(ALL)   ALL

#編集
sudo vim /etc/sudoers

ここで、#%wheel ALL=(ALL) ALLのコメントアウトを外す。

続いて、wheelグループに追加する。

#追加
usermod -G wheel [User name]

#所属グループの確認
groups [User name]

その他の関連コマンド

「root」になる

#ユーザー変更
su root

whoami
#root

ユーザーの切り替え

#(1) ユーザー切替後の設定環境を使用する。
su - [User name]

#(2) ユーザー切替前の設定環境を使用する。
su [User name]

ユーザー削除 + ホームディレクトリの削除

userdel -r [Your user name]

ユーザー一覧の確認(デフォルトHOMEなら)

cat /etc/passwd | grep "/home/" | sed -e 's/:.*//g'

後日、アカウントにコメントをつける

#コメント付与
usermod -c " ## test ## "  [User name]

#コメント確認
cat /etc/passwd | grep "[User name]"

passwdのユーザー名のところに、コメントが記載されている。

また、GUIでのログイン時に、ログイン画面にコメントが表示される。

所属グループなどの確認

#idコマンドでの確認
id -a [User name]
#uid=1002([User name]) gid=1002([User name]) groups=1002([User name]),10(wheel)

#groupsコマンドでの確認
#現在のユーザー
groups
#OR ユーザー指定
groups [User name]

補足

「useradd」と「adduser」

CentOSでは、adduserコマンドは、useraddコマンドのリンクコマンドとなっているようだ。なので、同じコマンド。

ログイン時のメッセージ表示(/etc/motd)

/etc/motd に書き込むと、すべてのユーザーで表示される。

#編集
sudo vim /etc/motd

#テキトーに文字列を書き込み

#作成後に表示
cat /etc/motd

(sshで)再ログインしてみると、書き込んだ文字列が表示される。

また、ユーザー個別に表示させたい場合には、各ユーザーの.bash_profileに、echoやcatなどの表示コマンドで書き込むと良い。

ユーザー個別にドット絵を表示させる場合

#GitHubからドット絵をダウンロードする
wget https://gist.githubusercontent.com/makocchi-git/9775443/raw/6747aa4a65e4293201289899931fe04472c5cfcf/metal-slime.txt

#ピクチャに移動
mv metal-slime.txt Pictures

#表示
cat ./Pictures/metal-slime.txt

f:id:skume:20210426014712p:plain:w350

やることとしては、.bash_profileに、 cat ./Pictures/metal-slime.txtを1行書き込むだけ。

#書き込み
echo 'cat ./Pictures/metal-slime.txt' >> ~/.bash_profile

#確認
cat .bash_profile

#ログアウト
exit

再ログインした際に、スライムが表示される。

参考資料

www.server-memo.net

kazmax.zpp.jp

qiita.com

papix.hatenablog.com

github.com