2012年3月19日月曜日

LinuxのFirefoxでFlashプラグインが使えなくなった時の対応

FirefoxやFlashを更新するとLinuxのFirefoxでFlashプレイヤーが使えなくなる。 どうやら、プラグインの設定が無効化されてしまっているためのようだ。以前にも似たような現象で更新を行ったrootユーザーでは問題なくFlashプラグインが動作するが、他のユーザーではFlashプラグインが使えないということがあった。

今回の現象は、以前とは異なりFirefoxのプラグインの設定ファイルである pluginreg.dat でflashの情報が[INVALID]に記載されていた。

mplayerplug-in-dvx.so:$
/usr/lib/mozilla/plugins/mplayerplug-in-dvx.so:$
:$
1215114783000:1:5:$
mplayerplug-in 3.55

Video Player Plug-in for QuickTime, RealPlayer and Windows Media Player streams using MPlayer
JavaScript Enabled and Using GTK2 Widgets
:$ DivX Browser Plug-In:$ 2 0:video/divx:DivX Media Format:divx:$ 1:video/vnd.divx:DivX Media Format:divx:$ [INVALID] /usr/lib/flash-plugin/libflashplayer.so:$ 1330401423000:$

[INVALID]とその上の空行を削除してからFireFoxを起動するとFlashプラグインが利用できるようになる。各ユーザ毎にこの作業を実施する。 変更後のpluginreg.dat

mplayerplug-in-dvx.so:$
/usr/lib/mozilla/plugins/mplayerplug-in-dvx.so:$
:$
1215114783000:1:5:$
mplayerplug-in 3.55

Video Player Plug-in for QuickTime, RealPlayer and Windows Media Player streams using MPlayer
JavaScript Enabled and Using GTK2 Widgets
:$ DivX Browser Plug-In:$ 2 0:video/divx:DivX Media Format:divx:$ 1:video/vnd.divx:DivX Media Format:divx:$ /usr/lib/flash-plugin/libflashplayer.so:$ 1330401423000:$
しかし、いつもながら手間を掛けさせてくれますね。(←_←)

2012年3月17日土曜日

RPMパッケージの命名規則

(パッケージ名)-(バージョン)-(リリース番号).(アーキテクチャ).rpm
項目名意味
パッケージ名ソフトウェア名の事です。httpd,postgresql,opensslとか。
バージョンそのソフトウェアのバージョン。
リリース番号そのソフトウェアのそのバージョンの管理番号。公開順。
アーキテクチャ コンパイルしたマシンのアーキテクチャ名。同じソフトウェアの同じバージョンでもココを自分のサーバと同じものを選ばないとインストールできない時があります。
アーキテクチャで表示される内容についての解説。
アーキテクチャ名備考
i386i386およびその互換CPU。
i486そのソフトウェアのバージョン。
i586
i686Pentium Pro、Pentium II、Pentium III、Pentium4、Celeronなど。
k6K6、K6-2、K6-III。
athlonAthlon、Athlon MP、Athlon XP。
x86_64Opteron、Athlon64、Xeon(EM64T)。
srcソースパッケージ。自分で rpm パッケージを作ったりする際(rebuild)に必要。
noarch機種(CPU)に依存しないパッケージ。
ppcPower PC。
alphaalphaチップ搭載コンピュータ。
sparcSUN SPARC。
マシン情報を確認するには...
引数説明
-m, --machineマシン (ハードウェア) のタイプを表示する。
-n, --nodenameマシンのネットワークノードのホスト名を表示する。
-r, --releaseOS のリリースを表示する。
-s, --sysnameOS の名称を表示する。
-vOS のバージョンを表示する。
-a, --all以上の情報すべてを表示する。
--help標準出力に使用方法のメッセージを出力して正常終了する。
--version標準出力に「 uname 」コマンドのバージョン情報を出力して正常終了する。
[hoge@localhost ~]$ uname -a
Linux localhost 2.6.18-308.1.1.el5xen #1 SMP Wed Mar 7 05:38:01 EST 2012 i686 i686 i386 GNU/Linux

2012年3月15日木曜日

Windows共有フォルダをマウントする

Windows 共有フォルダーを起動時にマウントする。
※fstabに下記のように記載する。

