cron.daily の WARNING

cron.daily の実行時に警告が出ているらしく、以下のようなメールが来ました。

/etc/cron.daily/logrotate:
 
WARNING 'action' not defined in 'php-url-fopen'. Using default value
WARNING 'action' not defined in 'lighttpd-auth'. Using default value
WARNING 'action' not defined in 'lighttpd-fastcgi'. Using default value

最初原因がさっぱりわかりませんでしたが、ちょうど最近 fail2ban をインストールしたサーバだったのでもしかしたら?と jail.conf を見てみました。

すると、php-url-fopen, lighttpd-auth, lighttpd-fastcgi のところに action の定義がありませんでした。 :mrgreen:

この3つは利用していないのですが、警告が出ちゃうみたいですね。

それぞれの箇所に以下の action を追加して fail2ban を再起動したところ警告が出なくなりました。 🙂

action  = sendmail[name=Postfix, dest=you@example.com]

vsftpd コマンド制限

ftp の一部のコマンドを使えないようにする設定のメモです。

ディレクトリ削除コマンド rmdir を使えなくしてみます。

まずは、コマンド一覧と rmdir が使える状態である事を確認します。

ftp> help
Commands may be abbreviated.  Commands are:
 
!               cr              mdir            proxy           send
$               delete          mget            sendport        site
account         debug           mkdir           put             size
append          dir             mls             pwd             status
ascii           disconnect      mode            quit            struct
bell            form            modtime         quote           system
binary          get             mput            recv            sunique
bye             glob            newer           reget           tenex
case            hash            nmap            rstatus         trace
ccc             help            nlist           rhelp           type
cd              idle            ntrans          rename          user
cdup            image           open            reset           umask
chmod           lcd             passive         restart         verbose
clear           ls              private         rmdir           ?
close           macdef          prompt          runique
cprotect        mdelete         protect         safe
(rmdir がありますね)
ftp> mkdir testdir1
257 "/testdir1" created
ftp> dir
227 Entering Passive Mode (127,0,0,1,234,141)
150 Here comes the directory listing.
drwxrwsr-x    2 14       50           4096 Sep 06 11:55 testdir1
226 Directory send OK.
ftp> rmdir testdir1
250 Remove directory operation successful.
ftp> dir
227 Entering Passive Mode (127,0,0,1,234,153)
150 Here comes the directory listing.
226 Directory send OK.
ftp>
(rmdir コマンドが実行できます)

次に vsftpd.conf に cmds_allowed を追加します。
version 2.1 からは cmds_denied が使えるみたいです。

cmds_allowed=ABOR,ACCT,ALLO,APPE,CDUP,CWD,DELE,HELP,LIST,MKD,NLLST,NOOP,MODE,PASV,PORT,PWD,QUIT,REIN,REST,RETR,RNFR,RNTO,SITE,SMNT,STAT,STOR,STOU,STRU,SYST,TYPE,LPRT,LPSV,ADAT,AUTH,CCC,CONF,ENC,MIC,PBSZ,FEAT,OPTS,EPRT,EPSV,LANG,MDTM,MLSD,MLST,SIZE

こんなに要らない? 🙂

vsftpd.conf を変更したので vsftpd を再起動します。

root# service vsftpd restart

rmdir が使えなくなった事を確認します。

ftp> mkdir testdir2
257 "/testdir2" created
ftp> dir
227 Entering Passive Mode (127,0,0,1,234,190)
150 Here comes the directory listing.
drwxrwsr-x    2 14       50           4096 Sep 06 12:25 testdir2
226 Directory send OK.
ftp> rmdir testdir2
550 Permission denied.
ftp> dir
227 Entering Passive Mode (127,0,0,1,234,120)
150 Here comes the directory listing.
drwxrwsr-x    2 14       50           4096 Sep 06 12:25 testdir2
226 Directory send OK.
(rmdir コマンドを実行しようとすると Permission denied. になりました)

コマンド一覧からは rmdir が消えないみたいですね :mrgreen:

ftp> help
Commands may be abbreviated.  Commands are:
 
