2011年2月27日

HTTPのPOST処理のサンプル - VBScript

概要

VBScriptでHTTPのPOST処理するサンプルコードを示す。


サンプル

myPost.vbs

Option Explicit

Dim myHttpRequest
Dim myURL
Dim myPostData

myURL = "http://myhost.mydomain"
myPostData = "a=123&b=456"

Set myHttpRequest = WScript.CreateObject("MSXML2.XMLHTTP.3.0")

Call myHttpRequest.Open("POST", myURL, False)
Call myHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
Call myHttpRequest.Send(myPostData)

WScript.Echo(myHttpRequest.responseText)

Set myHttpRequest = Nothing

以上

2011年2月25日

dmidecode(8) - 使い方

dmidecode(8)の使い方の例
概要

DMI(Desktop Management Interface)テーブルを表示するツール
BIOS設定情報などが表示できる

使い方


# dmidecode 2.10
SMBIOS 2.4 present.
53 structures occupying 1904 bytes.
Table at 0x7FCEA000.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
       Vendor: FUJITSU SIEMENS
       Version: 4.06  Rev. 1.08.2550            
       Release Date: 12/15/2008
       Address: 0xE6D10
       Runtime Size: 103152 bytes
       ROM Size: 1024 kB
       Characteristics:
               PCI is supported
               PNP is supported
               BIOS is upgradeable
               BIOS shadowing is allowed
               ESCD support is available
               Boot from CD is supported
               Selectable boot is supported
               EDD is supported
               Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
:

備考

  • RHEL/CentOS4系では、kernel-utilsパッケージ内のコマンドだが、5系、6系ではdmidecodeパッケージに含まれる

sudo(8) の使い方

sudo(8)を実行できるユーザや、コマンドを制御する方法を示す。

デフォルト状態


$ sudo yum check-update
[sudo] password for owner:
owner is not in the sudoers file.  This incident will be reported.
$ sudo yum update
[sudo] password for owner:
owner is not in the sudoers file.  This incident will be reported.

定義追加(最終行に下記1行を追加)


# visudo
…
owner ALL=(ALL) /usr/bin/yum

再度実行


$ sudo yum check-update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
$ sudo yum update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Update Process
No Packages marked for Update
You have new mail in /var/spool/mail/owner

check-updateだけを許す設定に変えてみる


# visudo
…
owner ALL=(ALL) /usr/bin/yum check-update

再度実行


$ sudo yum check-update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
$ sudo yum update
Sorry, user owner is not allowed to execute '/usr/bin/yum update' as root on localhost.localdomain.


sudoの一部エラーは、セキュリティアタックの可能性としてroot宛メールで通知される


localhost.localdomain :  2月 24 10:08:56 : owner : user NOT in sudoers ; TTY=pts/3 ; PWD=/home/owner ; USER=root ; COMMAND=/usr/bin/yum update

  • 全てのエラーが見たければ、/var/log/secureを見ると良い

2011年2月24日

Linuxドライバー超サンプル

何の機能も無いが、とりあえずドライバーとして組み込めるモジュールを作ってみる。

確認環境

  • CentOS5.5(Intel64)

モジュールのソースコード(ファイル名はtoy_mod.c)

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
static int toy_mod_init(void)
{
       return 0;
}
static void toy_mod_exit(void)
{
}
module_init(toy_mod_init);
module_exit(toy_mod_exit);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("toy module: no function, no action");
MODULE_AUTHOR(“Nekooyaji”);

Makefile

obj-m := toy_mod.o

コンパイル方法

# make -C /lib/modules/$(uname -r)/build SUBDIRS=$PWD modules

モジュール組み込み

# /sbin/insmod toy_mod.ko
# /sbin/lsmod | grep toy
toy_mod                34304  0

モジュール取り外し

# /sbin/rmmod toy_mod
# /sbin/lsmod | grep toy

メモ

  • MODULE_DESCRIPTION、MODULE_AUTHORは動作上必須ではない
  • MODULE_LICENSEを設定しない場合、insmod時に下記メッセージが/var/log/messagesに発生
    toy_mod: module license 'unspecified' taints kernel.

2011年2月20日

[Wordpress] VC Searchをちょこっと改造

WordpressのVC Searchというプラグインを便利で使っている。ただ、楽天市場とは相性が悪いようで、偶に、503エラーを拾ってしまう。

そこで以下の応急改造を施してみた。

変更前(vc_search.php)

1165: $rwsBuff  = file_get_contents($rwsurl );

変更後(vc_search.php)

1165: usleep(500000);
1166: 
1167: $rwsBuff  = file_get_contents($rwsurl );


要は、楽天APIのアクセス前に0.5秒のスリープを入れてみただけ。

2011年1月31日

[HTML]Google Static Maps API V2

簡単に使えたので記録しておく。


概要

以下のようにGoogleマップをブログに表示する方法。



やり方

