2013年12月02日

パソコン日記(2013)




1997年からはじめた身の回りのコンピュータ全体の日記コーナーです。

仕事でソフトウェア開発をやっていたので、仕事も趣味もコンピュータです。 そんな生活の中で起こったことや気づいたことを紹介します。
毎日書いてるわけではないのですが、のらりくらりと続いています。

特定のテーマで独立したページを書くのは結構大変なのですが、日々の出来事を エッセイ風に書くのはかなり楽なので最近はこちらばかり更新しています。



2020年 2019年 2014年 2012年
2011年 2010年 2009年 2008年 2007年
2006年 2005年 2004年 2003年 2002年
2001年 2000年 1999年 1998年 1997年

リンクアイコン トップページへ戻る


2013/12/02(月)

WindowsXP でexFAT

AQUOS PHONE に64GByte のmicroSDXC カードを入れているのですが、microUSB ケーブルでこのスマホをWindowsXP のPC に接続しても、 デフォルトの状態ではメモリカードの中身にアクセスすることができません。

64GのSDXCメモリーカードは従来のFATやFAT32 ではなく、マイクロソフトが開発した exFAT なるフォーマットが用いられているそうです。 WindowsXP SP3 では、マイクロソフト社からexFAT ドライバが提供されています。 (Windows XP更新(KB955704))

http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=1cbe3906-ddd1-4ca2-b727-c2dff5e30f61&DisplayLang=ja
このURLからWindowsXP-KB955704-x86-JPN.exeを取得できるので、これを実行すると64G のmicroSD カードにアクセスできるようになりました。
とりあえずUNIX Magazine DVD のPDF を全部入れてみました。

AQUOS PHONE ZETA SH-01F には多色発光のインジケータLEDがあり、microSD カードに 書き込んでいるときは赤色に点灯します。 GMail にメールが来ているときは緑に点滅します。 充電中は充電量に応じて最初は赤の点滅→青の点滅→消灯と、 状況がわかるようになってます。他の機種もそうなのかな?


docomo WiFi

docomo のスマホ契約では、必須のspモードに入っていると追加の料金無しで docomo WiFi を利用できます。
SSID はWEP が「docomo」WPA/WPA2 PSKが「0000docomo」802.1x EAPが「0001docomo」 となります。ただし、WEP の「docomo」 は順次閉局となる旨がアナウンスされてます。

AQUOS PHONE ZETA SH-01F では、最初から入ってる「docomo WiFiかんたん接続」 アプリを実行することでdocomo WiFi に接続するための無線LAN 接続先が自動で接続リストの中にセットアップされます。 このアプリで設定するとSSIDや接続パスワードを自分で入力する必要はありませんが、 dメニューからたどっていくとSSID と接続パスワードを知ることもできるようになってます。 ただし、0001docomo へ接続する場合に必要となる802.1x の証明書だけはSIM カードの中に最初から格納されてます。

私の自宅は駅や大きな商業ビルの付近にあり、docomo WiFi が入ると思ってたんですが、入らないようです。
スマホの購入前に簡単に調べられるのに、たくさん受信できてるからその中に docomo のWiFi があると勝手に思ってました。
自宅周辺の飲食店で調べてみましたが、docomo WiFi と繋がるスポットは少ないですね。

自宅の無線LAN基地局は普段は電源をOff にしてあり、本当に必要な場合だけOn にするようにしてます。必要な場合というのは、無線LAN しか通信手段がないデバイス(Nintendo DSやAndroid WALKMAN)を使いたい場合とか、 スマホで大量の通信をする場合です。 無線LANのセキュリティを突破して外部から接続するツールがあるそうで、 そういうツールで接続して侵入者に某匿名掲示板へヤバい書き込みをされると 誤認逮捕されるような寒い状況であり、かなり不便ですが昔からこの運用にしてます。

11月25日の記事の最後に本当はUSBで有線LANを使いたかったことを書いてますが、 その理由も大量の通信をする場合に有線LAN でやりたいということでした。

2013/11/25(月)

AQUOS PHONE ZETA SH-01F

docomo のAndroid スマホ 2013年冬モデル、SHARP AQUOS PHONE ZETA SH-01F を購入しました。

