LS-VLへ rootでの sshログインを可能にする
実はずっと前に実施済みだったのだけど、方法を整理してなかったので備忘録として
ここ暫く調子が良くなってきた睡眠障害ですが、昨日はまた2時半頃に目が覚め朝まで眠れなくなる症状が出てしまいました。今朝も3時半頃に目が覚めてしまい朝まで1〜2時間少しウトウトした程度。眠気と倦怠感で、まだ調子が戻っていません。(ミスも多く、この書き込みも三度目。保存する前に誤って消してしまった。)
この程度で眠気に負けるようじゃ仕事に復帰なんてできないぞ。頑張れ>自分
先にHDDが壊れ何とか復活させた Buffalo製の NAS、LS-VLですが、rootでの sshログインを可能にする方法を備忘録として書いておこうと思います。実は HDDが壊れるずっと前からやってあったのですが、方法を整理してなかったので。
とは言うものの、ネット上を探せば既に多くの先人達が方法を詳しく書き残してくれています。なので、ざっくりとしたメモ程度です。
1. 目的
ワタシは LS-VL を専らスカパー録画装置として使っています。録画した番組が保存されている場所は共有ディスクとしてマウントしてもアクセスすることができません。そのため、録画した番組をタイトル毎に整理したいと思っても出来ません。ただただ録画した番組がズラ〜っと並んで表示されるだけ。しかも時々番組タイトルの先頭に「無料」とか「新」とか付くことがあるため、毎週放送される連続番組をタイトル順に表示させても途中の話が変な場所に並ぶことになります。さらに加えて、スカパーチューナーで表示できるタイトル数に限りがあるという事も問題でした。例えば 2TBの HDDに30分番組を録画していったとすると、おそらく数百タイトルを保存できますが、スカパーチューナーでは全タイトルを表示することができません。すごく使い勝手が悪いのです。
録画した番組をタイトル毎にディレクトリに分けて整理して、録画した番組へのアクセスを楽にしたい。これが主な目的です。
2. 対象機種、ファームウェアVer.
以下の機種、ファームウェアで可能な事を確認しています。
機種名:
ファームウェアVer.:
3. 準備("acp_commander.jar"の入手)
先ず"acp_commander.jar"を入手します。
- Webブラウザで NAS-Centralのホームページを開く。
- "Downloads" → "TOOLS" → "ALL_LS_KB_ARM9/" → "ACP_COMMANDER/" とクリックして行くと "acp_commander.jar"に辿り着くので、これをダウンロードする。
- PCの自分のホームディレクトリ下にでも作業ディレクトリ(例えば"LSVL_work"など)を作り、その下にダウンロードした "acp_commander.jar"を置く。
"acp_commander.jar" はネットワーク経由で1つのコマンド行を LS-VL 上で実行させる Javaプログラムで、以下のように使用します。
$ java -jar acp_commander.jar -t {IP_ADDRESS} -ip {IP_ADDRESS} -pw {ADMIN_PASSWORD} -c "実行コマンド"
IP_ADDRESS : LS-VL のIPアドレス
ADMIN_PASSWORD : adminのパスワード。LS-VL初期状態では password。
実行コマンド:LS-VL上で実行させたいコマンド行
|
これを使用することで、LS-VL上で任意のコマンドを実行させることができます。例えば、LS-VLのIPアドレスが 192.168.0.10 で ls -lコマンドを実行させたい場合、
使用例)
$ cd ~/LSVL_work
$ java -jar ./acp_commander.jar -t 192.168.0.10 -ip 192.168.0.10 -pw password -c "ls -l"
|
とします。
4. シェルスクリプトを書く
rootで sshログインできるようにするためのシェルスクリプト(ここではファイル名を"root_ssh.sh"とする)を書きます。"root_ssh.sh"シェルスクリプトでは "acp_commander.jar" を使って以下の処理を LS-VL上で行わせます。
- rootのパスワードを shadowファイルから削除する
- rootのパスワードを新しく設定する
- rootでの sshログインを許可するよう sshの設定を変更する
- ssh デーモンを再起動する
具体的には以下のようになります。赤字の部分は自分の環境に合わせて修正します。
#!/bin/bash
IP=192.168.xx.xx # ここに LS-VL の IP address を書く。
Admin_PW="password" # admin のパスワードです。
ROOT_PW="hogehoge" # root の新パスワードにしたい文字列を書く。
ACP_COM="java -jar ./acp_commander.jar -t ${IP} -ip ${IP} -pw ${Admin_PW}"
#
# erase root password from shadow file
#
$ACP_COM -c "chmod 644 /etc/shadow"
$ACP_COM -c "cp /etc/shadow /mnt/disk1/share"
$ACP_COM -c "cat /mnt/disk1/share/shadow | perl -pe 's/root:[^:]*?:/root::/' > /mnt/disk1/share/shadow.new"
$ACP_COM -c "cp /mnt/disk1/share/shadow.new /etc/shadow"
$ACP_COM -c "chmod 400 /etc/shadow"
#
# set root password
#
$ACP_COM -c "(echo $ROOT_PW ; echo $ROOT_PW) | passwd"
#
# modify /etc/sshd_conf
#
$ACP_COM -c "cp /etc/sshd_config /etc/sshd_config.org"
$ACP_COM -c "cat /etc/sshd_config > /mnt/disk1/share/sshd_conf.txt"
$ACP_COM -c "sed -i 's/UsePAM yes/UsePAM no/g' /mnt/disk1/share/sshd_conf.txt"
$ACP_COM -c "sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /mnt/disk1/share/sshd_conf.txt"
$ACP_COM -c "sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' /mnt/disk1/share/sshd_conf.txt"
$ACP_COM -c "cp /mnt/disk1/share/sshd_conf.txt /etc/sshd_config"
$ACP_COM -c "chmod 600 /etc/sshd_config"
#
# restart sshd
#
$ACP_COM -c "/etc/init.d/sshd.sh restart"
|
作成したシェルスクリプトは"acp_commander.jar"と同じディレクトリ ("LSVL_work") に起きます。
5. シェルスクリプトを実行する
シェルスクリプトに実行権を付けて実行します。
$ cd ~/LSVL_work
$ chmod +x ./root_ssh.sh
$ ./root_ssh.sh
|
シェルスクリプトの実行が終われば、もうLS-VLに rootで sshログインできるようになっているはずです。
で新しいrootパスワードを入力してログインできれば成功。あとは ".bash_profile", ".bashrc", ".inputrc"等のファイルを編集、作成して環境を整えます。
補足:録画したタイトルが保存されている場所と注意
LS-VLで録画した番組が保存されるディレクトリは "/mnt/disk1/.hierophant/recorded-contents/"です。また、番組のムーブ機能で他の LinkStationからムーブされた番組は "/mnt/disk1/.hierophant/dlna/"配下に保存されます。
いずれも上記ディレクトリ配下にディレクトリを作成して、より深い階層に番組タイトルを移動するのは大丈夫ですが、.hierophant/以外のディレクトリツリー配下(例えば "/mnt/disk1/share/"配下)に移動したら最後、その番組は二度と観る事ができなくなります。.hierophant/配下の元のディレクトリに戻してもダメでした。おそらくデジタル著作権管理のためだろうと思いますが、要注意です。
|