!               cr              mdir            proxy           send
$               delete          mget            sendport        site
account         debug           mkdir           put             size
append          dir             mls             pwd             status
ascii           disconnect      mode            quit            struct
bell            form            modtime         quote           system
binary          get             mput            recv            sunique
bye             glob            newer           reget           tenex
case            hash            nmap            rstatus         trace
ccc             help            nlist           rhelp           type
cd              idle            ntrans          rename          user
cdup            image           open            reset           umask
chmod           lcd             passive         restart         verbose
clear           ls              private         rmdir           ?
close           macdef          prompt          runique
cprotect        mdelete         protect         safe

今回はシステム全体で rmdir を使えなくしちゃいましたが、ユーザ毎に個別に設定する事もできるみたいです。

NFC

週間アスキー9/10増刊号にプログラマブル NFC ディスクの付録が付いていたので購入しました。

週間アスキー 9/10 増刊号

NFC ディスクにスマホで行いたい事(タスク)を仕込んでおくと、スマホをかざすだけでタスクを実行してくれるようになります。

便利ですね 🙂

タスクはNFCタスクランチャーというアプリを使って NFC ディスクに何度でも書き込む事ができます。

帰宅した時に WiFi に接続するようにしたり、車に乗る時にドライブモードにしたり。。。頻繁に行う事を設定しておくのがよさそうです。
上手く使えばすごく便利です 🙂

とりあえず URL を開くタスクを実行してみました。

それで、実際に何に使うかと言えば開発中のスマホサイトへアクセスできるように URL をセットしてみました :mrgreen:

住所から都道府県を取得するには?

php で住所から都道府県コードを取得する実装を考えてみました。

色んな方法があるかと思いますが自分の場合は以下になりました 🙂

//住所
$addr = "東京都港区ほげほげ1-2-3";
 
//先頭3文字を切り出す
$cut = mb_substr($addr, 0, 3, 'UTF-8');
 
//都道府県先頭3文字の配列を作成
$prefs = array(
        1 => '北海道',
        2 => '青森県',
        ...省略...
        14 => '神奈川', //県は削除
        15 => '新潟県',
        ...省略...
        30 => '和歌山', //県は削除
        ...省略...
        46 => '鹿児島', //県は削除
        47 => '沖縄県'
);
 
//検索
$prefjis = array_search($cut, $prefs);
 
echo $prefjis;

最初 [都道府県] で preg_match() していたのですが、
“広島県府中市” が出てきて “広島県府” となってしまい
この方法に行きつきました 🙂

メモメモ 🙂

URL Reader

iPhone アプリ「URL Reader」を公開しました 🙂


どういうものかと言うと、印刷された URL を iPhone のカメラで撮影して、それを OCR で読み取ってブラウザで開く。というシンプルなアプリです 😎

 

  1. URL を撮影
  2. URL読み取り
  3. 設定画面

良かったら使ってみてください ❗

LVM partition 拡張

LVM Partition を拡張したのでメモしときます。

1. DISK の未使用部分を LVM Partition(8e) に割り当てる
fdisk で /dev/sda3 を追加。

# fdisk -l /dev/sda
 
Disk /dev/sda: 1998.0 GB, 1997998653440 bytes
255 heads, 63 sectors/track, 242909 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x53c96b5d
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
/dev/sda2              64        9730    77637632   8e  Linux LVM
/dev/sda3            9730      242909  1873015886+  8e  Linux LVM
2. 作成した LVM Partition(8e) に PV を作成する
# pvcreate /dev/sda3
  Writing physical volume data to disk "/dev/sda3"
  Physical volume "/dev/sda3" successfully created

確認。

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               VolGroup00
  PV Size               74.04 GiB / not usable 10.00 MiB
  Allocatable           yes (but full)
  PE Size               32.00 MiB
  Total PE              2369
  Free PE               0
  Allocated PE          2369
  PV UUID               19Ucwg-EVtw-jCY4-Oiob-JgbP-iT6e-kHsXJa
 
  "/dev/sda3" is a new physical volume of "1.74 TiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name
  PV Size               1.74 TiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               NxgCf3-NFs6-5glX-sMM9-CdGp-tAgS-uBQ2A9