スペックはAndroid 4.2.2、1080x1920 5.0inch IGZO液晶、 CPU MSM8974 2.2GHz クアッドコア、RAM 2GB、ROM 32GB、 Xi 受信150Mbps/送信50Mbps、Wi-Fi IEEE802.11a,b,g,n,ac、GPS、USBホスト、 重さ139g、3000mAh バッテリ、1630万画素/210万画素カメラ、フルセグ、ワンセグ、 内蔵ロッドアンテナ、NFC、Bluetooth V4.0、防水、FMトランスミッタ、 テザリング、64GまでのmicroSDXC対応、ストラップホールといった感じです。

(アンテナはフルセグ地上波用)

想定している利用方法は、
  1. Web, Twitter, 2ちゃんねるの閲覧
    主に出先でPS3 のGame 攻略情報

  2. 地デジ見るかも

  3. 出先でノートPCでメールする時にテザリング

  4. 電話は苦手なので通話は着信も含めてほとんどしません
    だけど、データ通信専用契約ではなく、通話は可能なようにしておきたい

  5. スケジュールやTODOの管理

  6. 写真はデジカメで撮るので使いません

  7. ヘッドホンが嫌いなので音楽を聴くことはありません

  8. 液晶保護フィルムやカバーの類は使用しません
    昔からPDAはキズがつくことを一切心配せず、使い倒すスタイルです。

  9. アプリをあれこれ頻繁・大量に入れることはなく、厳選した安全そうな アプリだけを利用します


購入にあたって考えたことと結果は、
  1. 機種
    iPhone は画面デザインがいまいちなので今回はパスしました。
    何かIGZO液晶の製品を手に入れてみたく、これに。 昔から夢のある製品を開発してきたSHARPを応援。電池の持ちがよいことも理由です。
    純正の急速充電ACアダプタ04(100-240V 0.22A DC 5.0V 1.8A) をあわせて購入。

  2. 追加補償
    不注意で破損した場合の「ケータイ補償サービス」が399円/月でありますが、 これは加入しませんでした。
    1年で4788円、2年で9576円。本体の価値を約7万円とすると、7.3人のうち一人が 2年以内に補償による新品交換を受けるとdocomo は赤字になる計算になります。 自分が7.3人のうち1位にランクインするような不注意な人間かとゆうと、 そんなことはない自信があるのでこの課金サービスはパスしました。 何が補償されて何がされないのかもよくわからないので。 もし壊してしまった場合はその時の別の機種をまた新品で購入します。

  3. 料金プラン
    パケット定額プランは安い3G/月までの「Xiパケホーダイライト」にしました。 4,935円/月。平均すると1日あたり100MB以内。 スマホで動画を見たりはしないので、これで足りるはず。 購入初日はなんやかんやで500MBほど通信しました。 Wi-Fi が使える場所では積極的に使うつもりです。
    通話はほとんどしないので、ドコモ回線同士の通話が24時間無料となる Xiカケホーダイ定額制(700円/月)は加入しませんでした。
    NOTTVって有料なんですね。これもパス。
    ほかは基本料の「タイプXiにねん」が780円/月、必須のspモードが315円/月で 合計6,030円/月、これから「月々サポート」の割引で毎月2,520円減額となります。
    通話がない場合の月々の請求は3,510円となる見込みです。


