シングルモードで起動
gnome desktop
Bonding

centos6仮想マシン作成

基本的には1CPU、8GB HDDの構成で作成している。OSは 下記URL で取得した最小構成「Minimal」ISOファイルを利用している。
取得先: ftp://ftp.riken.jp/Linux/centos/6.5/isos/x86_64
取得ファイル: CentOS-6.5-x86_64-minimal.iso(398 MB)
*仮想マシンのHDDレイアウト(8GB)は、先頭のパーティション(sda1)を/boot(512MB)として、次のsda2はswap(1024MB)、残りは必要に応じて細分割するかsda3をルート(/)として全量割り当てている。

インストール完了後、必要に応じで追加や機能の削除を行う。

  • selinuxの無効化
    [root@c131 ~]# vi /boot/grub/grub.conf
    (中略)
    title CentOS (2.6.32-431.el6.x86_64)                     *「kernel」行末に「selinux=0」を追加
            root (hd0,0)
            kernel /vmlinuz-2.6.32-431.el6.x86_64 ro (中略) rd_NO_LVM rd_NO_DM rhgb quiet selinux=0
    (中略)
    [root@c131 ~]#
    */etc/sysconfig/selinuxで「SELINUX=disabled」としても可
    *selinux=0はyum updateでkernelが更新されても引き継がれます
  • 不要なサービスての停止とパッケージアンインストールと更新
    [root@c131 ~]# \
    yum -y groupremove \
    "E-mail server" "Scalable Filesystems" "Storage Availability Tools" \ "iSCSI Storage Client" \
    && chkconfig auditd   off && chkconfig blk-availability off &&  chkconfig ip6tables off \
    && chkconfig iptables off && chkconfig lvm2-monitor     off &&  chkconfig mdmonitor off \
    && chkconfig netfs    off \
    && yum -y install ntp && yum -y update \
    && reboot
     
    [root@c131 ~]# chkconfig --list|grep "3:on"
     
    network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
    rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
    sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
    udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
    [root@c131 ~]#
     
    [root@c131 ~]# df
    Filesystem     1K-blocks   Used Available Use% Mounted on
    /dev/sda3        3611360 791284   2636628  24% /
    tmpfs             510144      0    510144   0% /dev/shm
    /dev/sda1         516040  60632    429196  13% /boot
    [root@c131 ~]#
    として完成。

qemuの仮想マシンならvirshからのshutdownを受け入れるためにacpidをインストールする。

[root@qemu ~]# yum -y install acpid

もし追加で環境を整備したいのなら yum grouplistから

[root@c ~]# env LANG=C yum grouplist
*整備したい項目を選ぶのがいいかと
 
*開発環境の整備なら
[root@c ~]# env LANG=C yum groupinstall "Development tools"

ディスクトップ環境が欲しいなら

[root@c ~]# yum groupinstall Desktop "X Window System"
 
*追加で日本語環境が必要なら
[root@c ~]# yum -y groupinstall "Japanese Support"
 
*日本語環境確認として
[root@c ~]# cat /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"
[root@c ~]# cat /etc/sysconfig/keyboard
KEYTABLE="jp106"
MODEL="jp106"
LAYOUT="jp"
KEYBOARDTYPE="pc"
[root@c ~]#

時計合わせ(ntpサーバが192.168.0.3なら)

[root@c131 ~]# yum install ntp
[root@c131 ~]# cat << _EOT_ >/etc/ntp.conf
driftfile /var/lib/ntp/drift
server 192.168.0.3
_EOT_
[root@c131 ~]# echo "192.168.0.3" >> /etc/ntp/step-tickers
[root@c131 ~]# chkconfig ntpd on && chkconfig ntpdate on
[root@c131 ~]# /etc/init.d/ntpdate start && /etc/init.d/ntpd start

realtekなNICカード

マシンに組み込まれているNICは lspci で調べることができる。下記はとあるマシンのlspci結果

