Skip to content

Linux

sudo でリダイレクトするには

sudo の実行結果をリダイレクトしようとするとエラーになります。

1
2
$ sudo echo "TEST" > /root/test.txt
-bash: /root/test.txt: Permission denied

このような場合は sudo sh -c の引数として一連のコマンドを実行します。

1
$ sudo /bin/sh -c 'echo "TEST" > /root/test.txt'

参考までに、「-c」オプションは man によると以下のように書かれています。

-c Read commands from the command_string operand instead of from the standard input. Special parameter 0 will be set from the command_name operand and the positional parameters ($1, $2, etc.) set from the remaining argument operands.

CoreLinux 6.3 を VIRL に登録する

Tiny Core Linux はフットプリントが非常に小さい Linux ディストリビューションで、Cisco VIRL のような仮想化された検証環境内で複数インスタンスを立ち上げても軽快に動作する、という特徴があります。用途に応じて幾つかの種類があります。参考として記載したサイズは 6.3 用 ISO イメージのサイズです。

  1. Core
    • 9MB 程度。CLI だけの、最小環境での利用を想定。
  2. TinyCore
    • 15MB 程度。GUI(X)を含む。
  3. CorePlus
    • 84MB 程度。TinyCore に様々なパッケージを追加している。

追加パッケージも数多く提供されているので Core をベースにパッケージを追加し、カスタマイズしていくのも簡単です。今回は Core を VIRL に登録してみます。

JSON や XML を整形して表示する

JSON や XML を整形して表示出来るツールをまとめます。

  • JSON の整形
    1. Python の標準ライブラリを使う
    2. 軽量 JSON パーサー「jq」を使う
  • XML の整形
    1. xmllint を使う
    2. tidy を使う
    3. xmlstarlet を使う

ユーザ名の入力だけでコンソール / SSH ログイン出来るようにする

頻繁にログイン・ログアウトを繰り返す検証環境ではログインの手間を省く為に以下のような工夫が出来ると思います。

  1. 鍵交換方式にしてパスワード不要でログイン出来るようにする
  2. expect や TeraTerm マクロ等で、自動ログインスクリプトを作成する
  3. sshpass を使って対話的なパスワード入力を省略する
  4. (パスワードを入力せずに)ユーザ名だけでコンソールや SSH ログイン出来るようにする

今回は 4 の「ユーザ名だけでコンソールや SSH ログイン出来るように」設定してみます。セキュリティの観点からは極めて脆弱になりますので、よく危険性を理解した上で、利用する必要があります。

VMware ESXi 上の CentOS / Ubuntu でコンソールを有効化するには

仮想環境を使うと検証がはかどります。ただ、仮想環境上にクローズなネットワークを作って検証する場合は(IP での疎通性が無い為)いちいち VI Client や Web Client からコンソール接続する必要があり、不便です。しかし、VMware では仮想マシンのコンソールをネットワークにリダイレクトする機能があるので、これを使えば VI Client や Web Client を使わなくても仮想マシンのコンソールに接続出来て便利です。今回は CentOS や Ubuntu 等の仮想マシンのコンソールポートに TELNET で接続出来るように設定してみます。

Raspberry Pi をワイヤレスなコンソールサーバにする

Lantronix 社 の xDirect シリーズはイーサネット経由でシリアルポート(RS232)にアクセス出来る製品だそうです。「簡易コンソールサーバ」とも表現出来ると思います。

ただ、Amazon.co.jp や NTT-X ストアには基本的に在庫が無くて入手まで時間がかかると予想される上、NTT-X ストアで PoE 対応版の価格は約 21,000 円と、かなり高価な価格設定になっていました… そこで今回は Raspberry Pi をコンソールサーバにしてみようと思います。Raspberry Pi はワイヤレスに対応させ、一般的なコンソールサーバ製品と差別化してみます。

CentOS 7 で sshd の待ち受けポートを変更するには

sshd は標準で 22/TCP を Listen(待ち受け)します。しかし、標準設定のままにしておくとあちこちからアクセスされ、セキュリティ強度が高いとは言えません。そこで、今回は CentOS7 で sshd が Listen するポートを 22222/TCP に変更してみます。