コマンドプロンプトでのIP固定

>netsh interface ip show config # インターフェイス名確認
>netsh interface ip set address "<インターフェイス名>" static 192.168.24.58 255.255.255.0 192.168.24.1
>netsh interface ip set address "<インターフェイス名>" dhcp # 自動取得

SoftEther VPN管理マネージャーで仮想NATを有効にしたらプライベートIPが変更されてインターネットに繋がらなくなった件。ipconfig /all で確認してナットク。

参考URL http://www.atmarkit.co.jp/ait/articles/1002/05/news097.html

マウントポイントの共有

Linuxでは、外部デバイスのマウントポイントを複数設定することが可能とのこと。

18.2.3. マウントポイントを共有する

# mount --bind old_directory new_directory

マウントポイントを共有ポイントにするには、

# mount --bind mount_point mount_point
# mount --make-shared mount_point

以下のコマンドはマウントポイントの複製を作ります。

# mount --bind /dev/sdc /mnt

バインド不能のマウントポイントに設定するには、

# mount --bind /dev/sdc /dev/sdc
# mount --make-unbindable /dev/sdc

選択したポイントから下のすべてのマウントポイントを変更するには

# mount --make-runbindable /dev/sdc

これでマウントの複製を作ろうとするとエラーになるはず・・・?

配列変数への文字列の代入

今日もLinuxのシェルスクリプト、配列変数のお勉強です。

今回は、findコマンドで取得したディレクトリ名を配列変数へ代入して表示するスクリプトです。

#!/bin/bash
declare -a dir=()
declare -i count
for DIR in $(find . -maxdepth 1 -type d)
do
    dir=("${dir[@]}" `basename ${DIR}`)
    echo "${dir[count]}"
    count=count+1
done

実は以下のように書けば、同じことをするのに配列変数は関係ないのですけれどね。コードの可搬性、拡張性を考えると配列変数を使うこともあるのかな・・・と。

#!/bin/bash
for DIR in $(find . -maxdepth 1 -type d)
do
    echo `basename $DIR`
done

実際の結果は、隠しディレクトリも表示されます。隠しディレクトリを除外したいときには、findコマンドの -not -regex オプションでドットの付くファイルを指定します。

#!/bin/bash
for DIR in $(find . -maxdepth 1 -type d -not -regex ".*\/\..*")
do
    echo `basename $DIR`
done

maxdepth の値を変えるとさらに掘り進められます・・・が、表示結果があまりエレガントではありません。ではforループをネストすれば良いのでしょうが、それもあまり意味がないのかも知れません。

# sh findDir.sh
public_html
samba
test
ダウンロード
テンプレート
デスクトップ
ドキュメント
音楽
画像
公開

参考URL

http://qiita.com/b4b4r07/items/e56a8e3471fb45df2f59
http://d.hatena.ne.jp/yohei-a/20091028/1256707671
ttp://tapira.hatenablog.com/entry/2014/10/02/120550

Windows管理コマンド一覧

Windowsで使うショートカットコマンドの一覧メモ

shutdown -s シャットダウン
shutdown -r 再起動
regedit レジストリエディタ
services.msc サービス一覧
perfmon.exe /res リソースメーター起動
secpol.msc セキュリティポリシー
gpedit.msc グループポリシー
control userpasswords2 ユーザー管理
lusrmgr.msc ローカルユーザーとアカウント
[Ctrl]+[Alt]+[Delete] 画面ロック・解除
[Ctrl]+[Shift]+[Esc] タスクマネージャー
[Windows]キー+[1],[2],[3] タスクバーのピン止めアプリを順番に起動
notepad メモ帳起動
cmd コマンドプロンプト
excel エクセル起動
winword ワード起動
calc 電卓起動
mspaint ペイント
%userprofile% ユーザープロファイル表示

まだあれば追加して行きたいです。

 

シェルスクリプトの配列変数

今日は、Linuxシェルスクリプトの配列変数のお勉強です。

# vi array.sh
#!/bin/sh
array=("hoge" "fuga" "foo" "bar")
for txt in "${array[@]}"
do
echo $txt
done