Android 機としては2011年12月にSONY Android WALKMAN NW-Z1070 を購入していて 2台目になります。 それと比較して感想をあげると
  1. とても軽い
    私がこれまで手にしてきた歴代PDAの中で最も軽いと思います。 ただ、落とすと簡単に壊れそうという不安もあります。ジムライトアーマー。

  2. 電池がよくもつ
    消費電力の低いIGZO液晶。 軽いけど、3000mA のバッテリーを搭載してます。 購入初日になんやかやで500MByteほど通信してやっと充電となりました。 通常は1日でこんなに使うことはないはずです。

  3. さくさく動作
    Android WALKMAN はメモリが512MBしかなかったせいもあり、操作の反応がよくなかったのですが、本機はサクサク動作します。

  4. (液晶画面に周囲のホコリがすい寄せられる?)
    静電気でしょうか。 IGZO液晶の特性なのか、軽量化のための素材のせいなのか不明ですが、 やや気になります。新品液晶を保護するフィルムをはがしましたが、 その静電気がまだ残ってるのかも。 購入後、3日たってホコリがこなくなってきました。

  5. 地デジのアンテナは内蔵
    テレビのアンテナは、ヘッドホンケーブルと思ってたのですが、 上の写真のように内蔵式のロッドアンテナが装備されてました。これはうれしい。
    本当にフルセグが受信できます。 ただ、とても細いアンテナでひっかけると簡単に破損しそうです。 取り扱いには注意が必要でしょう。

  6. USBホスト
    本機がUSBホストに対応していることはカタログ上に明記されてます。
    試してみようとしたところ、まず私はMicro-USB とMini-USB を区別できてませんでした。 Linux Zaurus で使ってたUSBホストケーブルがそのまま使えると思ってましたが、 あれはMini-USB でした。
    そこでMicro-USB のホストケーブルを買ってきたのですが、物理的に 接続できませんでした。
    SHARPのサイトで紹介されていた、 適合するケーブルを追加購入すると接続できました。
    ELECOM MPA-EMA015BK これは本機には適合しませんでした
    ELECOM MPA-MAEMCB010BK これは適合しました

    Micro-USB のコネクタはmicroA とmicroB の2種類ある ということですね。 似たような大きさなのに、なんで2種類規定したんでしょうか。

  7. USBイーサネットアダプタはNG
    やりたかったことはUSBイーサネットアダプタで有線でイーサネットに接続 したかったのですが、SH-01F はUSBイーサネットには対応してないようです。 設定メニューにイーサネット接続の項目が現れません。 I-O DATA ETX3-US2(USB2.0, 100BASE-TX)とCOREGA FEther USB-TX(USB1.1, Fast Ether) で試し、両方NGでした。USBイーサネットアダプタの機種にもよるのでしょうが、 本機ではダメなんじゃないかな。
    実際に接続してみて、Micro-USB のコネクタ部分に力がかかるので、 もし認識されたとしても実運用は危険かもしれません。



2013/11/10(日)

64bit版Windows7 SP1 で『見楽る』に印刷する

2006年に購入したSHARP 見楽る(UX-MF50CL)が7 年たっても快調で今でも使用しています。FAX,電話,スキャナ,プリンタ,コピー, SDカードのネットワーク共有 といった機能を持つ複合機です。 有線イーサネットで接続していて、家庭内の何台かのPC から印刷することができます。 FAX複合機なので常時電源が入っているので、 USBで小物の充電をする場合にも重宝してます。



印刷する時はいつもWindowsXP マシンからだったのですが、64bit 版Windows7 SP1 から印刷したい用事ができました。
SHARPから正式なWindows7 用ドライバは公開されてないことがわかりました。 インターネットの情報で、HP(Hewlett-Packard)社のDeskjet 5700 とか6600 シリーズのドライバで印刷できるらしいという情報がありましたが、 実際にWindows7 でプリンタを設定しようとするとそれらのドライバは 入ってないようです。
HPのWeb サイトにドライバがあるかもしれませんが、 製品の会社が違うので見に行くのは気が引けます。 Windows7 が内部に持っているもので試してみたところ、 『hp deskjet 5600 series(HPA)』 を指定して設定すると印刷することができました。

2013/08/24(土)

NETGEAR GS108E

ポートミラーリングやVLAN,帯域制御といったマニアックな付加機能をもった8ch ギガビットスイッチングハブを購入しました。NETGEAR GS108E-100JPS です。
2011年ごろ発売された製品のようで、定価は11,800円ですが実売価格は6,000 円程度という驚きの低価格です。Amazon に在庫がない等、 最近は流通量が少ないのかな?

NETGEAR GS108E-100JPS

ファンレスで電源はACアダプタ、設定はWeb ではなくWindows のみで動作する専用の プログラム(ProSafe Plus Utility)を用いるようになってます。 製品の箱は英語ですが、説明書や設定ユーティリティは日本語化されてます。 箱が英語なので店頭販売よりは通販による購入が基本となりそうです。
本体は無期限の保障ですが、条件として購入後30 日以内にユーザ登録することが必要です。 ACアダプタは2年間の限定的な保障となります。

昔12,000円ほどで購入したPCi S-0116FF ではポートミラーリングを開始すると著しくスループットが低下し使いづらかった ので最近の安い製品を検索し、GS108Eが人気であることを知りました。
この製品を購入する時に、GS108Ev2 という後継機のようなものが存在するらしいことに気づいていたのですが、 v2 の製品情報はメーカーのWeb に見当たらないし、 販売している店も検索できませんでした。 素のGS108E を購入しましたが、付属のCD-ROM の設定ユーティリティではGS108Ev2 として認識されました。