3. VG(VolumeGroup00) に PV を追加する
# vgextend VolGroup00 /dev/sda3
  Volume group "VolGroup00" successfully extended

確認。

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               VolGroup00
  PV Size               74.04 GiB / not usable 10.00 MiB
  Allocatable           yes (but full)
  PE Size               32.00 MiB
  Total PE              2369
  Free PE               0
  Allocated PE          2369
  PV UUID               19Ucwg-EVtw-jCY4-Oiob-JgbP-iT6e-kHsXJa
 
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               VolGroup00
  PV Size               1.74 TiB / not usable 29.08 MiB
  Allocatable           yes
  PE Size               32.00 MiB
  Total PE              57159
  Free PE               57159
  Allocated PE          0
  PV UUID               NxgCf3-NFs6-5glX-sMM9-CdGp-tAgS-uBQ2A9
# vgdisplay
  --- Volume group ---
  VG Name               VolGroup00
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                5
  Open LV               5
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1.82 TiB
  PE Size               32.00 MiB
  Total PE              59528
  Alloc PE / Size       2369 / 74.03 GiB
  Free  PE / Size       57159 / 1.74 TiB
  VG UUID               T6SPgx-fbpY-9WP0-H6Ux-WJKb-V4eR-1632Cd
4. LV(home) のサイズを VG(VolGroup00) の空きサイズを割り当てて拡張する
# lvextend -l +57159 /dev/VolGroup00/home
  Extending logical volume home to 1.80 TiB
  Logical volume home successfully resized
5. サイズを確認
# lvdisplay
  --- Logical volume ---
  LV Path                /dev/VolGroup00/root
  LV Name                root
  VG Name                VolGroup00
  LV UUID                2ZzdSh-GjPN-y7Vk-U0ls-LiY3-4cfK-umDFpE
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2012-08-02 05:44:43 +0900
  LV Status              available
  # open                 1
  LV Size                6.00 GiB
  Current LE             192
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
 
  --- Logical volume ---
  LV Path                /dev/VolGroup00/swap
  LV Name                swap
  VG Name                VolGroup00
  LV UUID                OV2tSK-tmZz-bwqB-SWmC-TViE-Vd0r-ThqMqH
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2012-08-02 05:44:46 +0900
  LV Status              available
  # open                 1
  LV Size                4.00 GiB
  Current LE             128
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
 
  --- Logical volume ---
  LV Path                /dev/VolGroup00/tmp
  LV Name                tmp
  VG Name                VolGroup00
  LV UUID                LUddtQ-2jvh-p2lI-27QP-QcIE-x4C1-gMsj5q
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2012-08-02 05:44:46 +0900
  LV Status              available
  # open                 1
  LV Size                2.00 GiB
  Current LE             64
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
 
  --- Logical volume ---
  LV Path                /dev/VolGroup00/var
  LV Name                var
  VG Name                VolGroup00
  LV UUID                0y5eR0-5pcW-zrpL-iHsf-hvSK-2CAq-n1ENhC
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2012-08-02 05:44:48 +0900
  LV Status              available
  # open                 1
  LV Size                4.00 GiB
  Current LE             128
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3
 
  --- Logical volume ---
  LV Path                /dev/VolGroup00/home
  LV Name                home
  VG Name                VolGroup00
  LV UUID                E0Q4NM-PLJm-RUGg-8A0u-LYmv-P18c-NyGtOZ
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2012-08-02 05:44:51 +0900
  LV Status              available
  # open                 1
  LV Size                1.80 TiB
  Current LE             59016
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:4
# vgdisplay
  --- Volume group ---
  VG Name               VolGroup00
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  8
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                5
  Open LV               5
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1.82 TiB
  PE Size               32.00 MiB
  Total PE              59528
  Alloc PE / Size       59528 / 1.82 TiB
  Free  PE / Size       0 / 0
  VG UUID               T6SPgx-fbpY-9WP0-H6Ux-WJKb-V4eR-1632Cd
6. ファイルシステムの拡張をする前に念のため umount

umout /home したら /home を使用しているプロセスがいて busy になったので、プロセス停止。