//マウント相手のIPアドレス/マウントしたいフォルダ名 /mnt/samba/ smbfs username=相手先のユーザー名(sambaユーザ名),password=相手先ユーザーのパスワード,gid=相手先ユーザーのグループID,uid=相手先ユーザーのユーザーID,codepage=cp932,iocharset=utf8,rw,defaults 0 0
※username と password は,マウント先が,Windowsの場合は「Windowsのログインユーザ」,マウント先がLinuxの時は「Sambaのユーザ」のものです。

※接続先がLinuxで,UTF8の場合は,「codepage=cp932,iocharset=utf8,」不要です。

【接続先がWindows】
//192.168.0.5/share /mnt/samba/ smbfs username=winuser,password=hoge,codepage=cp932,iocharset=utf8,rw,defaults 0 0
【接続先がLinux】
//192.168.0.5/share /mnt/samba/ smbfs username=smbuser,password=hoge,uid=1000,gid=1000,rw,defaults 0 0
mountコマンドでマウントする。
mount -t cifs -o user=******,password=****** //example.com/backup /mnt/backup

ソースRPMパッケージからバイナリRPMパッケージを作成

RPMパッケージには、コンパイル前のソースコードが格納されているソースRPMパッケージと、アーキテクチャごとにコンパイル済みで、インストール後すぐに利用できるバイナリRPMパッケージがあります。

ソースRPMパッケージのファイル名は「~.src.rpm」となっています。
バイナリRPMパッケージのファイル名は「~.i686.rpm」「~.x86_64.rpm」のように、アーキテクチャを表す表記が含まれる。

ソースパッケージからバイナリパッケージの作成方法。
treeパッケージで実施してみる。
下記のようなフォルダ構成を作成して、SOURCEフォルダに取得したソースRPMパッケージを配置します。

.
├─ BUILD
├─ BUILDROOT
├─ RPMS
├─ SOURCES
│  └─ tree-1.6.0-4.fc17.src.rpm
├─ SPECS
└─ SRPMS
次に rpmbuild --rebuild コマンドを使ってソースRPMパッケージからバイナリRPMパッケージを作成します。すると、RPMS/<アーキテクチャ>ディレクトリ以下に、バイナリRPMパッケージが作成されます。
$ cd SOURCES
$ rpmbuild --rebuild tree-1.6.0-4.fc17.src.rpm

 (中略)

 $ ls ../RPMS/i686/ tree-1.6.0-4.el6.i686.rpm tree-debuginfo-1.6.0-4.el6.i686.rpm 
※RPMのビルドはrpmbuildコマンドが使用できなければなりません. rpmbuildはパッケージ「rpm-build」をインストールします。

CENTOS5にapt-getをインストールする。

apt-getでのパッケージインストールを取得するために、CENTOS5にapt-getをインストールする。

  1. apt-getをインストールする。
    [root@hoge ~]# yum -y install apt
    yum -y install apt
    [root@hoge ~]# yum -y install apt
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: ftp.riken.jp
     * extras: ftp.riken.jp
     * rpmforge: fr2.rpmfind.net
     * updates: ftp.riken.jp
    adobe-linux-i386                                         |  951 B     00:00     
    base                                                     | 1.1 kB     00:00     
    dag                                                      | 1.1 kB     00:00     
    extras                                                   | 2.1 kB     00:00     
    rpmforge                                                 | 1.1 kB     00:00     
    updates                                                  | 1.9 kB     00:00     
    Setting up Install Process
    Resolving Dependencies
    There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
    --> Running transaction check
    ---> Package apt.i386 0:0.5.15lorg3.94a-5.el5.rf set to be updated
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ================================================================================
     Package     Arch         Version                             Repository   Size
    ================================================================================
    Installing:
     apt         i386         0.5.15lorg3.94a-5.el5.rf            dag         2.8 M
    
    Transaction Summary
    ================================================================================
    Install       1 Package(s)
    Upgrade       0 Package(s)
    
    Total download size: 2.8 M
    Downloading Packages:
    apt-0.5.15lorg3.94a-5.el5.rf.i386.rpm                    | 2.8 MB     00:04     
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing     : apt                                                      1/1 
    
    Installed:
      apt.i386 0:0.5.15lorg3.94a-5.el5.rf                                           
    
    Complete!
    [root@hoge ~]# 
    
  2. apt-getを最新版に更新する
    [root@hoge ~]# apt-get update
    [root@hoge ~]# apt-get update
    取得:1 http://apt.sw.be redhat/el5/en/i386/rpmforge repomd.xml [1095B]
    1095B を 1s 秒で取得しました (729B/s)
    取得:1 http://apt.sw.be redhat/el5/en/i386/rpmforge/ primary.xml [4291kB]
    取得:2 http://apt.sw.be redhat/el5/en/i386/rpmforge/ filelists.xml [5083kB]    
    9374kB を 35s 秒で取得しました (267kB/s)                                       
    パッケージリストを読みこんでいます... 完了
    依存情報ツリーを作成しています... 完了        
    [root@hoge ~]# 
    