付属のCD-ROM から設定用ユーティリティをインストールするとAdobe AIR とWinPcap がいっしょに入ります。何故WinPcap が必要なのかはナゾです。 設定ユーティリティを起動するとWindows 上でNetGearServer, NsdpManager, ProSafe Plus Utility が起動し、初回はWindows Firewall に例外許可を与える必要が あります。TCP の10101, 10102, 63301 あたりをLISTEN するようです。 設定ユーティリティがうまく動作しない場合は、 パーソナルファイヤーウォールを一時的にOff にしてみると本体に接続できるかもしれません。

このユーティリティですが、1024x600 の解像度の液晶では画面下方のボタンが 表示できず、縦方向のサイズを縮小できないので操作不可能となります。 縦が768 ある液晶モニタでは問題ありません。普通にWeb で設定したいものです。 nmap 6.40 で確認したところ、本体はTCP ポートはLISTEN しておらず、稼動しているOS の検出もできませんでいた。 UDP でパケットを投げると、ハブ側からPC のサーバにコネクトしてくるのかな。

デフォルトのIPアドレスが説明書に記載されておらず、ユーティリティがどのように 接続するのか心配になりましたが本体はDHCP でIP アドレスを取得していて設定用PC のネットワークアドレス変更は不要でした。 ユーティリティで接続できると固定のIPアドレスを設定することも可能です。 デフォルトのパスワードは説明書に記載されてます。

ポートミラーリングでPLAYSTATION 3 のネットワークトラフィックをPC でキャプチャしてみましたが、 大きなスループット劣化もなく快適です。 帯域制御では、イーサネットの接続ポートごとに送信と受信でそれぞれ 最大帯域を絞ることができます。512Kbps, 1M, 2M, ..., 512M といった選択肢の中から値を設定できるのでゲーム機以外の通信を制限することで、 結果としてゲーム機通信の優先度を確保することができます。 VLAN は今のところニーズがないので利用していません。

発熱はあまりなく、気になりません。ファンレスなので騒音もありません。 設定手段がWindows 用の専用ツールであることをガマンできるなら、 安くてよい製品です。

2013/06/05(水)

SELinux のはなし

先日のユーザとパスワードのはなしに続き、CentOS 6.4 におけるSELinux について独立したページに書いてみました。よければご参照ください。
SELinux の私的メモ

2013/05/29(水)

Linux のユーザとパスワード

Linux のユーザとパスワードに関連して、覚書のメモです。(2013/06/09 加筆修正)
CentOS v6.4 を想定しています。

1. 新規作成ユーザは無効状態

Linux で/usr/sbin/useradd で新規ユーザを作成した場合、 最初そのユーザはパスワードが空の状態です。 また、そのユーザは無効状態で、/etc/shadow ファイルのパスワードフィールドは無効状態を示す「!!」が登録されています。
そのため、作成した新規ユーザはパスワード無しでログインできるのではなく、 ログインできない状態ということになります。
ただし、root ユーザは無効状態のユーザに対してもsu することが可能です。

samba ファイル共有用のユーザID を付与する場合で、Linux への直接ログインは不要であればLinux のユーザは作成し、 そのまま無効状態にしておけば直接ログインはできないので安全です。
# /usr/bin/passwd ユーザ名でパスワードを設定すると、「!!」 がとれて無効が解除され、ログインできるようになります。

2. ロックとアンロック

# /usr/bin/passwd -l ユーザ名でアカウントがロック状態となります。 /etc/shadow ファイルのパスワードフィールドの先頭に「!!」が追加されます。 追加なので、ハッシュ化されたパスワードは削除されずに残っています。

# /usr/bin/passwd -u ユーザ名でアカウントのロックが解除されます。 /etc/shadow ファイルのパスワードフィールドの先頭の「!!」が削除されます。

アカウントの状態は# /usr/bin/passwd -S ユーザ名で確認できます。

会社には、情報システム部などが正式に運用している正規のサーバのほかに、 開発部署や開発プロジェクト独自の野良サーバがあると思います。 野良サーバの管理をしていると、 社員が退職した時にすぐアカウントを削除することがためらわれる場合があります。 その人が作成したファイルが残っており、 アカウントを削除してしまうとファイルのユーザID(数字)が誰のID だったのかわからなくなる、等の心配があるからだと推測します。
そういう場合でもとりあえずアカウントはロックはしておくべきでしょう。

ところで、会社を退職するユーザはもしかするとat やcron で自動的にプログラムを起動するよう設定していた可能性があります。
root でatqを実行すると登録済の全ユーザのat ジョブを表示できるので、 atrm ジョブ番号で不適切なジョブを抹消できます。
# atq
4	2013-06-09 01:00 a user1
# atrm 4
# atq
#


