CentOS 7.1上のGNOME 3.8.4のパネルで使用するフォントの変更 [CentOS]
anti-alias を有効にすればある程度綺麗に表示できるが、できれば anti-alias を有効にしたくない。
以下は、この状況で、パネルの表示をある程度綺麗にするための対応方法である。
1. Sazaname フォントの導入
(1) フォント・データのダウンロード
・URL
https://osdn.jp/projects/efont/
・file
sazanami-20040629.tar.bz2
(2) フォント・データのインストール
・フォント・データの展開
# tar jxvf sazanami-20040629.tar.bz2
・フォント・データのインストール
# mkdir /usr/share/fonts/sazanami # cd sazanami-20040629 # mv *.ttf /usr/share/fonts/sazanami
2. フォントパスの追加
(1) /etc/fonts/local.conf の編集
/etc/fonts/local.conf に下記の設定を追加する。
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <!-- Font directory list --> <dir>/usr/share/X11/fonts</dir> </fontconfig>
(2) X Window System の再起動
3. /usr/share/gnome-shell/theme/gnome-shell.css の編集
下記のように変更する。
# diff gnome-shell.css gnome-shell.css.org 24,25c24 < /*font-family: cantarell, sans-serif;*/ < font-family: "Sazanami Gothic", monospace; --- > font-family: cantarell, sans-serif; 468,469c467 < /*font-weight: bold;*/ < font-weight: medium; --- > font-weight: bold; 1377,1378c1375 < /*font-family: cantarell, sans-serif;*/ < font-family: "Sazanami Gothic", monospace; --- > font-family: cantarell, sans-serif;
CentOS 7.1のGNOME 3.8.4でのAlt+[半角/全角]のキーバインド [CentOS]
・キーボードのショートカットの設定: [設定] -> [キーボード] -> [ショートカット]
・このままでは Alt + [半角/全角] での日本語入力の開始/終了を行うことができない。
GNOME での当該キーのキーバインドを無効化するには、下記の手順の実施が必要である。
1. dconf エディタの起動
[アプリケーション] -> [諸ツール] -> [dconf エディタ]
2. GNOME のキーバインドの変更
(1) org -> gnome -> desktop -> wm -> keybindings
(2) switch-group の設定値の変更
(変更前) ['<Super>Above_Tab', '<Alt>Above_Tab'] (変更後) ['<Super>Above_Tab']
gnome-terminal起動時のエンコーディングの指定 [CentOS]
発生事象の詳細と対処方法は、以下の通りである。
1. 発生事象
CentOS 7.1 の gnome-terminal では、起動時のエンコーディングが指定できなくなった。
バージョンアップにより、仕様が変更されたものと思われる。
・gnome-terminal-3.8.4-8.el7.x86_64
・UTF-8 エンコーディングで起動される。
・起動後の変更は可能である。
CentOS 6.7 では、ロケールを指定することで対応できていた。
・gnome-terminal-2.31.3-11.el6_6.i686
(例) EUC-JP エンコーディングを指定する場合 env LC_ALL=ja_JP.eucJP LANGUAGE=ja_JP.eucJP gnome-terminal
2. 対処方法
下記の手順により、gnome-terminal を Fedora 18 のパッケージに置き換える。
(1) パッケージのダウンロード
gnome-terminal-3.6.1-1.fc18.x86_64.rpm
(2) gnome-terminal のバージョンダウン
# rpm --oldpackage -Uvh gnome-terminal-3.6.1-1.fc18.x86_64.rpm
firewalldでの複数の条件を組み合せたルールの作成 [CentOS]
詳細は、以下の通りである。
1. ルールの作成方法
下記のいずれかの機能を使用する。
(1) direct option
(例) # firewall-cmd [--permanent] --direct --add-rule ipv4 filter INPUT 0 ...
iptables にルールを直接設定するようなものである。
(詳細は firewall-cmd(1) の man ページを参照)
(2) rich rule
(例) # firewall-cmd --add-rich-rule='rule family="ipv4" ...'
リッチ言語表現を使用したルール設定である。
指定できる主な項目は、下記の通りである。
(リッチ表現の詳細は、firewalld.zone(5) の man ページを参照)
(a) family
設定値: ipv4 | ipv6 指定方法: family="<value>"
(b) source address
設定値: <address>[/<range>] 指定方法: source address="<value>"
(c) destination address
source address と同様
(d) port
設定値: {<port>[-<port>]} {tcp | udp} 指定方法: port port="<value_1>" protocol="<value_2>"
(e) action
設定値: accept | reject | drop 指定方法: <value>
2. 使用例
ローカルネット(192.168.0.0/24) からの rsh でのアクセスを許可する。
(1) direct option を使用する場合
(a) 設定
# firewall-cmd --direct --add-rule ipv4 filter INPUT 0 \ -s 192.168.0.0/24 -p tcp --dport 513:514 -j ACCEPT success
(b) 追加されるルール
# iptables -L Chain INPUT_direct (1 references) target prot opt source destination ACCEPT tcp -- 192.168.0.0/24 anywhere tcp dpt:login:shell
(c) 補足
ルールの削除は、--add-rule を --remove-rule に変更して実行する。
(2) rich rule を使用する場合
(a) 設定
# firewall-cmd --add-rich-rule='rule family="ipv4" \ source address="192.168.0.0/24" port port="513-514" protocol="tcp" \ accept' success
(b) 追加されるルール
# firewall-cmd --list-all public (default, active) interfaces: enp2s0 sources: services: dhcpv6-client ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules: rule family="ipv4" source address="192.168.0.0/24" \ port port="513-514" protocol="tcp" accept
(c) 補足
ルールの削除は、--add-rich-rule を --remove-rich-rule に変更して実行する。
3. 備考
(1) 参考情報
https://access.redhat.com/documentation/ja-JP/\
Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html
(2) 感想
通常は、iptables を使用(firewalld の無効化が必要)した方がよいように思われる。
・http://dan-project.blog.so-net.ne.jp/2015-09-12-1
PostgreSQL 9.1起動時のPermission deniedへの対応 [Debian]
・パッケージのバージョン
postgresql-9.1 9.1.16-0+deb7u1
postgresql-common 165
・エラーメッセージ
"/etc/ssl/certs/ssl-cert-snakeoil.pem": Permission denied
原因および対処方法の詳細は、以下の通りである。
1. 発生事象
下記のような状況となり、PostgreSQL の起動に失敗する。
[postgresql@9.1-main] could not open file "/etc/ssl/certs/ssl-cert-snakeoil.pem": Permission denied startup process (PID 5060) exited with exit code 1 aborting startup due to startup process failure [systemd] postgresql@9.1-main.service: control process exited, code=exited status=1 Failed to start PostgreSQL Cluster 9.1-main. Unit postgresql@9.1-main.service entered failed state.
2. 原因
(1) PostgreSQL のバグと思われる。
アクセス可能かではなく、所有者なのかをチェックしているように思われる。
少なくとも、/etc/ssl/certs/ssl-cert-snakeoil.pem は参照可能である。
[シンボリック・リンクの状況] # pwd /var/lib/postgresql/9.1/main # ls -l server.* lrwxrwxrwx 1 root root 36 Jun 2 13:10 server.crt -> \ /etc/ssl/certs/ssl-cert-snakeoil.pem lrwxrwxrwx 1 root root 38 Jun 2 13:10 server.key -> \ /etc/ssl/private/ssl-cert-snakeoil.key [シンボリック・リンク先の状況] # pwd /etc/ssl # ls -l total 36 drwxr-xr-x 2 root root 20480 May 30 02:12 certs/ -rw-r--r-- 1 root root 10835 Mar 19 2013 openssl.cnf drwx--x--- 2 root ssl-cert 4096 Feb 22 2009 private/ # ls -l certs/ssl-cert-snakeoil.pem -rw-r--r-- 1 root root 644 Feb 22 2009 certs/ssl-cert-snakeoil.pem # ls -l private/ssl-cert-snakeoil.key -rw-r----- 1 root ssl-cert 887 Feb 22 2009 private/ssl-cert-snakeoil.key [postgres ユーザーの所属グループの状況] # grep postgres /etc/group ssl-cert:x:104:postgres postgres:x:122:
3. 対処方法
取り敢えず、下記の手順の実施により、状況が改善される。
(1) 当該ファイルの所有者を root から postgres に変更する。
# cd /etc/ssl # chown postgres certs/ssl-cert-snakeoil.pem # chown postgres private/ssl-cert-snakeoil.key # ls -l certs/ssl-cert-snakeoil.pem -rw-r--r-- 1 postgres root 644 Feb 22 2009 certs/ssl-cert-snakeoil.pem # ls -l private/ssl-cert-snakeoil.key -rw-r----- 1 postgres ssl-cert 887 Feb 22 2009 \ private/ssl-cert-snakeoil.key
(2) PostgreSQL の起動
# systemctl start postgresql@9.1-main.service # systemctl status postgresql@9.1-main.service
(3) PostgreSQL が正常に起動できた後に root 所有に戻す。
PostgreSQL が正常に起動できた後は、root 所有に戻しても問題は発生しない。
4. 備考
(1) 参考資料
https://forums.kali.org/showthread.php?25638-Postgresql-won-t-start
CentOS 7.1のGRUBを使用したチェインロード [CentOS]
また、CentOS 7.1のインストーラーでは、ブートローダーの PBR へのインストールができない。
このため、ブートローダーはインストールせず、既存の GRUB から起動していた。
今回、ブートローダーを PBR へインストールし、チェインロードを実現した。
手順は、以下の通りである。
1. CentOS 7.1 のブート
既存の GRUB から CentOS 7.1 をブートする。
2. ブートローダーの PBR へのインストール
(1) /etc/default/grub の編集
GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=0 GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT=console GRUB_CMDLINE_LINUX="" GRUB_CMDLINE_LINUX_DEFAULT="video=1440x900-16" GRUB_DISABLE_RECOVERY=true GRUB_DISABLE_OS_PROBER=true
存在しない場合には、新規作成する。
・ブートローダーをインストールしなかった場合には、作成されないようである。
(2) /boot/grub2/grub.cfg の更新
# grub2-mkconfig -o /boot/grub2/grub.cfg
(3) ブートローダーのインストール
# grub2-install --force <dev-path> options: dev-path: device path
PBR にインストールする場合には、--force の指定が必要である。
未指定の場合には、下記のエラーが発生する。
error: will not proceed with blocklists.
3. 既存の GRUB の設定変更
GRUB のチェインロードをするように、エントリを変更する。
CentOS 7.1のboot/shutdown時のコマンドの自動実行 [CentOS]
なお、CentOS 6.x では、下記のような方法で対処していた。
・boot 時に実行するコマンドは、/etc/rc.d/{rc.sysinit,rc.local} に設定する。
(ブート処理のどの時期に実行するかで、設定するファイルを使い分ける。)
・shutdown 時に実行するコマンドは、/etc/rc.d/init.d/halt に設定する。
詳細は、以下の通りである。
1. boot 時の /tmp 内のファイルの削除
(1) /etc/tmpfiles.d/tmp.conf の作成
# cd /etc/tmpfiles.d # cp -p /usr/lib/tmpfiles.d/tmp.conf .
(2) /etc/tmpfiles.d/tmp.conf の編集
# diff /etc/tmpfiles.d/tmp.conf /usr/lib/tmpfiles.d 11,13c11,12 < D /tmp 1777 root root - < #d /tmp 1777 root root 10d < #d /var/tmp 1777 root root 30d --- > d /tmp 1777 root root 10d > d /var/tmp 1777 root root 30d
2. boot 時にコマンドを自動実行する機能の有効化
(1) /etc/rc.d/rc.local のパーミションの変更
# chmod 755 /etc/rc.d/rc.local
(2) /etc/rc.d/rc.local の編集
boot 時に実行するコマンドを設定する。
(3) rc-local.service の開始
# systemctl start rc-local.service
3. shutdown 時にコマンドを自動実行する機能の有効化
(1) /usr/sbin/halt.local の作成
# touch /usr/sbin/halt.local # chmod 755 /usr/sbin/halt.local
(2) /usr/sbin/halt.local の編集
shutdown 時に実行するコマンドを設定する。
(3) halt-local.service の開始
# systemctl start halt-local.service
CentOS 7.1のインストール後の設定 [CentOS]
なお、インストール時のパッケージの選択状況は、下記の通りである。
・ベース環境の選択: [最小限のインストール] を選択
・アドオンの選択: [互換性ライブラリ] を選択
1. パッケージの追加インストール
# yum install iptables-services.x86_64 # yum install net-tools.x86_64
2. iptables の有効化
(1) 設定ファイル(/etc/sysconfig/iptables) の編集
CentOS 6.x で使用していたファイルを流用する。
(2) firewalld の無効化
# systemctl status firewalld # systemctl stop firewalld # systemctl disable firewalld # systemctl status firewalld ... 無効化されていることを確認
(3) iptables の有効化
# systemctl status iptables # systemctl enable iptables # systemctl start iptables # systemctl status iptables ... 起動されていることを確認
(補足)
iptables の有効化のためには、firewalld を無効化する必要がある。
3. DNS の設定変更
/etc/resolv.conf の自動更新を無効化するために、下記の手順を実施する。
(1) NetworkManager の無効化
# systemctl status NetworkManager # systemctl stop NetworkManager # systemctl disable NetworkManager # systemctl status NetworkManager ... 無効化されていることを確認
(2) network サービスの再起動
# systemctl restart network
(3) /etc/resolv.conf の編集
4. IPv6 と SELinux の無効化
4-1. IPv6 の無効化のための設定
(1) /etc/sysctl.conf の編集(設定の追加)
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
(2) /etc/sysconfig/network-scripts/ifcfg-
IPV6* の部分をコメント化する。
(そのままでも影響はないが、上記の設定と合わせるために実施する。)
4-2. SELinux の無効化のための設定
(1) /etc/selinux/config の編集
(変更前) SELINUX=enforcing (変更後) SELINUX=disabled
4-3. システムの再起動
IPv6 と SELinux の無効化のために再起動を実施する。
また、再起動後、下記の確認を行う。
(1) IPv6 の無効化
# ifconfig -a ... IPv6 用のアドレスが出力されないことを確認
(2) SELinux の無効化
# getenforce ... Disabled となっていることを確認
5. ログイン失敗時の待ち時間の無効化
(1) /etc/pam.d/system-auth-ac の編集
# diff system-auth-ac system-auth-ac.org 5c5 < auth sufficient pam_unix.so nullok try_first_pass nodelay --- > auth sufficient pam_unix.so nullok try_first_pass
6. Ctrl + Alt + Del の押下によるリブートの無効化
# systemctl mask ctrl-alt-del.target
7. ユーザーの追加
(例) # useradd -u 1000 -g 100 -s /bin/bash -m <user-name> # passwd <user-name>
CentOS 7.1のインストール [CentOS]
詳細は、以下の通りである。
1. インストールの方針
(1) ブートローダーはインストールしない。
・本バージョンでは、PBR へのインストールができないため。
・CentOS 7.1 の起動は、マルチブート環境の既存の GRUB から行う。
・ブートローダーの PBR へのインストールは、OS インストール後に実施する。
(# grub2-install コマンドで --force オプションを指定)
(2)パッケージの選択では、ベース環境として下記の 2 候補を選択し、比較検討する。
・[最小限のインストール] または [サーバー(GUI 使用)] を選択する。
・アドオンの選択では、[互換性ライブラリ] のみを選択する。
・本バージョンでは、ベース環境選択後のパッケージの個別選択ができないため。
(3) その他
・事前にインストール先のパーティションを作成する。
・IPv4 のアドレスを手動で設定し、IPv6 は使用しない。
2. インストールの手順 (要点のみ記載)
(1) ブートメディアでのブート
(2) 機能の選択
・[Install CentOS 7] を選択する。
(3) インストール中に使用する言語の選択
・[日本語] を選択する。
(4) ネットワークとホストの設定
・[全般] で [この接続が利用可能になったときは自動的に接続する] を選択する。
(5) インストールソースの指定
・ftp://ftp.riken.go.jp/Linux/centos/7.1.1503/os/x86_64/
(6) ソフトウェアの選択
・ベース環境の選択: 使用するベース環境を選択する。
・アドオンの選択: [互換性ライブラリ] を選択する。
(7) インストール先の指定
(a) デバイスの選択
・[パーティション構成を行いたい] を選択する。
・下部の [Full disk summay and boot loader ...] をクリックする。
・デバイスを選択し、[ブートローダーをインストールしない] を選択する。
(b) 手動パーティション設定
・[不明] という項目のリストから、既存のパーティションを選択する。
・/ にマウントするパーティションは、[再フォーマット] の選択が必須である。
・[変更を適用する] を選択し、パーティションの設定を追加する。
・すべてのパーティションの追加後に、[完了] をクリックし、設定を終了する。
(8) その他の設定
・kdump を使用しない場合には、[KDUMP の設定] で設定を変更する。
・日付と時刻、言語サポート、キーボードは初期値を使用する。
(初期値は、アジア/東京 タイムゾーン、日本語、日本語である。)
(9) インストールの開始
・右側下部の [インストールの開始] をクリックする。
・[ユーザーの設定] では、[root のパスワードの設定] のみ行う。
(ユーザーの追加は、インストール後に実施するため。)
3. 備考
インストールされるパッケージの数は、下記の通りである。
・[最小限のインストール] を選択の場合: 306 個
・[サーバー(GUI 使用)] に変更した場合: 1231 個
debian 8のautofsの不具合への対応 [Debian]
詳細は、以下の通りである。
1. 発生事象
autofs での NTFS のマウント時にオプション指定ができない。
・NTFS のマウントには、ntfs-3g (1:2014.2.15AR.2-1+deb8u2) を使用している。
・fstype 以外のオプションを指定するとマウントポイントが認識されない。
・fstype 以外のオプションを指定しない場合には問題ない。
・mount コマンドでのオプション指定では問題なくマウントできる。
(補足)
http://dan-project.blog.so-net.ne.jp/2015-06-30
2. 原因
ntfs-3g において、-s オプションが未サポートとなっているためである。
・automount が ntfs-3g を -s オプション指定で実行する。
・-s オプションが指定されているため、ntfs-3g がエラーとなる。
・ntfs-3g がエラーとなるため、mount が実施されない。
(補足)
下記の手順により、確認できる。
・/etc/default/autofs の OPTIONS に -d を追加する。
・autofs を再起動する。
・autofs によるマウントを実行する。
・/var/log/syslog を参照する。
3. 対処方法
ntfs-3g に -s オプションを渡さないようにするため、下記の手順を実施する。
(1) 既存の ntfs-3g の保存
# cd /bin # mv ntfs-3g ntfs-3g.org
(2) ntfs-3g の作成
/bin/ntfs-3g として、下記のシェルスクリプトを作成する。
#!/bin/sh # patch for ntfs-3g(1:2014.2.15AR.2-1+deb8u2) /bin/ntfs-3g.org `echo $* | sed 's/ -s//'`
4. 備考
(1) 参考情報
https://bugs.launchpad.net/ubuntu/+source/autofs/+bug/1448678
(2) ntfs-3g を Debian 7 のパッケージにバージョンダウンしても改善しない。
ntfs-3g_2012.1.15AR.5-2.1+deb7u2_i386.deb
(dpkg -i ntfs-3g_2012.1.15AR.5-2.1+deb7u2_i386.deb でインストール)
(補足)
Debian 7 では問題は発生しない。