Project Paper A4 5mm

清書したメモが置かれる

ログインシェルの変更

実行環境

Ubuntu
ほかは覚えてない、すまん

ログインシェルの変更

chsh -s [shell]を使う。
あらかじめ,実行ファイル位置を確認する.

$ which zsh
/usr/bin/zsh
$ chsh -s /usr/bin/zsh
パスワード: ***
chsh: /usr/bin/zsh はシェルに指定できません

chshでシェルが指定できないとき

解決案: /etc/shellszshを追記
ログインシェルに指定できるのは/etc/shellsに記載されているシェルだけだ、ということ。なので追記。

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/zsh
$ chsh -s /usr/bin/zsh
パスワード: ***
chsh: ユーザ konafx は /etc/passwd に存在しません

ユーザが/etc/passwdに存在しないとき

解決案: /etc/passwd に追記

UNIXで、ユーザの管理をつかさどっているのは、/etc/passwd という名前のファイルです。このファイルは、大変に重要なファイルで、これが無くなると、誰もUNIXにログインできなくなります。 このファイルには、ユーザがログインする際に必要なユーザ名や、ホームディレクトリなど、各種の設定が書かれています。

(略)

/etc/passwd ファイルは、1行が1人のユーザに対応しており、このファイルの1行は、:(コロン)で区切られた、次のようなフィールドからなります。  第1フィールド: ユーザ名(ログイン名)  第2フィールド: (暗号化パスワード)  第3フィールド: ユーザ番号(UID)  第4フィールド: グループ番号(GID)  第5フィールド: コメントフィールド(名前など)  第6フィールド: ホームディレクトリーのパス  第7フィールド: ログイン・シェル

2.2 パスワードファイル /etc/passwd の構造

ということなので、こいつに新たに書き込んでいく。 必要な情報は

  • $USER: ユーザ名
  • $UID: ユーザ番号
  • $GID: グループ番号
  • $HOME: ホームディレクトリのパス

を見ればわかる。または$ idで出てくる.なお暗号化パスワードは"x"でいいらしい。

(略)
konafx:x:ユーザ番号:グループ番号:konafx,,,:ホームディレクトリ:/usr/bin/zsh

書き換えたらおわり。
上記のように直接ログインシェルを変えたいものにしてもいいし、あとでchshしてもいい。 どちらにせよ要再起動