上記の地図は以下のHTMLをブログ記事に書いてあるだけ。IMGタグのSRCパラメータにGoogleが指定する方法で表示したい地図情報記述する。

<img src="http://maps.google.com/maps/api/staticmap?zoom=15&size=400x200&markers=%E6%9D%B1%E4%BA%AC%E9%A7%85&sensor=false" />

zoomは、地図の縮尺で0〜21。地図として周辺の状況が伝えたいなら15かな。

sizeは、地図画像のサイズで最大で640x640。

markersは、地図の中心でマーカーを付ける場所、住所、緯度・経度、(著明な)場所名を指定。ちなみに「%E6%9D%B1%E4%BA%AC%E9%A7%85」は、「東京駅」がURLエンコードしたもの。

sensorは、とりあえずfalseを指定。

参考


以上

2011年1月11日

CentOSセキュリティアップデート - 運用日誌

CentOS5アップデートを実施(1/8検知、1/11適用)。



適用状況は以下

Dependencies Resolved

================================================================================
Package             Arch        Version                   Repository      Size
================================================================================
Installing:
kernel              x86_64      2.6.18-194.32.1.el5       updates         19 M
kernel-devel        x86_64      2.6.18-194.32.1.el5       updates        5.4 M
Updating:
kernel-headers      x86_64      2.6.18-194.32.1.el5       updates        1.1 M
Removing:
kernel              x86_64      2.6.18-194.17.1.el5       installed       92 M
kernel-devel        x86_64      2.6.18-194.17.1.el5       installed       16 M

Transaction Summary
================================================================================
Install       2 Package(s)
Upgrade       1 Package(s)
Remove        2 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Total size: 25 M
Is this ok [y/N]: y

以上

2011年1月6日

トラブル対応20111105 - 運用日誌

SELinuxのエラーログに以下が発生。

host=localhost.localdomain type=AVC msg=audit(1294116997.483:57): avc: denied { read } for pid=4029 comm="smartd" name="libm.so.6" dev=sda2 ino=1508034 scontext=system_u:system_r:fsdaemon_t:s0 tcontext=system_u:object_r:file_t:s0 tclass=lnk_file


2010年12月31日

lspci(8) - 使い方

lspci(8)の使い方の例。

概要

pciデバイスの認識状況を表示するコマンドツール

使い方

NEC製VersaProR VA15X(PC-VA15XRF)での実行結果

# lspci -v
00:00.0 Host bridge: ATI Technologies Inc RS200/RS200M AGP Bridge [IGP 340M] (rev 02)
        Flags: bus master, 66MHz, medium devsel, latency 64
        Memory at f8000000 (32-bit, prefetchable) [size=64M]
        Memory at f4800000 (32-bit, prefetchable) [size=4K]
        Capabilities: [a0] AGP version 2.0

00:01.0 PCI bridge: ATI Technologies Inc PCI Bridge [IGP 340M] (prog-if 00 [Normal decode])
        Flags: bus master, 66MHz, medium devsel, latency 99
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=68
        I/O behind bridge: 0000a000-0000afff
        Memory behind bridge: f4500000-f45fffff
        Prefetchable memory behind bridge: f6000000-f7ffffff

00:02.0 USB Controller: ALi Corporation USB 1.1 Controller (rev 03) (prog-if 10 [OHCI])
        Subsystem: NEC Corporation Unknown device 8172
        Flags: bus master, medium devsel, latency 64, IRQ 11
        Memory at f4400000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [60] Power Management version 2

00:04.0 Multimedia audio controller: ALi Corporation M5451 PCI AC-Link Controller Audio Device (rev 02)
        Subsystem: NEC Corporation Unknown device 81bb
        Flags: bus master, medium devsel, latency 64, IRQ 11
        I/O ports at 8800 [size=256]
        Memory at f4402000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [dc] Power Management version 2

00:06.0 Bridge: ALi Corporation M7101 Power Management Controller [PMU]
        Subsystem: NEC Corporation Unknown device 7101
        Flags: medium devsel

00:07.0 ISA bridge: ALi Corporation M1533/M1535/M1543 PCI to ISA Bridge [Aladdin IV/V/V+]
        Subsystem: ALi Corporation ALi M1533 Aladdin IV/V ISA Bridge
        Flags: bus master, medium devsel, latency 0
        Capabilities: [a0] Power Management version 1

00:0a.0 CardBus bridge: Texas Instruments PCI1520 PC card Cardbus Controller (rev 01)
        Subsystem: NEC Corporation Unknown device 81c4
        Flags: bus master, medium devsel, latency 168, IRQ 11
        Memory at f4403000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=00, secondary=02, subordinate=05, sec-latency=176
        Memory window 0: 50000000-51fff000 (prefetchable)
        Memory window 1: 52000000-53fff000
        I/O window 0: 00001000-000010ff
        I/O window 1: 00001400-000014ff
        16-bit legacy interface ports at 0001