cron の方は、 crontab -l -u ユーザ名 で登録済のcron ジョブを確認し、 crontab -r -u ユーザ名 で不適切なユーザのものを全て削除することができます。
# crontab -l -u user1
0 * * * * logger cron test

# crontab -r -u user1
# crontab -l -u user1
no crontab for user1
#

最初このページに/etc/cron.deny/etc/at.deny にロックしたユーザ名を記述しておくとよいように記載していましたが、 これらでは新規のcron, at ジョブ登録を拒否できますが、 既に登録済みのジョブはスケジュール通りに実行されますので注意してください。

またメールを受信できる環境の場合はホームディレクトリの.forward の設定が不適切な内容になってないか、確認するべきです。 メールが届くと何かプログラムを起動するようになってないか、など。
こういったことがあるので、 退職した方のアカウントはロックではなく削除してしまった方が安全だと思いませんか (^_^)

3. 初期パスワードの付与

初期パスワードは管理者が設定し、ユーザが初めてログインする時に、 自分でパスワードをつけてもらいたい場合があります。
これは次のようにします。
  1. # /usr/sbin/useraddでユーザを新規作成する
  2. # /usr/bin/passwd ユーザ名で管理者が初期パスワードを設定する
  3. # /usr/bin/passwd -e ユーザ名でパスワードを無効にする

このようにすることで、パスワードが無効なので ユーザが初めてログイン(無効だけど、初期パスワードは入力が必要です) するとパスワードの変更処理が自動でキックされます。 こうして新しいパスワードを設定すると、 ログインセッションが1回切れてしまうようです。 ユーザはびっくりしますが、 設定した新しいパスワードで次回からログインできるようになります。

passwd -e では、/etc/shadow の最終パスワード更新日のフィールドが0 にセットされます。

4. パスワードの有効期限

/etc/shadow ファイルはユーザ名とハッシュ化されたパスワード情報の他に、 次の情報をユーザ毎に保持してます。
  1. Last: 最後にパスワードを変更した日付(1970/01/01からの日数)
  2. Minimum: パスワード再変更を禁止する日数(0で制限なし)
  3. Maximum: パスワードを変更しなくてもよい日数。 この日数が経過するとパスワードの変更を求められる。 最大にしたい場合は99999(273年相当)を設定する
  4. Warn: パスワード有効期限日の何日前から警告を表示するか
  5. Inactive: パスワード失効から何日目にアカウントをロックするか
  6. Expire: アカウントが使用不能となる日付(0文字の場合は無し)
  7. Flag: 将来のために予約されているフィールド
これらのパスワード有効期限に関する変更は/usr/bin/chage(change age) で行います。
# chage -M 120 user1でuser1 のパスワード有効期限が120日になります。 その他、-l で現在の設定を表示、-W 7 で7日前から警告表示、 -m 3 で3日間はパスワードの再変更を禁止、 -I 7(大文字のi)でパスワード無効から7日目にロック、 -E yyy-mm-dd でログインできなくなる日を指定できます。

5. 新規ユーザのパスワード有効期限のデフォルト設定

デフォルトのパスワード有効期限, ユーザ名と同名のグループを作成するかどうかなど、 新規にユーザを作成する際の詳細な設定は/etc/login.defs を編集して設定します。

6. パスワード強度の事前検討

/usr/bin/passwdでパスワードを設定する時に、 弱いパスワードは受け付けられません。このチェックはpam_cracklib.so で行われています。
パスワード強度のチェックは/usr/sbin/cracklib-check で同じことが確認できます。 引数なしで実行すると入力待ちになるので、文字列を入力しエンターで判定されます。 繰り返しで何度もチャレンジできます。Ctrl-d で終了します。

$ cracklib-check
abc123
abc123: 単純/系統的すぎます
linux centos
linux centos: OK
tokyo03
tokyo03: 辞書の単語に基づいています
ms-06f zaku
ms-06f zaku: OK


7. パスワード文字列に対する条件設定

/etc/pam.d/system-auth
ファイルのpam_cracklib.soの箇所に オプションで設定します。
  1. minlen: パスワード文字列の長さ
  2. dcredit: 数字を含むかどうか
  3. ucredit: 英大文字を含むかどうか
  4. lcredit: 英小文字を含むかどうか
  5. ocredit: その他の記号を含むかどうか
これらはセットで明示的に指定するのがよいようです。

    :
    :