[root@c3 ~]# yum -y install pciutils
[root@c3 ~]# lspci
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 671MX
00:01.0 PCI bridge: Silicon Integrated Systems [SiS] AGP Port (virtual PCI-to-PCI bridge)
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS968 [MuTIOL Media IO] (rev 01)
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 IDE Controller (rev 01)
00:03.0 USB controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 0f)
00:03.1 USB controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 0f)
00:03.3 USB controller: Silicon Integrated Systems [SiS] USB 2.0 Controller
00:05.0 IDE interface: Silicon Integrated Systems [SiS] SATA Controller / IDE mode (rev 03)
00:06.0 PCI bridge: Silicon Integrated Systems [SiS] PCI-to-PCI bridge
00:0f.0 Audio device: Silicon Integrated Systems [SiS] Azalia Audio Controller
00:1f.0 PCI bridge: Silicon Integrated Systems [SiS] PCI-to-PCI bridge
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 771/671 PCIE VGA Display Adapter (rev 10)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 (途中折り返し)
PCI Express Gigabit Ethernet Controller (rev 03)
[root@c3 ~]#

最後の行に「Realtek Semiconductor Co., Ltd. RTL8111/8168/8411」とある。
こちらでは発生していないのだが、問題が発生するとの報告がある。dmesgには

r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded

とあり、モジュールとして r8169 が取り込まれている。

[root@c3 ~]# lsmod |grep r8169
r8169                  59831  0
mii                     5376  1 r8169
[root@c3 ~]#

このモジュールをメーカー提供のドライバーに代えてみる。
取得先は ここ でブラウザ画面的には下記を辿る
2014y06m29d_013458616.png
取得したファイル(r8168-8.038.00.tar.bz2)を展開して、中のスクリプトを実行して終わりみたい。

[root@c3 ~]# bzip2 -cd r8168-8.038.00.tar.bz2 | tar xf -
[root@c3 ~]# cd r8168-8.038.00
[root@c3 ~]# ./autorun.sh

以上で完了。
*kernel-3.16向けの対処法はここ https://code.google.com/p/r8168/issues/detail?id=19

Fedora18

ここからisoファイルを取得 ftp://ftp.riken.jp/Linux/fedora/releases/18/Fedora/x86_64/iso/
Fedora-18-x86_64-netinst.iso
っで、ESXiにて仮想マシンを構築。
っが、インストールにあたって画面の解像度が低くてインストール設定パネルが見切れている...
っで、対応方法としては、インストール時のメニューに表示される[Troubleshooting]でvncを使って構築を進めることにします。
2013y04m13d_182040948.png
次の選択画面で[Install Fedora in basic graphics mode]を選択。
2013y04m13d_182359597.png
っで、しばらくするとVNCが使えるよと言われる。っで、これを選択。
2013y04m13d_182750831.png
vncを使うに当たってパスワードを定義します。rootのパスワードとかではありません。
2013y04m13d_182919173.png
っで、Fedoraのvncサーバがどのipアドレスと画面番号で動いているよと示してくれます。dhcp環境だと自動的にipを取得して提示しているみたい。
2013y04m13d_183114508.png
そして、ここでvncビューアの登場。示しているipアドレスと画面番号、ならびに定義したパスワードを入力してvnc画面を表示させます。
2013y04m13d_183444484.png2013y04m13d_183457204.png
っで、認証に成功すると、下記のような画面になります。
2013y04m13d_183740964.png

それでようやくインストールが開始される。

インストール時のメモ:
2013y04m13d_173832771.png
の画面にて、

  • [日付と時刻]
    Asia/Tokyo タイムゾーンを選択
  • [キーボード]
    Japanese(Japanese)を選択
  • [ソフトウエア]
    • [インストールソース]
      http://ftp.riken.jp/Linux/fedora/releases/18/Fedora/x86_64/os/
      *プロキシの設定は行わない
    • [ネットワーク設定]
      *vncで繋がっているので今は代えない。
    • [ソフトウエアの選択]
      GENOMEディスクトップを使用環境として、使用アドオンはNULL。
  • [ストレージ]
    パーティションスキーマをBtrfsを選択して、カスタマイズを有効

