Vagrant Ubuntuインスタンスに「ubuntu」ユーザーを追加する

Vagrant Ubuntuインスタンスに「ubuntu」ユーザーを追加する

私は放浪箱を使用しています:

uname -a
Linux precise64 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 

ubuntuユーザー設定が1つしかないので、vagrant新しいユーザーを追加し、ログイン用のSSHキーを次のように設定することにしました。

   sudo useradd ubuntu
   ssh-keygen -b 1024 -f ubuntu -t dsa     
   sudo mkdir -p /home/ubuntu/.ssh
   cat ubuntu.pub | sudo tee -a /home/ubuntu/.ssh/authorized_keys  
   sudo chmod 600 /home/ubuntu/.ssh/authorized_keys
   sudo chmod 700 /home/ubuntu/.ssh
   sudo chown -R ubuntu /home/ubuntu 

秘密鍵をダウンロードしてログインします。端末は履歴をサポートしません。

history   
-sh: 30: history: not found

ナビゲーションキー(上/下/前/後)をサポートしていません。コマンドラインの履歴を覚えて、コマンドとパスのオートコンプリートを実行するようにbashを設定したいと思います。どこから始めるべきか教えてください。

答え1

問題は実際に@LuisAntolinが指摘したことです。 Ubuntuシステムと他のほとんどのシステムでは、デフォルトのシェルはDebianベースのシステムへのシンボリックリンク/bin/shです。履歴コマンドがないため、対応するエラーが発生します。/bin/dashdash

実際に編集してこの設定を変更できますが、/etc/passwordより良いアプローチはchshユーザーとして実行しubuntu、デフォルトのシェルをに設定することです/bin/bash

これがフロントエンドがuseradd廃止された理由であり、新しいユーザーを作成するときに推奨されるツールです。から:adduseruseraddman useradd

   useradd is a low level utility for adding users. On Debian,
   administrators should usually use adduser(8) instead.

したがって、次に使用してadduserこれらの問題を避けてください。

答え2

あなたのシェルはbashではなく通常のshのようです。

非常に迅速な解決策:ただ試して、bash役に立つことを確認してください。

より良い永続的な解決策を見つけるには、/etc/passwdをチェックし、ユーザーがそこにどのシェルを持っているかを確認してください。それを見つけたら、/bin/sh次のように変更してください。/bin/bash

関連情報