2012年3月8日木曜日

LDAPの初期化(再設定)

  1. ldap(slapd)を停止する。
  2. [root@hoge ~]# service ldap stop
    slapd を停止中:                        [ OK ]
    [root@hoge ~]#
    (レプリケーションの場合は、スレーブを先に停止させる。)

  3. slapd.conf等の必要編集を行う。slaptestも実施しておく

  4. ldapデータベースを物理的に削除する。
  5. /var/lib/ldap フォルダの中の DB_CONFIG 以外を削除する。
    ※こちらの設定では、/var/lib/ldap にldapデータベースが登録される設定のため。
      /etc/openldap/slapd.conf で指定

    [root@hoge ldap]# ls -il
    合計 1208
    131133 -rw-r----- 1 root root      921  1月 24 08:14 DB_CONFIG
    131116 -rw------- 1 ldap ldap    24576  3月  7 10:21 __db.001
    131117 -rw------- 1 ldap ldap   278528  3月  7 10:21 __db.002
    131118 -rw------- 1 ldap ldap   270336  3月  7 10:21 __db.003
    131119 -rw------- 1 ldap ldap    98304  3月  7 10:21 __db.004
    131120 -rw------- 1 ldap ldap   352256  3月  7 10:21 __db.005
    131121 -rw------- 1 ldap ldap    24576  3月  7 10:21 __db.006
    131082 -rw-r--r-- 1 ldap ldap     4096  3月  7 10:21 alock
    131126 -rw------- 1 ldap ldap     8192  1月 28 20:48 cn.bdb
    131124 -rw------- 1 ldap ldap     8192  1月 28 20:48 dn2id.bdb
    131132 -rw------- 1 ldap ldap     8192  1月 28 20:48 gidNumber.bdb
    131123 -rw------- 1 ldap ldap    32768  1月 31 20:54 id2entry.bdb
    131122 -rw------- 1 ldap ldap 10485760  3月  7 10:21 log.0000000001
    131130 -rw------- 1 ldap ldap     8192  1月 22 20:00 loginShell.bdb
    131129 -rw------- 1 ldap ldap     8192  1月 28 20:48 memberUid.bdb
    131125 -rw------- 1 ldap ldap     8192  1月 28 20:48 objectClass.bdb
    131127 -rw------- 1 ldap ldap     8192  1月 24 21:44 ou.bdb
    131128 -rw------- 1 ldap ldap     8192  1月 22 20:00 uid.bdb
    131131 -rw------- 1 ldap ldap     8192  1月 22 20:00 uidNumber.bdb
    
    削除後の内容
    [root@hoge ldap]# ls -il
    合計 8
    131133 -rw-r----- 1 root root 921  1月 24 08:14 DB_CONFIG
    [root@hoge ldap]# 
    

  6. ldap(slapd)を起動する。
  7. [root@hoge ~]# service ldap start
    slapd の設定ファイルをチェック中:  config file testing succeeded
                                                           [  OK  ]
    slapd を起動中:                                            [  OK  ]
    [root@hoge ~]# 
    
  8. 初期情報を登録
  9. 基本データ(base.ldif)
    dn: dc=example,dc=com
    objectClass: dcObject
    objectClass: organization
    dc: example
    o: example
    
    dn: ou=People,dc=example,dc=com
    objectClass: organizationalUnit
    ou: People
    
    dn: ou=Group,dc=example,dc=com
    objectClass: organizationalUnit
    ou: Group
    
    dn: ou=Hosts,dc=example,dc=com
    objectClass: organizationalUnit
    ou: Hosts
    ldapaddコマンドでLDIFファイルの内容を登録します。
    
    # ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f base.ldif 
    Enter LDAP Password:
    adding new entry "dc=horisawa,dc=info"
    
    adding new entry "cn=Manager,dc=horisawa,dc=info"
    
    adding new entry "ou=People,dc=horisawa,dc=info"
    
    adding new entry "ou=Group,dc=horisawa,dc=info"
    
    adding new entry "ou=Hosts,dc=horisawa,dc=info"
    
    
    ユーザ/グループの登録(既存unixアカウントをそのまま移行する)
    • /etc/passwdのアカウントをLDAPへ登録する。
    • /etc/passwdから一般ユーザのみを抽出するようuidが500番台を抽出。
      [root@hoge openldap]# grep :5[0-9][0-9] /etc/passwd > users-list.txt
      
      /migrate_passwd.pl を利用してLDIFファイルを作成。
      [root@hoge openldap]# /usr/share/openldap/migration/migrate_passwd.pl users-list.txt > users.ldif
      
      ldapaddコマンドでLDIFファイルの内容を登録します。
      
      # ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f user.ldif 
      Enter LDAP Password:
      adding new entry "uid=hoge01,ou=People,dc=example,dc=com"
      
      adding new entry "uid=hoge02,ou=People,dc=example,dc=com"
      
      
    • /etc/groupのグループをLDAPへ登録する
    • /etc/groupから一般グループのみを抽出するようgidが500番台を抽出。
      [root@hoge openldap]# grep :5[0-9][0-9] /etc/group > groups-list.txt
      
      /migrate_passwd.pl を利用してLDIFファイルを作成。
      [root@hoge openldap]# /usr/share/openldap/migration/migrate_group.pl groups-list.txt > groups.ldif
      
      ldapaddコマンドでLDIFファイルの内容を登録します。
      
      # ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f user.ldif 
      Enter LDAP Password:
      adding new entry "cn=hoge01,ou=Group,dc=example,dc=com"
      
      adding new entry "cn=hoge02,ou=Group,dc=example,dc=com"
      
      adding new entry "cn=hoge03,ou=Group,dc=example,dc=com"
      
      adding new entry "cn=hoge04,ou=Group,dc=example,dc=com"
      
      