password requisite  pam_cracklib.so try_first_pass retry=3 type= minlen=8 dcredit=-1 ucredit=0 lcredit=-1 ocredit=0
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password required   pam_deny.so
    :
    :

上のように、設定した場合、最低8文字以上の長さが必要であり、 必ず数字を含み(dcredit=-1)、英大文字を含むかどうかは不問(ucredit=0)、 英小文字は必ず含み(lcredit=-1)、その他の記号を含むかどうかは不問(ocredit=0) という設定になります。
パスワードの長さの条件だけを指定し、文字の種類を明示的に設定しない場合、 パスワード文字列中の文字種別の数だけ 最低文字数が減算される場合があります)。

system-auth ファイルの設定変更は再起動などは不要で即時反映されます。

8. 認証失敗回数によるログイン拒否

/etc/pam.d/password-authpam_tally2.so を追加することで可能です。
pam_unix.so の直前に1行追加します。

    :
    :
auth        required      pam_env.so
auth        required      pam_tally2.so deny=3
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so
    :
    :

deny=N でログイン失敗がN 回になるとそれ以降は正しいパスワードが入力されても認証が通らなくなります。
ユーザには失敗回数が制限を越えたからであることはわかりません。
N回未満にログインに成功すると、それまでの失敗回数はクリアされます。
設定変更後は再起動などは不要で即時設定が反映されます。

ログイン失敗回数は/var/log/tallylogにバイナリ形式で記録されます。 /var/log/tallylog が存在しない場合は # touch /var/log/tallylog; chmod 600 /var/log/tallylog で作成しておく必要があります。

ユーザのロック状況は、# /sbin/pam_tally2で確認できます。
特定ユーザのロック状況だけを見たい場合は# /sbin/pam_tally2 -u ユーザ名 のように引数で指定可能です。
ユーザがロックされてしまった場合、それを解除するにはスーパーユーザで # /sbin/pam_tally2 -r -u ユーザ名で回数を0にリセットできます。
root アカウントについては何度認証が失敗してもロックされないようになっています。 わざとroot の認証をロックさせて、 管理者がログインできないようにする攻撃を防ぐ必要があるためです。

このように、デフォルトでは規定回数認証できなかった場合は管理者が リセットするまでそのアカウントにログインできなくなります。 一定の時間が経過すると認証エラーの回数を自動でリセットしたい場合は pam_tally2.so のオプションにunlock_time=N で秒数を設定することも可能です。

なお、昔はpam_tally.so が利用されていて、ログは/var/log/faillog だったようです。

9. 過去N回の同一パスワード設定を禁止する

/etc/pam.d/system-authファイルのpassword タイプの pam_unix.so 定義箇所にremember=N を追記することで可能です。

    :
    :
password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=2
password    required      pam_deny.so
    :
    :

例えば上のようにremember=2 とした場合、 現在と過去2回の合計3つのパスワードは設定することができなくなります。

過去のパスワードは/etc/security/opasswd にハッシュ化されたプレインテキスト形式 で保存されます。

10. パスワードを空にする

あるユーザのパスワードを空(パスワードなし)にしたい場合、/etc/shadow のパスワードハッシュをエディタで削除するよりも安全な方法として 「# /usr/bin/passwd -d ユーザ名」とする方法があります。

CentOS 6.4 のデフォルトではsshd は空のパスワードの場合は認証を拒否するのでリモートログインはできません。 別ユーザからユーザをスイッチする場合はパスワードなしでsu できることになります。

11. 一定時間無操作の場合、自動でログアウトさせる