配列変数の注意点は以下の 2つ。

1.要素にスペースが含まれることを考慮してダブルクォートで囲むこと
2.* ではなく @ を使用すること

# sh array.sh
hoge
fuga
foo
bar

ふむふむ。配列変数への代入方法など調べる必要がまだありそうです。

http://shellscript.sunone.me/array.html#配列の要素でループする:8177e845bec4a15c29be1b787e514e77

sambaにマウント成功

amazon.co.jpでは発送に時間が掛かりそうだったので注文をキャンセルして、近くのケーズデンキで Logitec HDDケース 3.5HDD USB3.0 ファン付き LHR-EJU3F を調達。早速、Linuxに取り付けました。

いったん、自動マウントを解除してコマンドからHDDをマウント。

# mkdir /home/samba/share
# mount -t xfs -o defaults /dev/sdc /home/samba/share
# chown -R gusachan:nobody /home/samba/share
# chcon -t samba_share_t /home/samba/share -R

起動時にも自動マウントさせるため/etc/fstabの最下行に追加(UUIDはblkidコマンドで確認。)

UUID=xxxxxxxxxxxxxxxxxxxxxxxx /home/samba/share xfs defaults 0 0

システム再起動でWindowsのsambaフォルダから読み取りできました。

参考URL http://jlinuxer.dip.jp/?p=487

LinkStation LS-L320GL分解

手持ちのデータバックアップ用のBaffaloのNAS、LinkStationがpingを打っても反応しなくなったので壊れた疑いもあり、分解してみました。

リンク:http://www.datadoctor.jp/bunkai/buffalo/buffalolinkstation-ls-l320gl.html

LinkStationは、組み込みでLinuxがインストールされており、ファイルはxfs形式で保存されているのでWindowsでの読み出しはできないとのこと。

そこで、Amazon.co.jpでUSBの3.5インチ外付けHDDケースを手に入れてLinuxサーバーに繋いでみようと思います。さて、認識するでしょうか。

DSC_0043

参考URL http://datarescue.yamafd.com/howto_boot_linux/

ポートスキャン遮断 PortSentry

ポートスキャン対策の便利なキットがありましたのでインストールしてみました。

[root@stuffy ~]# wget http://ftp.riken.go.jp/Linux/freshrpms/redhat/9/portsentry/portsentry-1.1-fr8.src.rpm
[root@stuffy ~]# rpmbuild --rebuild portsentry-1.1-fr8.src.rpm
[root@stuffy ~]# rm -f portsentry-1.1-fr8.src.rpm
[root@stuffy ~]# rpm -ivh /root/rpmbuild/RPMS/*/portsentry*.rpm
[root@stuffy ~]# rm -f /root/rpmbuild/RPMS/*/portsentry*.rpm
[root@stuffy ~]# vi /etc/portsentry/portsentry.conf
#KILL_HOSTS_DENY="ALL: $TARGET$ : DENY"
↓
KILL_HOSTS_DENY="ALL: $TARGET$ : DENY" ←コメント解除
[root@stuffy ~]# /etc/init.d/portsentry start
[root@stuffy ~]# chkconfig portsentry on
[root@stuffy ~]# chkconfig --list portsentry

参考URL http://centos.server-manual.com/centos6_portsentry.html

Linuxのパスワードポリシー

/etc/pam.d/system-auth のauth行にpam_tally2.soを新規追加

auth        required      pam_env.so
auth        required      pam_tally2.so deny=3 even_deny_root unlock_time=1800 root_unlock_time=1800

deny=回数

unlock_time=ロック時間(秒)

even_deny_root 管理者アカウントも制限

でもブルートフォースアタック(パスワード総当たり攻撃)されると、設定が裏目にでて永遠にログインできないことになりませんかね。パスワードを/etc/pam.d/passwdでcracklib.so設定して保護すればいいだろぉ・・・あっ、そっかぁ~。(池沼)

参考URL http://hogem.hatenablog.com/entry/20121107/1352297631