smbldap-toolsを利用して登録を行う。

基本データ(base.ldif)を登録した後に、smbldap-toolsを利用してユーザ・グループおよび管理者情報の登録を行う。
事前にsambaが正しく設定されているものとして下記にコマンドを実行する。

基本データ(base.ldif)の登録
[root@hoge ldif]# ldapadd -x -D "cn=Manager,dc=horisawa,dc=info" -W -f base.ldif
Enter LDAP Password: 
adding new entry "dc=horisawa,dc=info"

adding new entry "cn=Manager,dc=example,dc=com"

adding new entry "ou=Users,dc=example,dc=com"

adding new entry "ou=Groups,dc=example,dc=com"

adding new entry "ou=Computers,dc=example,dc=com"

[root@hoge ldif]# 

グループ(groups.ldif)の登録
[root@hoge ldif]# ldapadd -x -D "cn=Manager,dc=horisawa,dc=info" -W -f groups.ldif

ユーザー(users.ldif)の登録
[root@hoge ldif]# ldapadd -x -D "cn=Manager,dc=horisawa,dc=info" -W -f users.ldif
smbldap-toolsでデータを登録する。
[root@hoge ~]# smbldap-populate -a Administrator -b Guest
Populating LDAP directory for domain EXAMPLE (S-1-5-21-2725434548-1602857623-2035637331)
(using builtin directory structure)

entry dc=example,dc=com already exist. 
entry ou=Users,dc=example,dc=com already exist. 
entry ou=Groups,dc=example,dc=com already exist. 
entry ou=Computers,dc=example,dc=com already exist. 
adding new entry: ou=Idmap,dc=example,dc=com
adding new entry: uid=Administrator,ou=Users,dc=example,dc=com
adding new entry: uid=Guest,ou=Users,dc=example,dc=com
adding new entry: cn=Domain Admins,ou=Groups,dc=example,dc=com
adding new entry: cn=Domain Users,ou=Groups,dc=example,dc=com
adding new entry: cn=Domain Guests,ou=Groups,dc=example,dc=com
adding new entry: cn=Domain Computers,ou=Groups,dc=example,dc=com
adding new entry: cn=Administrators,ou=Groups,dc=example,dc=com
adding new entry: cn=Account Operators,ou=Groups,dc=example,dc=com
adding new entry: cn=Print Operators,ou=Groups,dc=example,dc=com
adding new entry: cn=Backup Operators,ou=Groups,dc=example,dc=com
adding new entry: cn=Replicators,ou=Groups,dc=example,dc=com
adding new entry: sambaDomainName=example,dc=example,dc=com

Please provide a password for the domain Administrator: 
Changing UNIX and samba passwords for Administrator
New password: 
Retype new password: 
[root@hoge ~]# 