っで、これらの定義が済むとインストールが開始されます。
っで途中rootのパスワードの定義がはいりますがね。

以上でFerora18のインストールは完了。
後にipアドレスの修正とかがありますけどね。

何日前のファイルを削除する

バックアップとしてcronでデータを保持するのはいいが、限度というものがある。
1年前より昔のファイルとか、一ヶ月より古いファイルと限定しての削除したいとする。
ここでいつも迷うのが find コマンドのフラグ。cだったか、mだったか、aだったか。
statコマンドとあわせて明記する。statコマンドを使用すると

# stat www-130125.tar.gz
  File: `www-130125.tar.gz'
  Size: 51414648        Blocks: 100424     IO Block: 4096   通常ファイル
Device: 10300h/66304d   Inode: 78643202    Links: 1
Access: (0664/-rw-rw-r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2013-01-25 16:03:03.892033047 +0900
Modify: 2013-01-25 16:03:07.721195557 +0900
Change: 2013-01-31 10:45:52.095970683 +0900

と表記される。

  • Accessは、lsとかで表示された事ではなく、tarコマンドらで実際に中身にアクセスがあった際、更新される。findコマンドではaxxx
  • Modifyは、ファイルの中身に変更が加われば更新される。作成日・更新日と見ていもいいかも。findコマンドではmxxx
  • Changeは、chmodとかchownとかのファイル属性に変更があった際、更新される。findコマンドではcxxx

っで、「一ヶ月よりも前のファイルを削除」とした場合、定義が問題で変更が加わらないファイルを標的にするのなら

find . -mtime +30 -exec rm -rf {} \;

となるのかな。他のAccess(atime)とかChange(ctime)とかでもその用件に応じては使われるのでしょう。っがした事はないですな。

16TB以上のHDDを扱う

基本ext4であれば、1EiBまでのボリューム(シングルパーティションかな?)と16TBのファイルを扱えるようです。
最近3TBのHDDを複数使って35TBのシングルボリュームを扱うことになった。とは言ってもRAIDパックな訳なのだが。
CentOS-PCに接続して起動。35TBが認識され、partedでシングルパーティションを作り、ext4でフォーマットの際、問題が発覚。

# mkfs.ext4 -m 0 /dev/sdb1
mkfs.ext4: Size of device /dev/sdb1 too big to be expressed in 32 bit susing a blocksize of 4096.

とエラーが返された。どうやら現行では無理でe2fsprogsを最新版に換えてみた

# wget http://ftp.riken.jp/Linux/kernel.org/linux/kernel/people/tytso/e2fsprogs/v1.42.6/e2fsprogs-1.42.6.tar.xz
# xz -cd e2fsprogs-1.42.6.tar.xz | tar xf -
# cd e2fsprogs-1.42.6
# ./configure; make; make install

そして/etc/mke2fs.confに細工を加える

[fs_types]
  ext3 = {
     features = has_journal
  }
  ext4 = {
     features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
     inode_size = 256
     auto_64-bit_support = 1             *これを追加
  }

其の上で

# mkfs.ext4 -m 0 /dev/sdb1 

とext4でフォーマットを行う。これで35TBの1ボリュームが完了。/etc/fstabは今までどおりでOK
tune2fs -l /dev/sdb1でUUIDを取得して/etc/fstabに定義しても構わない。

*最新版にしなくとも/etc/mke2fs.confの修正だけでよかったのかもしれないが、確かめていない。

scp

クライアントからscp経由でファイルを転送しようとしても

bash: scp: コマンドが見つかりません
lost connection

と言われる。っが、ssh接続はできている。故openssh-clientsは当然入っている。
送り先のサーバのselinuxは切って、iptablesも切っているのに....
っで送り先サーバに openssh-clients を入れたら動いた。
サーバにはsshdのみあればいいだろうと思っていたのだが、scpの場合は違うのかな?

rsync

usb-hddにバックアップを取ろうかと考えた。cpでもいいのだが、まぁーrsyncで。

  1
rsync [オプション] コピー元 コピー先

オプション:-arv アーカイブモード(ユーザ権限はそのままで)、ディレクトリー配下も、言葉多め

  1
  2
cd /mnt/d1
rsync -arv --delete /home /opt /etc /Appl /export /root /var /usr .

/homeはまぁー当然。/optはsambaとかbindとかあるから。/etcもまぁー当然。/Applはxray関係で。/exportはsambaの共有なので。/rootはまぁーそう。/varはweb関係だから。/usrはついでに。っな感じで。

VNC経由でログインするとrootのパスワードが求められる

具体的には下記パネルが表示されて、パスワード入力を求められる。[キャンセル]ボタンを押して回避可能なのですが、
毎回画面が表示されるのでできれば非表示にしたいもの。
2012y10m05d_124941015.png
回避方法としては2つある

  • ユーザ操作
    メニュー[システム]->[設定]->[自動起動するアプリ]を立ち上げて、
    「PackageKit更新アプレット」のフラグを消して[閉じる]ボタンを押す
    2012y10m05d_125539171.png
  • システム操作
    OS側で対処する方法です。
    # cd  /etc/xdg/autostart
    # echo "X-GNOME-Autostart-enabled=false" >> gpk-update-icon.desktop
    もしくは
    # echo "X-GNOME-Autostart-enabled=false" >> polkit-gnome-authentication-agent-1.desktop

これで先ほどのパスワードを求められることはなくなります。

右クリックメニュー

もしディスクトップ環境で使う場合、右クリックメニューで「端末」を出すためには
  yum -y install nautilus-open-terminal
を行う。ただし、そのままだと右クリックした場所で「端末」が開く。
それを常にホームディレクトリにするためには、設定が必要。
  yum install gconf-editor
で設定アプリをインストールして、「アプリケーション」->「システムツール」->「設定エディタ」を開き
  /->apps->nautilus-open-terminalで、desktop_opens_home_dir
を有効にします。すると、右クリックで開かれる「端末」は常にホームディレクトリーとなります。

上部メニューバー

上部メニューバーの修正は alacarte にて調整可能
yum install alacarte

ディスクトップ環境でログイン画面をリストに変更

内部ユーザが分かってしまうのでリストにしたい場合、
「アプリケーション」->「システムツール」->「設定エディタ」を開き、
「ファイル」->「新しいデフォルトの設定」を選択して新たなパネル「設定エディタ(デフォルトの設定)」を立ち上げます。
そのパネルの左メニューを
 「/」->「apps」->「gdm」->「simple-greeter」
を展開して、右設定欄の「disable_user_lit」にチェックを入れてアプリケーションを閉じます。
ユーザのログアウト後、ログイン画面はアカウントをキーボードで入力する方式に替わります。
2012y09m06d_103724015.png2012y09m06d_103820015.png

電源を勝手に落とさせないには

古い人間だからだろうか、マシンの電源は管理者のみが落とせて、一般ユーザは関わらないもの。
っと思っていたのだが、最近だと一般ユーザでも容易に落とせてしまう。
・ログイン前の画面から
  2012y09m07d_231417775.png
・ログイン後の[システム]->[シャットダウン]から
  2012y09m07d_231634945.png
・ログイン後の[Ctl]+[Alt]+[Del]でシャットダウンから
  2012y09m09d_143713105.png

これをなんとかしたい。対処としては、「設定エディタ」にて行います。
「アプリケーション」->「システムツール」->「設定エディタ」を開き、
「ファイル」->「新しいデフォルトの設定」を選択して新たなパネル「設定エディタ(デフォルトの設定)」を立ち上げます。
左メニューの「/」->「apps」->「gdm」->「simple-greeter」を開いて、右側の「disable_restart_buttons」を
有効にします。これで、ログイン前の画面から電源ボタンが消えます。
こんな感じです。
  2012y09m07d_232052047.png
っが、ログイン後の[システム]->[シャットダウン]を消すのが良くわからない
これが正解かどうか不明なのだが、解決策としては
/var/lib/polkit-1/localauthority/50-local.d フォルダに

# vi disable-shutdown-reboot-suspend-hibernate.pkla
[Disable suspend hibernate]
Identity=unix-group:*
Action=org.freedesktop.devicekit.power.*
ResultAny=no
ResultInactive=no
ResultActive=no

[Disable shutdown reboot]
Identity=unix-group:*
Action=org.freedesktop.consolekit.system.*
ResultAny=no
ResultInactive=no
ResultActive=no

を用意してOS再起動すれば消えるようだ。しかしrootにも適用されてしまうのだが....
  2012y09m08d_203826628.png
*ほかにもっとエレガントな方法があると思うのだが...いまはここまで。

そして、ログイン後の[Ctl]+[Alt]+[Del]対応だが、これは

vi /etc/init/control-alt-delete.conf
exec /sbin/shutdown -r now "Control-Alt-Delete pressed"
↓
#exec /sbin/shutdown -r now "Control-Alt-Delete pressed"

として無効化すればいいみたい。っが、画面はそのまま表示され、カウントダウンも始まりますが、
再起動ではなく、ログアウトになってます。

less終了時の画面クリアを阻止

lessで確認して、いざ作業しようとしてlessを閉じるとclearされて、真っ白な画面に...
lessで開いた文章の中を参照しながらコマンドを叩きたいとき、多少[いらっ]とするかも。
っで、それを阻止するには
 ~/.bachrc に

alias less='less -X'

を追加。関連してmanのPAGER変数もこれを加える

export PAGER='less -X -i'

これで完了

vi終了時の画面クリアを阻止

同様にvimでもありえる話で、下記のようにすればvi終了後の画面クリアが阻止される。
 ~/.vimrc に

set t_ti= t_te=

を加えます

VNCサーバを使う

XDMCP経由でX環境を提示する他に、vncを使ってX画面を飛ばす方法もある。
ただ、vncだと特定ユーザのX画面が飛ぶイメージで、XDMCP経由は誰でもOKってな雰囲気かな。
Xmingを使った際、途中で落ちるものがあった。っで、vnc。
まずはサーバをインストール

# yum install tigervnc-server

これで準備は完了。

ここでは、とあるユーザ(foo)がwindowsからvncクライアントを使う場合を想定します。tigervnc-serverはインストール済みとして
まず、

  • ネット経由でサーバにアクセス(windows側)
    TeraTermで画面を持って来たいサーバにアクセス
  • (初回のみ)vnc接続用パスワードを定義(Linux側)
    $ vncpasswd
    最低6文字。'123456'とかでも可みたい。複雑性要求はないみたい。
  • vnc サーバ起動(Linux側)
    自分で勝手にvncサーバを起動させます。
    $ vncserver -geometry 1400x1050 :1
    *数字は画面番号で、既に使われているとエラーになります。その際は別の番号を与えます。
    *firewallに注意。:1は5901番、:2なら5902番が使われるそうな。
  • windowsにあるvnc-viewerで接続(windows側)
    vnc-viewerはここから取得可能 https://www.realvnc.com/download/viewer
    名前、IPアドレスでも構わない。最後の:1とかをお忘れなく。
    2012y09m06d_130629453.png
    で、「OK」ボタン後、先ほどvncpasswdで定義したパスワードを入力します。
    2012y09m06d_130826718.png
    これでLinux側の画面が表示されるかと。
  • 終了操作(windows側)
    画面を閉じる。ログアウト操作してもしなくても可。
  • vncサーバを停止(Linux側)
    ネット経由で接続して
    $ vncserver -kill :1
    と実行します。これで完了。

必要なときのランタイム的な意味合いなvnc。多ユーザ向けのデーモンなXDMCPかな。

uekを試してみる

wget http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/latest/x86_64/kernel-uek-2.6.39-100.7.1.el6uek.x86_64.rpm
wget http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/latest/x86_64/kernel-uek-firmware-2.6.39-100.7.1.el6uek.noarch.rpm
yum localinstall kernel-uek-2.6.39-100.7.1.el6uek.x86_64.rpm kernel-uek-firmware-2.6.39-100.7.1.el6uek.noarch.rpm

Ubuntu

使い勝手を考えればこちらの方がいいのかな?MATLABの動作環境リストにも載っている。
これでccp4/coot/pymol環境を作らねば。。。

debian

ふとしたことでdebianをインストールする羽目に。
基本としてネットワーク経由でインストールの場合

  • netinstイメージ debian-6.0.5-[uname]-netinst.iso
  • businesscardイメージ(netinstよりもよりコンパクト) debian-6.0.5-[uname]-businesscard.iso

の2つのネットワーク経由インストール用isoファイルがある。これらのうちどちらかをcdromに焼いてブートさせる。

centos5

インストールするソフトウエアの様式は何も選びません。既定で選択されている[Desktop - Gnome]のチェックを外します。
2013y01m01d_014329645.png
そして、画面下部のカスタマイズ時期を[今すぐカスタマイズする]にチェックします。
2013y01m01d_014552436.png
次の画面の詳細選択画面では、左メニューの[アプリケーション]で選択されていた[エディタ]と[テキストベースのインターネット]の選択を外します。
2013y01m01d_014814197.png
加え、左メニューの[ベースシステム]で選択されていた[ダイアルアップネットワークサポート]と[ベース]の選択を外します。
2013y01m01d_015134044.png
これですべてのインストールオプションの選択がなくなり、最小限のみのインストールとなります。
このあと[次へ]ボタンを押してOSのインストールを進め、再起動後に
/boot/grub/grub.confでselinux=0を加える。

[root@client5 ~]# vi /boot/grub/grub.conf
        kernel /vmlinuz-2.6.18-371.el5 ro root=LABEL=/ selinux=0
[root@client5 ~]#

そして、

[root@client5 ~]# chkconfig ip6tables off && chkconfig iptables off && \
chkconfig haldaemon off  && \
chkconfig iscsi off && chkconfig iscsid off && \
chkconfig kudzu off && \
chkconfig lvm2-monitor off && \
chkconfig mcstrans off && \
chkconfig messagebus off && \
chkconfig rawdevices off && \
chkconfig restorecond off && \
chkconfig xfs off && \
yum -y update && reboot
 
[root@client5 ~]# chkconfig --list|grep "3:on"
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@client5 ~]#

を行う
注意
CentOS5.9で上記手法の最小構成で構築したらsshdやyumがインストールされなくなっていた。
代わりにhyper-vが最小限選択に選ばれていた。。
なので、[ベース]を選択を有効にするか、[ベース]の中の[ssh-client][ssh-server][yum]らのみは有効にします。
そうしないと外部からログインができなく、プログラムの更新もまともにできない。

パスワードをより簡単にするには

時代に逆行してますが、、、簡単なパスワードを付与するにはどうしたらいいか。
LinuxではPAMにおいてpam_cracklib.soが安易なパスワードの登録を防いでます。

[root@client ~]# vi /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so
 
account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so
 
password    requisite     pam_cracklib.so try_first_pass retry=3 type=              >>>これが。。。。
password    sufficient    pam_unix.so shadow nullok try_first_pass use_authtok
password    required      pam_deny.so
 
session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

パスワードを更新する際、辞書を参照します。cracklibによって作られた辞書で/usr/share/cracklib/pw_dict.pwdがそれに該当する。
っで、この辞書にパスワードと同じ文字があると撥ねられる。っで、この辞書を簡単な辞書に作り変える

[root@client ~]# echo 1 > /usr/share/dict/words.1
[root@client ~]# create-cracklib-dict /usr/share/dict/words.1
[root@client ~]# ls -l /usr/share/cracklib/pw_dict.*
-rw-r--r--. 1 root root 1024  9月 28 12:26 2014 /usr/share/cracklib/pw_dict.hwm
-rw-r--r--. 1 root root   17  9月 28 12:26 2014 /usr/share/cracklib/pw_dict.pwd
-rw-r--r--. 1 root root   16  9月 28 12:26 2014 /usr/share/cracklib/pw_dict.pwi
[root@client ~]#

これで文字が「1」しか登録されていないパスワードチェック用の辞書が作られる。
元の辞書に戻したければ、

[root@client ~]# yum install words
[root@client ~]# ls -l /usr/share/dict/linux.words
-rw-r--r-- 1 root root 4953699  8月 21 10:35 2010 /usr/share/dict/linux.words
[root@client ~]# wc -l /usr/share/dict/linux.words
479829 /usr/share/dict/linux.words                             *英単語が479,829 語入ってます
[root@client ~]#
[root@client ~]# create-cracklib-dict /usr/share/dict/linux.words
454696 454696
[root@client ~]# ls -l /usr/share/cracklib/pw_dict.*
-rw-r--r--. 1 root root    1024  9月 28 12:42 2014 /usr/share/cracklib/pw_dict.hwm
-rw-r--r--. 1 root root 2364828  9月 28 12:42 2014 /usr/share/cracklib/pw_dict.pwd
-rw-r--r--. 1 root root  113688  9月 28 12:42 2014 /usr/share/cracklib/pw_dict.pwi
[root@client ~]#

とします。
辞書を簡単にしてもpam_cracklib.soの制約でパスワードを更新しても大文字を、数字を、とか言われる。
っで、これを回避するには/etc/pam.d/system-authを調整して、

password    requisite     pam_cracklib.so try_first_pass retry=3 type= minlen=1 dcredit=0 ucredit=0 lcredit=0 ocredit=0

とする。
minlen=1と最低限1文字のパスワード可能にしてますが、どうやら最低6文字は必須のようで、pam_cracklibにハードコーディングされているそうな。
ともあれ、これで最低6文字なら行けるみたい。だけど数字だけ6文字は無理みたい。なんかいろいろ制限があるみたいだけど。

[foo@client ~]$ echo 123456 | cracklib-check
123456: 単純/系統的すぎます
[foo@client ~]$ echo 12345a | cracklib-check
12345a: 単純/系統的すぎます
[foo@client ~]$ echo 1234aa | cracklib-check
1234aa: OK
[foo@client ~]$ echo aa1234 | cracklib-check
aa1234: OK
[foo@client ~]$ echo a12345 | cracklib-check
a12345: 単純/系統的すぎます
[foo@client ~]$ echo 1a2345 | cracklib-check
1a2345: OK
[foo@client ~]$ echo 1234a5 | cracklib-check
1234a5: OK
[foo@client ~]$ echo passwd | cracklib-check
passwd: OK
[foo@client ~]$ echo root00 | cracklib-check
root00: 異なる文字が十分に含まれていません
[foo@client ~]$ echo root01 | cracklib-check
root01: OK
[foo@client ~]$ echo test | cracklib-check
test: 短かすぎます
[foo@client ~]$ echo test00 | cracklib-check
test00: 異なる文字が十分に含まれていません
[foo@client ~]$ echo test01 | cracklib-check
test01: OK
[foo@client ~]$

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2014-09-28 (日) 13:00:11 (1088d)