00:0a.1 CardBus bridge: Texas Instruments PCI1520 PC card Cardbus Controller (rev 01)
        Subsystem: NEC Corporation Unknown device 81c4
        Flags: bus master, medium devsel, latency 168, IRQ 11
        Memory at f4404000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=00, secondary=06, subordinate=09, sec-latency=176
        Memory window 0: 54000000-55fff000 (prefetchable)
        Memory window 1: 56000000-57fff000
        I/O window 0: 00001800-000018ff
        I/O window 1: 00001c00-00001cff
        16-bit legacy interface ports at 0001

00:0b.0 USB Controller: ALi Corporation USB 1.1 Controller (rev 03) (prog-if 10 [OHCI])
        Subsystem: NEC Corporation Unknown device 8173
        Flags: bus master, medium devsel, latency 64, IRQ 11
        Memory at f4405000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [60] Power Management version 2

00:0f.0 IDE interface: ALi Corporation M5229 IDE (rev c4) (prog-if fa)
        Subsystem: NEC Corporation Unknown device 8171
        Flags: bus master, medium devsel, latency 64
        I/O ports at 8080 [size=16]
        Capabilities: [60] Power Management version 2

00:12.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
        Subsystem: NEC Corporation Unknown device 8192
        Flags: bus master, medium devsel, latency 64, IRQ 11
        I/O ports at 9c00 [size=256]
        Memory at f4406000 (32-bit, non-prefetchable) [size=256]
        Capabilities: [50] Power Management version 2

01:05.0 VGA compatible controller: ATI Technologies Inc Radeon IGP 330M/340M/350M (prog-if 00 [VGA controller])
        Subsystem: NEC Corporation Unknown device 81bc
        Flags: bus master, stepping, fast Back2Back, 66MHz, medium devsel, latency 66, IRQ 11
        Memory at f6000000 (32-bit, prefetchable) [size=32M]
        I/O ports at a000 [size=256]
        Memory at f4500000 (32-bit, non-prefetchable) [size=64K]
        [virtual] Expansion ROM at f4520000 [disabled] [size=128K]
        Capabilities: [58] AGP version 2.0
        Capabilities: [50] Power Management version 2

以上

2010年12月30日

setsebool(8) - 使い方

setsebool(8)の使い方の例

概要

SELinuxの組み込みルールの有効/無効状態(boolean)を設定するコマンドツール

getsebool(8) - 使い方

getsebool(8)の使い方の例。

概要

SELinuxの組み込みルールの有効/無効状態(boolean)を確認するコマンドツール

2010年12月23日

service(8) - 使い方

service(8)の使い方の例

概要

常駐プログラムの起動、停止などを行うコマンドツール

使い方

サービスを起動する(httpdの例)

[root@localhost ~]# service httpd status
httpd は停止しています
[root@localhost ~]# service httpd start
httpd を起動中:                                            [  OK  ]
[root@localhost ~]# (service --status-all | grep httpd) 2> /dev/null
httpd (pid  16078) を実行中...
[root@localhost ~]# 

サービスを停止する(httpdの例)

[root@localhost ~]# service httpd status
httpd (pid  16018) を実行中...
[root@localhost ~]# service httpd stop
httpd を停止中:                                            [  OK  ]
[root@localhost ~]# (service --status-all | grep httpd) 2> /dev/null
httpd は停止しています
[root@localhost ~]# 

以上

2010年12月14日

SELinuxその1 - 使い方

SELinuxの使い方の例。

概要

SELinuxの使い方その1。

使い方

セキュリティコンテキストの見方 兼 ユーザのセキュリティコンテキストを確認する

SELinuxが有効な状態で、id -Zを実行するとユーザのセキュリティコンテキストが確認出来る。

$ id -Z
user_u:system_r:initrc_t:s0

それぞれ左から順番に、ユーザ識別子、ロール識別子、タイプ識別子、MLS識別子を表す。

user_u   ユーザ識別子
system_r ロール識別子
initrc_t タイプ識別子
s0       MLS識別子

プロセスのセキュリティコンテキストを確認する

$ ps -Z
LABEL                             PID TTY          TIME CMD
user_u:system_r:initrc_t:s0       987 pts/1    00:00:00 ps
user_u:system_r:initrc_t:s0     32623 pts/1    00:00:00 bash

ファイルのセキュリティコンテキストを確認する

$ ls -Z
drwxr-xr-x  owner owner system_u:object_r:file_t:s0      Desktop
drwx------  owner owner system_u:object_r:file_t:s0      mail

SELinuxの動作状態を確認する

$ /usr/sbin/getenforce
Enforcing

SELinuxの動作状態を変更する

# setenforce Permissive
# getenforce
Permissive
# setenforce Enforcing
# getenforce
Enforcing

SELinuxを有効/無効にする

/etc/sysconfig/selinuxファイル内のSELINUX=の行を直接編集。変更後はOS再起動。

(有効時の記述1)
SELINUX=enforcing

(有効時の記述2)
SELINUX=permissive

(無効時の記述)
SELINUX=disable

以上