初期データ投入がうまくいったら、ドメイン管理者アカウント(Administrator)のパスワードを設定する。PDCマシン上でrootになり、以下を1度だけ実行すればよい。

[root@hoge ~]# smbldap-passwd Administrator
Changing UNIX and samba passwords for Administrator
New password: 
Retype new password: 
[root@hoge ~]# 

一般ユーザーを追加する。

[root@hoge samba]# smbldap-passwd testuser
Changing UNIX password for testuser
New password: 
Retype new password: 
[root@hoge samba]# 

SASL認証設定ファイル編集

smbldap-useraddで追加したユーザがSMTP-Authが行えるようにする

# vi /etc/sysconfig/saslauthd
MECH=shadow
↓
MECH=pam
確認事項およびエラー等の注意事項

ログを確認したら下記のようにエラーが発生していた。(/var/log/samba/log.smbd)

[2012/04/26 18:41:59.611756,  2] lib/smbldap.c:1018(smbldap_open_connection)
  smbldap_open_connection: connection opened
[2012/04/26 18:41:59.611978,  0] passdb/secrets.c:350(fetch_ldap_pw)
  fetch_ldap_pw: neither ldap secret retrieved!
[2012/04/26 18:41:59.612175,  0] lib/smbldap.c:1180(smbldap_connect_system)
  ldap_connect_system: Failed to retrieve password from secrets.tdb
[2012/04/26 18:41:59.612359,  1] lib/smbldap.c:1409(another_ldap_try)
  Connection to LDAP server failed for the 5 try!
[root@ora02 samba]# 

というエラーが出されていました.secrets.tdb はそれぞれのローカルマシンで作成されるもので,そこに,LDAP のパスワードを登録しないと LDAP サーバにて認証が通りません.そこで,secrets.tdb に LDAP の管理者パスワードを登録する必要があります.次のコマンドを実行します.

[root@hoge ~]# smbpasswd -W
Setting stored password for "cn=Administrator,ou=Users,dc=example,dc=com" in secrets.tdb
New SMB password:        (LDAPの管理用パスワードを入力)
Retype new SMB password: (LDAPの管理用パスワードをもう一度入力)
[root@hoge ~]# 
今回の設定で関連するファイルは下記の通りです。
・/etc/openldap/slapd.conf (ldapの基本設定)
・/etc/openldap/ldif/base.ldif (作成した基本情報)
・/etc/samba/smb.conf (sambaの基本設定)
・/etc/smbldap-tools/smbldap.conf (変換を行うための基本情報が設定)
・/etc/smbldap-tools/smbldap_bind.conf (masterDNとmasterPwを設定)

2012年3月7日水曜日

Adobe Flash Playerが更新されると手間が...

いつからなのか、CentOSでAdobe Flash Playerが自動更新されるとrootユーザー以外のfirefoxでAdobe Flash Playerプラグインが利用できなくなるという現象がが発生する。参るよね。(ーー;)

root以外のユーザーでもAdobe Flash Playerのプラグインが使用できるように、rootユーザーの設定情報を確認して同じ内容に変更する。(面倒だな。)

■ rootユーザーのfirefox プラグイン設定を確認する

[root@hogehode ~]# cd .mozilla/firefox
[root@ora02 firefox]# ls
Crash Reports abcd98yz.default profiles.ini
※プラグインの設定ファイルが格納されているフォルダへ移動する
[root@ora02 firefox]# cd abcd98yz.default
[root@ora02 abcd98yz.default]# # cat pluginreg.dat
Generated File. Do not edit.

[HEADER]
Version:0.15:$
Arch:x86-gcc3:$

[PLUGINS]
libflashplayer.so:$
/usr/lib/flash-plugin/libflashplayer.so:$
:$
1330401424000:1:1:$
Shockwave Flash 11.1 r102:$
Shockwave Flash:$
2 0:application/x-shockwave-flash:Shockwave Flash:swf:$
1:application/futuresplash:FutureSplash Player:spl:$

[INVALID]


[PLUGINS]の内容をそれぞれのユーザー(一般ユーザー)のfirefoxの設定フォルダの上記の値を変更する。 私の場合は、それぞれのユーザー(一般ユーザー)の[PLUGINS]が空になっていたり、rootとは異なる内容(更新されない)になっていたが、rootユーザと同じ設定にしてログオンし直すと無事にAdobe Flash Playerのプラグインが使用できるようになった。