Ubuntu14.0.4でホスト名とユーザ名を変更する
概要
VMのUbuntu14.0.4でホスト名とユーザ名を変更したのが意外と大変だったのでメモ
以下では、ホスト名も、ユーザ名も、gitアカウントと同じ「ludwig125」にすることを目指した
参考
ホスト名
ホスト名:hostnameコマンドの結果出力するUbuntuのホスト名を指す
ホスト名の変更は簡単だった
- 以下のホスト名を変更するだけ
sudo vim /etc/hostname sudo vim /etc/hosts
反映させるにはUbuntuの再起動が必要
確認
$ hostname ludwig125-virtual-machine
※「-virtual-machine」の部分をつけたほうがホスト名として分かり易いのでつけた
ユーザ名の変更
ユーザ名:whoコマンドで出力されるユーザの名前
ユーザ名の変更はusermodで行う
usermodをする上での問題
しかし、自分のユーザ名を変更しようとしても、自分自身のプロセスがあるので変えられないという問題がある
$ sudo usermod -l ludwig125 <今のユーザ名> usermod: user <今のユーザ名> is currently used by process 1495 $
別のユーザを作る
自分自身のプロセスが動いている状態で自分のユーザ名を変えられないので、別にユーザを作った (もっといい方法があるかもしれない・・・)
- adduserで「temp_user」ユーザを追加
$ sudo adduser temp_user ユーザー `temp_user' を追加しています... 新しいグループ `temp_user' (1001) を追加しています... 新しいユーザー `temp_user' (1001) をグループ `temp_user' に追加しています... ホームディレクトリ `/home/temp_user' を作成しています... `/etc/skel' からファイルをコピーしています... 新しい UNIX パスワードを入力してください: 新しい UNIX パスワードを再入力してください: passwd: パスワードは正しく更新されました temp_user のユーザ情報を変更中 新しい値を入力してください。標準設定値を使うならリターンを押してください フルネーム []: temp 部屋番号 []: 職場電話番号 []: 自宅電話番号 []: その他 []: 以上で正しいですか? [Y/n] y
temp_userにsudo権限を追加
作ったばかりのtemp_userにはsudo権限がないので temp_userでusermodをすると以下のエラーが出た
$ usermod コマンド 'usermod' は '/usr/sbin/usermod' で利用できます '/usr/sbin'がPATH環境変数に含まれていないためコマンドを特定できませんでした。 大抵の場合、お使いのユーザーアカウントに管理者特権がないことが原因です。 usermod: コマンドが見つかりません temp_user@ludwig125-virtual-machine:/home$ useradd コマンド 'useradd' は '/usr/sbin/useradd' で利用できます '/usr/sbin'がPATH環境変数に含まれていないためコマンドを特定できませんでした。 大抵の場合、お使いのユーザーアカウントに管理者特権がないことが原因です。 useradd: コマンドが見つかりません
temp_userでusermodをできるように、予めtemp_userにsudo権限を付けておく
sudoユーザーを追加する方法 - Linux入門 - Webkaru
以下はtemp_userではなく、もとのユーザ権限で実行
usermod -G sudo temp_user
temp_userでログインし直す
ubuntuのユーザをみて、temp_userに切り替える
temp_userでusermod実行
temp_user内で改めてusermodを実行
$ sudo usermod -l ludwig125 <今のユーザ名> usermod: user <今のユーザ名> is currently used by process 1495 $
もとのユーザのプロセスが動いているので、全部killする
sudo kill -9 プロセスID
再度usermodを実行したら、今度はうまくいった
ユーザディレクトリの名前を変更
$ ls /home $ cd /home $ sudo mv もとのユーザ ludwig125 $ ls /home ludwig125 temp_user
whoで確認
[~] $ who ludwig125 :0 2017-12-16 22:42 (:0) ludwig125 pts/5 2017-12-16 22:46 (:0:S.0) ludwig125 pts/13 2017-12-16 22:46 (:0:S.1) [~] $
更に/etc/passwdのユーザディレクトリを変える
$ sudo vim /etc/passwd で ludwig125:x:1000:1000:ludwig125:/home/ludwig125:/bin/bash ↑この/home以下のディレクトリ名をもとのユーザ名から変える
上記までの対応によって生じた問題
トラブル1.VMとホストOSとの間でコピペができない
名前変更後、VMのデータをコピーしてホストOSのWindowsにペーストできないという問題が生じた
ホスト名を変えてしまったのでvmwaretoolsが機能していない可能性がある
いったんVMもホストOSも再起動したらコピペができるようになった
- 参考 vmware toolsとは
VMware Tools の概要 VMware Tools は、仮想マシンのゲスト OS のパフォーマンスを強化し、仮想マシンの管理を改善するユーティリティのスイートです。ゲスト OS に VMware Tools をインストールしておかないと、ゲストで重要な機能を実行できません。VMware Tools をインストールすると、次のような問題が排除または改善されます。 ビデオの解像度が低い カラー深度が不十分 ネットワーク速度の表示が正しくない マウスの動きが制限される コピー アンド ペーストやファイルのドラッグ アンド ドロップができない 音声が出ない ゲスト OS の静止スナップショットを作成する機能が用意される ゲスト OS とホストの時刻が同期される
トラブル2. linuxのグループが変わっていない
グループ名が昔のまま変わっていなかったので変える
usermod -g グループ名 ユーザ名
[/home] $ sudo groupadd ludwig125 [/home] $ sudo usermod -g ludwig125 ludwig125 [/home] $
トラブル3. git に接続できない
名前変更後、gitに接続できない
git pullできない 「Permission denied (publickey).」が出た
[~/git/work] $ git pull Warning: Permanently added the RSA host key for IP address '192.30.255.113' to the list of known hosts. Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. [~/git/work] $
以下を参考に調べて見る
githubで"Permission denied (publickey)."が出た時はssh -Tで繋ぎ直す - Qiita Error: Permission denied (publickey) - User Documentation Git - SSH 公開鍵の作成
[~/git/work] $ ssh -vT git@github.com OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug1: Connecting to github.com [192.30.255.112] port 22. debug1: Connection established. debug1: identity file /home/ludwig125/.ssh/id_rsa type 1 debug1: identity file /home/ludwig125/.ssh/id_rsa-cert type -1 debug1: identity file /home/ludwig125/.ssh/id_dsa type -1 debug1: identity file /home/ludwig125/.ssh/id_dsa-cert type -1 debug1: identity file /home/ludwig125/.ssh/id_ecdsa type -1 debug1: identity file /home/ludwig125/.ssh/id_ecdsa-cert type -1 debug1: identity file /home/ludwig125/.ssh/id_ed25519 type -1 debug1: identity file /home/ludwig125/.ssh/id_ed25519-cert type -1 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8 debug1: Remote protocol version 2.0, remote software version libssh_0.7.0 debug1: no match: libssh_0.7.0 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-sha1 none debug1: kex: client->server aes128-ctr hmac-sha1 none debug1: sending SSH2_MSG_KEX_ECDH_INIT debug1: expecting SSH2_MSG_KEX_ECDH_REPLY debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 debug1: Host 'github.com' is known and matches the RSA host key. debug1: Found key in /home/ludwig125/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering RSA public key: /home/ludwig125/.ssh/id_rsa debug1: Authentications that can continue: publickey debug1: Trying private key: /home/ludwig125/.ssh/id_dsa debug1: Trying private key: /home/ludwig125/.ssh/id_ecdsa debug1: Trying private key: /home/ludwig125/.ssh/id_ed25519 debug1: No more authentication methods to try. Permission denie [~/git/work] $
ホスト名を変えたからなのか、なぜなのかわからないけれど、git にssh鍵が登録されていないみたい
以前書いた自分のブログを参考にssh鍵を作って登録し直す
登録後
[~/git/work] $ ssh -vT git@github.com OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug1: Connecting to github.com [192.30.255.113] port 22. debug1: Connection established. debug1: identity file /home/ludwig125/.ssh/id_rsa type 1 debug1: identity file /home/ludwig125/.ssh/id_rsa-cert type -1 debug1: identity file /home/ludwig125/.ssh/id_dsa type -1 debug1: identity file /home/ludwig125/.ssh/id_dsa-cert type -1 debug1: identity file /home/ludwig125/.ssh/id_ecdsa type -1 debug1: identity file /home/ludwig125/.ssh/id_ecdsa-cert type -1 debug1: identity file /home/ludwig125/.ssh/id_ed25519 type -1 debug1: identity file /home/ludwig125/.ssh/id_ed25519-cert type -1 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8 debug1: Remote protocol version 2.0, remote software version libssh_0.7.0 debug1: no match: libssh_0.7.0 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-sha1 none debug1: kex: client->server aes128-ctr hmac-sha1 none debug1: sending SSH2_MSG_KEX_ECDH_INIT debug1: expecting SSH2_MSG_KEX_ECDH_REPLY debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 The authenticity of host 'github.com (192.30.255.113)' can't be established. RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'github.com,192.30.255.113' (RSA) to the list of known hosts. debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering RSA public key: /home/ludwig125/.ssh/id_rsa debug1: Server accepts key: pkalg ssh-rsa blen 279 debug1: key_parse_private2: missing begin marker debug1: read PEM private key done: type RSA debug1: Authentication succeeded (publickey). Authenticated to github.com ([192.30.255.113]:22). debug1: channel 0: new [client-session] debug1: Entering interactive session. debug1: Sending environment. debug1: Sending env LANG = ja_JP.UTF-8 debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 Hi ludwig125! You've successfully authenticated, but GitHub does not provide shell access. debug1: channel 0: free: client-session, nchannels 1 Transferred: sent 3312, received 1872 bytes, in 0.2 seconds Bytes per second: sent 14182.2, received 8016.0 debug1: Exit status 1 [~/git/work] $
成功 git pullもgit pushもできるようになった! ブログ書いててよかったよ
トラブル4. pip3が使えなくなってた
誤ったインタプリタです: そのようなファイルやディレクトリはありません
pip3を使おうとしたらこんなエラーが
[~/git/work/src/python/memo/pandas] $ pip3 install pandas_ply /home/ludwig125/.pyenv/pyenv.d/exec/pip-rehash/pip: /home/ludwig125/.pyenv/versions/3.5.4/bin/pip3: /home/前のユーザ名/.pyenv/versions/3.5.4/bin/python3.5: 誤ったインタプリタです: そのようなファイルやディレクトリはありません
前のユーザ名のパスを見ようとしている?
解決できないのでpyenvごと削除して作り直す
[~] $ pyenv versions * system (set by /home/ludwig125/.python-version) 3.5.4 [~] $ pyenv uninstall 3.5.4 pyenv: remove /home/ludwig125/.pyenv/versions/3.5.4? yes [~] $ [~] $ pyenv install 3.5.4 Downloading Python-3.5.4.tar.xz... -> https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tar.xz Installing Python-3.5.4... Installed Python-3.5.4 to /home/ludwig125/.pyenv/versions/3.5.4 $ pyenv local 3.5.4で移動
これでpip3を使えるようにになった
[~] $ [~] $ pip3 --version pip 9.0.1 from /home/ludwig125/.pyenv/versions/3.5.4/lib/python3.5/site-packages (python 3.5) [~] $