シェルがbash の場合、環境変数TMOUT に許容する無操作時間を秒で指定します。 0の場合は自動ログアウトなしとなります。
/etc/profile に指定することで、 ログイン処理を経由した全ユーザのプロセスに対して設定されます。
CentOS では/etc/profile が/etc/profile.d/*.sh を実行するようになっているので、/etc/profile.d/ に新規にシェルスクリプトを追加してその中に設定するやり方を好む管理者もいます。

作業内容の必要性に応じてTMOUT 値をユーザが自分で変更することを認める場合は、 普通に環境変数として設定します。
値の変更を認めず、アイドル自動ログアウトをシステムから強制したい場合は readonly TMOUT=N で設定することで、 変更不可能のリードオンリ環境変数として設定できます。

一定時間無操作だった場合、 次の操作のはじめにパスワードを再入力させる再認証の方法は 私も発見できていません。
GUI画面のスクリーンセーバは可能でしょうが、 ssh やコンソールのセッションはログイン処理以降は一般ユーザ権限に ダウンして実行されてるので認証は不可能だと思われます。 強制的にログアウトさせて、ログインからやり直してもらうしかなさそうです。

12. su 可能ユーザをwheel グループに限定する

Linux では普通誰でもsu で別ユーザへスイッチすることができます。
wheel グループに属するユーザのみ、su を利用できるよう制限を設定するには、 /etc/pam.d/su ファイルを修正します。
設定変更前、このファイルは次のようになっています。

auth            sufficient      pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth           sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth            required        pam_wheel.so use_uid
auth            include         system-auth
account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet
account         include         system-auth
password        include         system-auth
session         include         system-auth
session         optional        pam_xauth.so

pam_wheel.so の設定を有効にすればよいのですが、このsu ファイルには2種類の設定がコメントアウトされています。
wheel グループのユーザは、パスワードなしで自由にsu で別ユーザへスイッチできるようにしたい場合は1つ目の 「auth sufficient pam_wheel.so trust use_uid」 をアンコメントアウトします。
su する場合は普通にパスワードが必要としたい場合は2つ目の 「auth required pam_wheel.so use_uid」 をアンコメントアウトします。

もしwheel メンバでないユーザがsu を実行すると、 正しいパスワードを入力してもエラーメッセージは 「su: パスワードが違います」が出力されてしまいます。

以上の設定は、「su を利用できる権限」をwheel グループに限定しています。 「su でroot へスイッチできるユーザ」をwheel グループに限定しているのではありません。従って、oracle というユーザがあり、 user1 がoracle へsu する場合があるならuser1 をwheel グループへ入れる必要が あります。もしパスワードなしでwheel グループがsu を使える設定になっていると、 user1 はパスワードなしでoracle ユーザへチェンジできる上、root にもパスワードなしでsuできるようになってしまいます。

「su でroot へスイッチできるユーザ」をwheel グループに限定したい場合、 つまりoracle へsu するだけであればwheel グループメンバであることを求めない ように設定することも可能です。これはpam_wheel.so のオプションにroot_only を設定することで実現できます。

13. ユーザがログインできない場合

ユーザがログインできなくなった場合、管理者はpam_tally2 -u ユーザ名 でログイン失敗回数が制限を超えている場合はpam_tally2 -r -u ユーザ名 で解除します。そうでない場合はpasswd -S ユーザ名で確認し、 ロックされている場合はpasswd -u ユーザ名でアンロックします。

14. ユーザがパスワードを忘れた場合

大切なのは、パスワードを忘れたと連絡してきた人が本当にそのユーザなのか どうかの確認です。
管理者がその人と面識があれば本人かどうか判断可能ですが、そうでない場合は 対面であれば社員証(IDカード)を確認 (精巧に偽造されたIDカードを判別できるかどうかの問題はありますが)し、 電話であればいったん切って登録されている正規の番号へかけなおしてみる、 などソーシャルエンジニアリング対策が必要でしょう。

その上で、ユーザのパスワードは管理者でもわからない仕組みになっているため、 上記の初期パスワード対応を実施し、 再設定した初期パスワードをユーザへ連絡するような運用が考えられます。
認証エラー回数でロックされている可能性も高いのであわせて確認しましょう。

2013/05/02(木)

Slackware 14.0

Slackware Linux 11 を入れて2006年頃から利用していたPC があるのですが、昨年ぐらいからSlackware 11 はサポート終了となり、 パッチが更新されなくなっていたので最新のSlackware 14 のカレント版(slackware-current)に入れ替えました。

マザーボードは2006年に購入したVIA のEPIA-SP8000E というMini-ITX フォームファクタのもので、Intel のPentium 互換のC3 Eden 800MHz CPU がオンボードで搭載されてます。
RedHat Enterprise Linux とその互換ディストリビューション(CentOS など) のような最近のメジャーなLinux ディストリビューションではC3 CPU はもはやサポートされておらず、Linux カーネルを起動することができません。 カーネルや、ディストリビューションを構成するプログラム群がもっと新しいCPU の命令をターゲットとしてコンパイルされているわけです。

Slackware はどうかというと、インストールISO イメージを作って作成したDVD-R の起動時にhuge.s カーネル を指定するとインストールすることが可能でした。 インストーラの起動画面に、古いPC ではhuge.s を使えと英語で親切なガイダンスが表示されていたので、 問題なくすすめることができました。Linux kernel は3.8.8 です。

Slackware の32bit 版では、インストールで利用されるファイルセットで例えばa パッケージのbase モジュールのファイル名は「aaa_base-14.0-i486-5.txz」 です。アーキテクチャ名の部分がi486となっていることから、Intel 486 CPU 以降であれば動作可能なのでしょう。
最新のSlackware を入れられないのなら新しいPC作るけど、動くのでまだ使うぞ。

電源がOffにならない

こうして入れ替えたSlackware14 ですが、shutdown -h now でシステムをシャットダウンしても電源が自動でOFF になりません。 システムは停止するのですが、電源はON のままなので電源ボタンを長押ししないと電源を切ることができない という状況でした。

昔(5年以上むかしです)よくあったのは、Linux カーネルにACPIが組み込まれておらず、 自分で設定を変えてカーネルを再構築すると電源もOFF になる、ということがありました。 今回もそうだろうと、make しようとしたところ、カーネルにACPI は組み込まれているようです。ACPI が登場した過渡期はともかく、 今入ってないということはさすがにないですよね。

では電源がOFF にならないのは何故だろうか、とdmesg をACPI で検索してみたところ、次のようなログが出てました。

 ACPI: no DMI BIOS year, acpi=force is required to enable ACPI 
 ACPI: Disabling ACPI support


すぐにピンときました。 というのも、カーネルを再構築しようとした時に、ACPI の組み込みで 「xxxx年1月1日以前のシステムではACPIを無効にする」という設定があり、 このxxxx の部分を変更できるようになっていて、Slackware では2001年にしてありました。
このチェックを実施する時に、マザーボードのBIOS の年月日が取得できないために ACPI を無効にしているのかな、というように受け取りました。 親切にacpi=force を指定すればACPI を有効にできるとログに出ています。

カーネルの起動時パラメータはブートローダで設定できる場合が多いです。 Slackware ではブートローダはGRUB ではなくLILO です。 acpi=force とLILO をキーワードに検索すると次の掲示板がヒットしました。
ACPI Poweroff not working in Slackware12.2 - other threads, unresolved? Fedora does

こちらの情報をもとに、/etc/lilo.conf のappend の行に次のように 「acpi=force」を追記し、設定を反映するために/sbin/lilo を実行して再起動すると、それからはshutdown -h now で電源もOFF にできるようになりました。

 append=" vt.default_utf8=0 acpi=force"

なお、dmesg の該当箇所のログは次のように変化しました。

 ACPI: no DMI BIOS year, acpi=force is required to enable ACPI 
 ACPI: acpi=force override


2013/03/13(水)

Pavilion 22fi と自作スタンド

コタツPCで利用していたOn-Lap 1302 ではやっぱり画面が狭く感じられるようになり、HP の21.5inch フルHD(1920x1080) IPS 液晶ディスプレイ Pavilion 22fi を購入しました。 こんなのが19800円で買えるんですね。縁が狭いからLGのOEMかな。

小さい外付けスピーカが付属するんですが、PC からHDMI で接続して液晶につないだ外付けスピーカから音が出せると思ってたら、 この付属スピーカは液晶モニタに接続するのではなく、 PCの方に接続するタイプでした。やられた。

このサイズならコタツに置いてもコタツの前の42inchのテレビは見れると思っていたん ですが、実際は写真のようにテレビにかぶってしまいました。
後ろのテレビが隠れてしまう←テレビはコタツより前にあります。

付属のスタンドは上下角度の調整しかできず、高さの調整ができません。 仕方がないのでスタンドを自作することにしました。
付属のスタンドは高さが調整できない←付属のスタンド

ホームセンターで写真のような材料を買ってきました。 版画用の板 30cm x 22.5cm x 0.5cm を1枚(158円)、 14cm x 10cm x 1cm を2枚(126円x2)、 汎用の細長い板45cm x 3cm x 1cm を1枚 (長さ21cm に切断して利用)(110円)、 ゴム系素材のコーナークッションを2個(168円x2)、 滑り止めシート1枚(98円)、 皿木ネジ 2種類(1袋80円x2) 全部で1114円でした。
自作スタンドの材料←自作スタンドの材料

これを組み立てたところ、いい感じになりました。
自作液晶スタンド←自作の液晶スタンド

液晶モニタ本体を置いてみたところ←高さが低くなったでしょう

後ろから見たところ←後ろから見たところ

テレビが隠れないようになった

テレビの画面が隠れず、全部見れるようになりました。



メインメニュー へ戻る