プロセスの調べ方は fuser コマンドを利用する。

# fuser -muv /home
                     USER        PID ACCESS COMMAND
/home:               mysql      2370 F.c.. (mysql)mysqld
                     root       2457 ....m (root)httpd
                     apache    19941 ....m (apache)httpd
                     apache    19942 ....m (apache)httpd
                     apache    19943 ....m (apache)httpd
                     apache    19944 ....m (apache)httpd
                     apache    19945 ....m (apache)httpd
                     apache    19946 ....m (apache)httpd
                     apache    19947 ....m (apache)httpd
                     apache    19948 ....m (apache)httpd
                     apache    19952 ....m (apache)httpd
                     apache    19959 ....m (apache)httpd
                     apache    19960 ....m (apache)httpd
                     apache    24180 ....m (apache)httpd
                     apache    26363 ....m (apache)httpd
                     apache    26511 ....m (apache)httpd
                     apache    26514 ....m (apache)httpd

プロセスが判明したら停止。

# service mysqld stop
# service httpd stop

そして umount

# cd /
# umount /home
7. ファイルシステムを拡張

拡張前のサイズ。

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-root
                      6.0G  4.1G  1.6G  72% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             485M  124M  336M  27% /boot
/dev/mapper/VolGroup00-home
                       58G  528M   54G   1% /home
/dev/mapper/VolGroup00-tmp
                      2.0G   68M  1.9G   4% /tmp
/dev/mapper/VolGroup00-var
                      4.0G  325M  3.5G   9% /var

fsck しないと拡張できないので必ず行う。

# e2fsck -n /dev/VolGroup00/home
# e2fsck /dev/VolGroup00/home
# e2fsck -f /dev/VolGroup00/home

いよいよファイルシステム拡張。

51分かかりました 😥

# resize2fs -p /dev/VolGroup00/home
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/VolGroup00/home to 483459072 (4k) blocks.
Begin pass 1 (max = 14289)
Extending the inode table     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/VolGroup00/home is now 483459072 blocks long.

mount してサイズ確認。

# mount /home
# df -h
Filesystem            Size  Used Avail Use% マウント位置
/dev/mapper/VolGroup00-root
                      6.0G  4.1G  1.6G  72% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             485M  124M  336M  27% /boot
/dev/mapper/VolGroup00-tmp
                      2.0G   68M  1.9G   4% /tmp
/dev/mapper/VolGroup00-var
                      4.0G  325M  3.5G   9% /var
/dev/mapper/VolGroup00-home
                      1.8T  544M  1.7T   1% /home

拡張できました ❗

8. OS 再起動

プロセスを停止したので OS 再起動しておきました。

OS 起動時にマウントできるかの確認の意味も込めて。

# sync;sync;sync;shutdown -r now

sendmail aliases から起動したコマンドの実行ユーザ

毎回ハマって調べるのに時間がかかるのでメモ。

sendmail の aliases からコマンドを起動した時のコマンドを実行する

ユーザはmail ユーザになってしまいますが(CentOS 5 の場合)

これを別のユーザにしたい時にどうすればよいか。

aliases で ファイルを include して、そのファイルのオーナーを

実行させたいユーザに chown すればOK。

以下参考にさせていただいたサイトです。

ありがとうございます!

Sendmailのaliasesを実行するのは誰か

 

ロゴ

会社のロゴを作成しました。


 

 

名刺や WEB サイト、資料のヘッダなどに使ってみようかと思っております。

tripwire St9exception

tripwire のデータベースを更新しようとしたところ例外が発生 😯

[root@hoge ~]# tripwire -m u -c /etc/tripwire/tw.cfg -r /var/lib/tripwire/report/hoge-20120705-123456.twr
*** Fatal exception: St9exception
*** Exiting...

レポートファイルがおかしかったのか ❓

tripwire -m c してからもう一度実行したところ例外が発生しませんでした :mrgreen:

[root@hoge ~]# tripwire -m c
 
[root@hoge ~]# tripwire -m u -c /etc/tripwire/tw.cfg -r /var/lib/tripwire/report/hoge-20120705-223456.twr