/etc/passwd を手で編集した。
なぜだかわからない。反映しない。手作業で編集は駄目だと思ったけどshellや home dir や gid をマトメて編集できるから、もう直接手で触ればいいやとおもったけど反映しない。
home_dir を変更しても反映しない。。。再起動が必要だった。
シンタックスエラーはなかった
編集後にチェックして特にエラーがないことを確認
sudo pwck
専用コマンドを使うほうが無難だと思われる
ユーザーを操作するのは、専用コマンドを使ったほうが無難だと思う。
- vipw
- vipw -s
- chsh
- chfn
- usermod
- pwck
usermod であれこれ変更
usermod が便利なのでパターンとして覚えておくほうがいい
ホームディレクトリを変更
ホームディレクトリを別の場所に作り直す
usermod -d /var/home/takuya takuya
ホームディレクトリを移動
現在のホームディレクトリを指定の場所に移動させる。次からは指定の場所を使う。
usermod -m -d /var/home/takuya takuya
シェルの変更
デフォルトシェルの変更。これはchsh でも出来る
usermod -s /bin/false takuya
ユーザーをロックする
ロックしてログインできなくする。
usermod -L takuya
ユーザーをアンロックする
ロックしたユーザーを解除する
usermod -U takuya
ユーザ名を変更する
ユーザ名を変更すると //home` も変更しないとログイン後にホームディレクトリが見つからないなどの問題が出てくるので注意
usermod -l takuya_1st takuya
設定の反映
ログイン中は設定が反映しないので、一旦ログアウトする必要がある。
/etc/{passwd,shadow}が間違ってないか
シンタックスエラーや記述ミスをチェックする
sudo pwck
/etc/passwd を編集する
sudo -e /etc/passwd はどうもうまく動かない*1なので vipw を使う
sudo vipw
参考資料
man usermod
usermod コマンドは、 コマンドライン上での指定によって、 システムアカウントファイルを修正する。 usermod コマン
ドに指定できるオプションは次の通り。
-c comment
パスワードファイルのコメントフィールドに与える新しい値。 通常は chfn(1) ユーティリティによって変更され
る。
-d home_dir
新しいログインディレクトリ。 -m オプションを用いると、 現在のホームディレクトリの中身が新しいホームディ
レクトリに移動される (後者が存在しない場合は新たに作成される)。
-e expire_date
そのユーザアカウントが使用不能になる日付。 日付は YYYY-MM-DD という書式で指定する。
-f inactive_days
パスワードの使用期限が切れてからアカウントが永久に使用不能になるまでの日数。 0 にすると、 パスワードの
期限が切れると同時にこのアカウントは使用不能になる。 -1 にするとこの機能が無効になる。デフォルト値は
-1。
-g initial_group
新たにそのユーザのログイン時初期グループとするグループ名または ID。 グループ名は既に存在していなければ
ならない。 グループ番号は既存のグループを参照していなければならない。 デフォルトのグループ番号は 1。
-G group,[...]
ユーザが属する補助グループ (supplementary groups) のリスト。 グループはコンマで区切り、間に空白文字を入
れてはならない。 指定できるグループには -g オプションと同様の制限がある。 現在そのユーザが、 新しいリス
トにないグループのメンバーになっている場合は、 そのグループから削除される。
-l login_name
ユーザのログイン名を login から login_name に変更する。 他は何も変更しないので、 おそらく新しいログイン
名に合わせて ホームディレクトリの名前を変更する必要があるだろう。
-p passwd
crypt(3) の返り値である暗号化パスワード。
-s shell
ユーザの新しいログインシェルの名前。 このフィールドを空白にした場合は、 システムがデフォルトのログイン
シェルを選択する。
-u uid ユーザの ID 番号。 この値は、-o オプションを用いる場合を除き、他と重複してはならない。 また非負値でなく
てはならない。 0 から 999 までの値は、通常システムアカウント用に予約されている。 ホームディレクトリ以下
の、 そのユーザ所有のすべてのファイルのユーザ ID は、 自動的に新しい値に変更される。 ホームディレクトリ
以下にないファイルは手作業で変更しなければならない。
-L ユーザのパスワードをロックする。 これは暗号化されたパスワードの前に '!' を追加し、 実質的にパスワードを
無効にする。 このオプションを -p や -U と同時に用いることはできない。
-U ユーザのパスワードをアンロックする。 これは暗号化されたパスワードの先頭の '!' を取り除く。 このオプショ
ンを -p や -L と同時に用いることはできない。
*1: systemd になったあたりから、systemd 関係してる?