「bash」タグアーカイブ

CentOS 7 初期設定でやっておきたいこと(随時更新予定)

CentOS 7をインストール後にやっておきたいこと

CentOS 7をインストールした後に、そのまま使うには面倒なところがありますよね。
そこで、インストール後にやっておきたいことを幾つか記録しておこうと思います。
私の個人的な趣向もありますので、皆さんの環境に合わせて参考になれば幸いです。

なお、CentOS 7自体のインストール方法については、他を参照してください。
以前に書いた様な覚えもありますが、インストール方法に関しては割愛します。

さて、本題のインストール後に行ておきたい初期の設定に関してですが、この記載内容は適宜更新します。
よって、初期の段階でご覧になられた方は、これだけじゃ足りないじゃないか!?と思われる方もいらっしゃるかと思います。
参考情報ですから、基本はあまり期待しないでくださいね。

bashを使いやすくしておこう!

CentOS 7のシェルはbashが基本となっており、昔に比べると随分使いやすくなりました。
昔と言いましても10年以上昔の話なので、ご存知ない方も多いかと思いますが。。。(^^ゞ

VPSなどプロバイダが提供されている環境では、既に独自の設定が為されているところもあり、自分でインストールした場合とは異なったりします。
既に設定が為されている場合もあるようなので、必要ない場合もありますが、コマンドの補完を行ってくれるようにしておきたいです。

コマンドの補完

bashのコマンドを補完してくれる機能は、インストールされた環境によりまちまちであったりします。
まったく補完がされないことを前提に設定を行います。

まずは大文字/小文字を含めた補完を行ってくれる機能を有効にします。
rootユーザとして作業を進めます。
ホームディレクトリに以下のファイルを作成します。

この1行だけのファイルが重要なんです!
/etc/inputrcに記載しても良いはずです。

有効にするにはログインし直すか、以下のコマンドを実行してみてください。

これで反映されると思います。反映されない場合は、再度ログインし直してみてください。
大文字/小文字も含めたコマンドの補完が行われるようになっていると思います。
例えば、以下のコマンドを自動的に保管されるはずです。

ここまでは序の口です。更に補完機能を強化したいと思います。
続いて、以下のコマンドを実行してbashの補完機能を更に強化するパッケージをインストールします。

これを入れることで、コマンドのオプションなどが補完されるようになるんです。
例えば、systemctlのオプションをタブキーを使って補完することが出来る様になります。
ただし、インストール後に再度ログインを行う必要があります。

aliasについては好みがありますから、.bashrcにaliasを適当に追加しますが、今夏何時でbash周りは終わりかな?

bashでコマンドライン補完 大文字小文字にも対応させる

どうも忘れっぽい。
Linuxのコマンドライン(bash)で入力コマンドやファイル名・ディレクトリ/フォルダー名などを補完してくれる機能を使っていると、大文字小文字に対応していなかったり、そもそも全く補完してくれなかったりすることがある。

TABキーで補完してくれる機能は非常にありがたいので、その機能を入れる。

私の環境におけるデフォルト状態では、補完はしてくれるが大文字小文字の違いを考慮されてしまい逆に扱い難い。

では対処方法を以下に記す。

まず、追加モジュールをインストールする。

これ自体は、本当に必要かどうか悩むところではある。

次に、こちらがメインになるのだが設定を追加する。

/etc/inputrcに以下の記述を追加する。
システム全体ではなく、ユーザ毎に設定したい場合には、~/.inputrcに変更を加える。

これを入れておかないと、大文字小文字に対応してくれない。

該当するファイルが無ければ、モジュールのインストールが行われていないものと思われ、必要なモジュールをインストールしてから対処してください。

 

一般ユーザにホームディレクトリ以外を見せなくする。

表題があまり正確ではないので、正確に。

Linux(CentOS 6.x)ですが、sshでログインしたユーザが/を見えたりする状態って嬉しくない時があります。

そういう時に、自分のホームディレクトリ以下のフォルダーやファイル以外を見えなくしてしまおうというのが今回の説明です。

本当は、sshでrootにログイン出来なくした上で、他のユーザからsu -でrootにスイッチしたいと考えました。
その時、他のユーザにおいてホームディレクトリ以下しか見えない設定にしたかったのですが、思うように出来なさそうなので・・・諦めました。

なので、実のところ副産物に過ぎず、あまり問題も気にせず、一応出来たよ・・・ということで書きますね。

まず、前回sshでrootアカウントのログインを出来なくしました。
その続きで見ている人がいたら要注意です。
これから作成するユーザをrootの代わりに作ったユーザIDには設定しないでください。
これから作成するユーザはsu コマンドを利用してrootにスイッチすることは出来ません。

あまり利用される機会は少ないと思いますが・・・

順序を説明します。

まず、新たにユーザを作成します。

一応、フォルダーも作成されて.bashrcなんかも入れてくれています。
useraddコマンドで作成するとちょっと違った感じになっちゃいますので、必ずadduserコマンドで作成してください。

出来上がったホームディレクトを確認します。

chrootするだけなら、この時点で特に設定を変更する必要はないのですが、最終目的はsshでログインまでさせることを考えているので、ここで設定を少し変更します。

理由は、sshでログインして移動させることが出来るディレクトリはroot権限になっている必要があるようです。
更に、オーナーをrootにしてしまうと、パーミッションを変えてやらないと一般ユーザが何も出来ない状態になってしまうからです。

では先程作ったabcユーザのフォルダーに対し設定変更を行います。

ここから必要最小限のファイルをコピーします。
と言いながら、面倒なのでがっつりと(^^ゞ

これで、chroot出来る環境が整ったはずです。
確認します。

これで成功です。

CTRL+Dで一度抜けます。

ここから、今度は作成したユーザ(abc)にsshでログインします。

入れることを確認したら、これも一旦抜けます。
このままでは、cd ..とすると/homeへ移動できてしまうはずです

sshdの設定を変更します。sshd_configファイルに以下の設定を追加します。最後に追加すれば良いはずです。

sshdの設定を再読み込みします。

こんな感じになっていればOKです。

仕上げの確認です。

cd ..で上位のディレクトリへ移動しようとしても移動できていないことが判ると思います。

設定は以上なのですが・・・ここで問題です。

そうです。ファイルを作ることが出来ないんです!

入れるけど、何も作成することが出来ない状態なのです。

そこで、ファイルが作れる環境を準備します。

何度も済みませんが、また抜けてください。
root権限で作業を行う必要があります。

rootアカウントに戻ったら、以下の操作を行います。
作成するディレクトリは任意の名称で構いません。

これで、/home/abc/user_spaceでabcユーザが自由に使えるスペースが出来ました。

先程と同じようにsshでログインしても大丈夫です。

今回この資料を残したのは、chrootで以下のエラーが発生したためです。

この問題を解決する方法が他のサイトにも記載されてはいたのですが、私が調べたサイトでコピーしているフォルダーの内容などをチェックしても失敗してしまったので、それらしきフォルダーをコピーして動くようにした経緯を残したかったからです。

誰かの参考になるかな?
正直、あまり使い道が無い結果になっているのですが・・・

私の最終目的は、ここからsu コマンドでrootユーザにスイッチ出来るところまでだったのですが、それには/etc/passwdをコピーするなど、本来隠しておきたいファイルが公になってしまうことが解りました。
まあ、それでも良かったのかも知れませんが・・・取りあえず、この段階でやる気が尽きましたのでご勘弁ください。

どなたかフォローのコメントを頂ければ幸いです。

P.S.ほとんど見られていないだろうから、コメント無いよな~寂しいなぁ~(8_8)