-
105シェル、スクリプト、およびデータ管理
-
105.1 シェル環境のカスタマイズと仕様
-
ログインシェル
- psで-bashと表示
- 対話型シェル
- /etc/profile
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
- ~/.bashrc
- /etc/bashrc
- ~/.bash_logout
-
環境変数
- HOME
- LANG
- PATH
- PWD
- USER
-
シェル変数
- PS1
- BASH
- set
- unset
- export
- env
- function
- declare -f
-
alias
- \コマンド
- unalias
- lists
-
105.2 簡単なスクリプトをカスタマイズまたは作成する
-
スクリプト
-
条件
- if
- case
-
ループ
- for
- while:真の間繰り返し
- until:偽の間繰り返し
- source
- .
- expr
-
seq
- seq 5:1~5
- seq 1 3 10:1~10を3きざみ
- seq -w 10 10 100:桁数をそろえる
- read
-
test
-
ファイル
- 種類
- -f
- -d
- -b
- -c
- -L:シンボリックリンク
- パーミッション
- -r
- -w
- -x
- -u:SUID
- -g:SGID
- -k:スティッキービット
-
ファイル特性
- -nt
- -ot
- -e:ファイルがあれば
- -s:サイズ0以上があれば
-
数値
- -eq
- -ge
- -gt
- -le
- -lt
- -ne
-
文字列
- -n:長さが0以上あれば
- -z:長さが0であれば(zero)
- A = B
- A != B
-
論理
- !条件
- A -a B
- A -o B
-
特殊変数
- $?
- $1~$9, ${10}
- $$
- $#
- $@:$0以外の全て
- $*:$0以外の全て
- $!:最後に実行したバックグラウンドのPID
- $$
- $-:現在のオプションフラグ
-
105.3 SQLデータ管理
- LIMIT
-
基本
- SELECT
-
SQL関数
- MAX
- MIN
- SUM
- AVG
- COUNT
-
演算子
- +
- >=
- <=
- <>
-
主題106ユーザインターフェイスとデスクトップ
-
106.1 X11のインストールと設定
-
X Window System(X11, X)
- XFree → X.Org
-
Xサーバ
- ハードウェア管理
- Xクライアントへイベント通知
- xhost:Xクライアントに接続許可を設定
- +ホスト名
- -ホスト名
- +
- -
-
Xクライアント
- アプリ管理
- Xサーバへ描画依頼
- 環境変数DISPLAY:Xサーバを指定
- [ホスト名|IPアドレス]:ディスプレイ番号(デフォルトなら0)
-
/etc/X11/xorg.conf
- セクション
- ServerLayout
- Files
- フォント、カラーデータベースファイルのパス
- Module
- InputDevice
- キーボード,マウス
- Monitor
- モニター
- Device
- ビデオカード
- Screen
- 表示色数、解像度
- コマンド
- 自動生成
- Xorg -configure
- /root/xorg.conf.newを作成
- テスト
- X -config /root/xorg.conf.new
- /etc/X11/xorg.confへコピー
- ビデオモードの設定
- xvidtune
-
設定確認
- showrgb:利用可能な色とRGB値
- xlsclients:実行中のXクライアント
- xwininfo:ウィンドウのサイズ、位置、色深度
- xdpyinfo:ディスプレイ情報
-
Xフォントサーバ(xfs)
- xorg.conf
- FontPath "unix/:7100"
- FontPath "unix/:-1"
- /etc/X11/fs/config
- コマンド
- /etc/init.d/xfs start:起動
- xlsfonts:利用可能なフォント
-
コマンド
- startx:起動
- xinit
- ~/.xinitrc
- /etc/X11/xinit/xinitrc.d/以下
- /etc/X11/xinit/xinitrc
- ~/.xsession
- ~/.Xclients
- /etc/X11/xinit/Xclients
-
106.2 ディスプレイマネージャの設定
-
ディスプレイマネージャ
- ログイン時のユーザ認証、シェル起動
-
種類
- XDM:X.Org
- XDMCPプロトコル
- xdm-config
- /etc/X11/xdm/Xsession
- ~/.xsession
- Xresources:ログイン画面のデザイン設定
- Xaccess:XDMへのアクセス許可
- Xsetup_0:ログイン前実行
- カラー設定や背景指定が可能
- GDM
- KDM
-
ウィンドウマネージャ
- twm
- vtwm
- fvwm
- Afterstep
- Sawfish
- Enlightenment
- WindowMaker
- XFce
- kwin
- Metacity
-
106.3 アクセシビリティ
- スティッキーキー
- スローキー
- バウンスキー
- トグルキー
- マウスキー
- リピートキー
-
ソフト
- Orca:スクリーンリーダー
- GOK:オンスクリーンキーボード
- emacspeak:スクリーンリーダー
-
AccessX:キーボード
- Oracle提供
-
主題107管理業務
-
107.1 ユーザアカウント、グループアカウント、
および関連するシステムファイルを管理する
-
/etc/passwd:ユーザアカウント管理
- ユーザ名
- パスワード:/etc/shadow
- UID:rootは0,一般ユーザは100以降
- GID:/etc/group:プライマリグループ
- GECOS:コメント
- ホームディレクトリ
- デフォルトシェル
-
/etc/group:グループ管理
- グループ名
- グループパスワード:x=/etc/shadow
- GID
- グループメンバ:,区切り
-
/etc/shadow:パスワード管理
- ルートのみ読み取り可能(400)
- /etc/issue, /etc/issue.net:ログイン前に表示される
- /etc/motd:ログイン後に表示される
-
管理コマンド
-
useradd:ユーザ作成
- -c コメント
- -d ホームディレクトリパス
- -g プライマリグループ名|GID
- -G サブグループ名|GID
- -s ログインシェルパス
- -D デフォルトの設定値を表示もしくは設定
-
usermod:既存ユーザ変更
- useraddとほぼ同じオプション
- -L:パスワードロック(無効化)
- -U:ロック解除
-
userdel:ユーザ削除
- -r:ホームディレクトリ削除
-
passwd:パスワード変更
- -l:パスワードロック(無効化)
- -u:ロック解除
- -n:変更禁止期間
- /etc/passwd の第2番目を*にする
- groupadd:グループ作成
-
groupmod:既存グループ情報変更
- -g:GID変更
- -n:グループ名
-
groupdel:グループ削除
- プライマリグループとしているユーザがいると削除不可
- id:ユーザのUID, GIDを表示
- /etc/skelディレクトリ
-
107.2 ジョブスケジューリングによるシステム管理業務の自動化
-
cron
-
crond:デーモン
- 1分ごとに起動
-
crontab:編集
- /var/spool/cron/crontabs/[ユーザ名]
- /etc/crontab:システム用
- 実行ユーザ指定
- -e:編集
- -l:内容表示
- -r:削除
- -u ユーザ名:ユーザのcrontab編集
- 書式:分 時 日 月 曜日 コマンド
- 曜日:0~7
- */2:2分毎
- *:全ての値
-
アクセス制御
- /etc/cron.allow
- /etc/cron.deny
- 全ユーザ可能
-
at
- 日時のみ → 入力モード
- -f ファイル名 日時
- -l:一覧表示
- -d:削除
-
日時指定
- 22:00, 10pm
- noon
- midnight
- today
- tomorrow
- now + 3 days
- atq
- atrm
-
アクセス制御
- /etc/at.allow
- /etc/at.deny
- rootのみ可能
-
107.3 ローカライゼーションと国際化
-
ロケール
-
カテゴリ
- LC_CTYPE
- LC_COLLATE
- LC_MESSAGES
- LC_MONETARY
- LC_NUMERIC
- LC_TIME
- LC_ALL
- LANG
-
ロケール名
- 言語名_国家|地域名.文字コード
- ja_JP.utf8
- locale:ロケール設定確認
-
文字コード
- iconv
-
タイムゾーン
- /usr/share/zoneinfo/
- /etc/localtime
- /etc/timezone
- TZ:環境変数
- tzconfig
-
tzselect
- 表示のみ、設定は不可
-
主題110セキュリティ
-
110.1 セキュリティ管理業務を実施する
-
ポート確認コマンド
- netstat
-
lsof
- -c コマンド:コマンドに一致するプロセスのみ
- -i[:ポート]:指定したポートのIP番号のみ
- -p PID 指定したPIDのみ
- -u UID:ユーザ-IDのみ
-
nmap
- ポートスキャン
-
SUID/SGID
- find / -perm -u+s -ls
- find / -perm -g+s -ls
- find / -perm -o+t -ls
-
パスワード管理
-
chage
- -l:有効期限を表示
- -m:最低間隔日数
- -M:最大有効期限
- -d:最終更新日
- -W:有効期限切れの警告表示を何日前からか
- -I:有効期限切れ後のロック日数
- -E:無効となる日付
- /etc/nologin
-
一般ユーザのログイン禁止
- ログインシェルを、/bin/false, /sbin/nologinに変更する
- usemod -s /sbin/nologin ユーザ名
-
su
- -:環境も全て変更後ユーザとなる
- 無し:ユーザのみが切り替わる
-
sudo
- visudo
-
/etc/sudoers
- 許可するユーザ名 ホスト名=実行ユーザ名 [NOPASSWD:]コマンド
- ALL
- NOPASSWD:実行時にパスワードを聞かれない
- 一般ユーザは読込不可
- -l:実行可能なコマンドを表示
-
ulimit
- -a:設定値の表示
- -c:コアファイルサイズ
- -f:生成ファイルサイズ
- -n:同時に開けるファイル数
- -u:プロセス数
- -v:仮想メモリサイズ
-
110.2 ホストのセキュリティ
- デーモン
-
スーパーサーバ
-
inetd
- /etc/inetd.conf
- 1ファイル中に全サービスを記述
- service_name
- socket_type:TCP=stream, UDP=dgram
- protocol:tcp|udp
- flag:wait|nowait:処理終了待機フラグ
- user:実行ユーザ
- program:プログラムへのパス|tcpd
- args:引数
- 起動したデーモンは、in.デーモン名となることがある
-
xinetd
- /etc/xinetd.conf
- instances:最大デーモン数
- log_type:出力方法(ファシリティを指定)
- log_on_success:接続許可時のログ内容
- log_on_failure:接続拒否時のログ内容
- cps:1秒間の最大コネクション数
- includedir:サービスごとの設定ファイルディレクトリ
- /etc/xinetd.d/
- サービスごとの設定
- disable:有効|無効
- socket_type:TCP=stream, UDP=dgram
- wait:ウェイトタイム
- server:プログラムへのフルパス
- server_args:プログラムへの引数
- log_on_failure:接続拒否時のログ内容
- nice:優先度
- only_from:接続を許可する接続元
- no_access:接続を拒否する接続元
- access_time:アクセスを許可する時間帯
-
TCP Wrapper
-
/etc/hosts.allow
- 書式:サービス名:ホストのリスト
- ALL
- A EXCEPT B
- LOCAL
- PARANOID
- in.telnetd: .lpic.jp =lpic.jpからtelnetへのアクセス許可
- /etc/hosts.deny
- /var/log/secure
-
110.3 暗号化によるデータの保護
-
SSH
-
OpenSSH
- debian:openssh-client, openssh-server
- reahat:openssh, openssh-server, openssh-client
-
v1:RSA1
- 秘密鍵:ssh_host_key
- 公開鍵:ssh_host_key.pub
-
v2:DSA, RSA
- DSA秘密鍵:ssh_host_dsa_key
- DSA公開鍵:ssh_host_dsa_key.pub
- RSA秘密鍵:ssh_host_rsa_key
- RSA公開鍵:ssh_host_rsa_key.pub
-
サーバ
- sshd
- /etc/ssh/sshd_config
- Port:ポート(22)
- Protocol:SSHのバージョン(1,2)
- HostKey:ホストの秘密鍵ファイル
- PermitRootLogin:rootでもログインを許可するか
- RSAAuthentication:v1での公開鍵認証使用有無
- PubkeyAuthentication:v2での公開鍵認証使用有無
- AuthorizedKeysFile:公開鍵ファイル
- PermitEmptyPaswords:空のパスワード許可
- PasswordAuthentication:パスワード認証
- X11Forwarding:X11転送を許可
- /etc/init.d/sshd start
- /etc/init.d/ssh start
-
クライアント
- /etc/ssh/ssh_config
- ssh
-
ホスト認証
- ~/.ssh/known_host:サーバの公開鍵
-
クライアント認証
- 公開鍵認証
- クライアント
- ~/.ssh/known_hosts
- ssh-keygen
- -t タイプ:暗号化タイプを指定(rsa1, rsa, dsa)
- 秘密鍵
- identity
- id_dsa
- id_rsa
- 公開鍵
- identity.pub
- id_dsa.pub
- id_rsa.pub
- サーバ
- ~/.ssh/authorized_keys
- ssh-keygen
- 秘密鍵
- /etc/ssh/ssh_host_rsa_key
- 公開鍵
- /etc/ssh/ssh_host_rsa_key.pub
- パスフレーズ
- scp
-
ssh-agent
- ssh-add
- ポート転送
-
GnuPG
-
gpg
- --list-keys
- --gen-key
- 公開鍵のエクスポート
- gpg -o ファイル名 -a --export メールアドレス
- 公開鍵のインポート
- gpg --import ファイル名
- 署名
- gpg --sign-key メールアドレス
- 暗号化
- gpg -e -a -r メールアドレス 対象ファイル名
- 復号化
- gpg 暗号化後対象ファイル名
-
執行証明書
- gpg -o 証明書ファイル名 --gen-revoke メールアドレス
- gpg --import 証明書ファイル名
-
主題109ネットワークの基礎
-
109.1 インターネットプロトコルの基礎
-
TCP/IP
- OSI参照モデル
-
TCPプロトコル
- コネクション型
- 消失パケットの再送
- 転送順序を整列
- FTP, Telnet, POP, SMTPで使用
-
IPプロトコル
- コネクションレス型
- IPアドレスの規定
- データグラム(伝送単位)の規定
- ネットワーク経路の制御
-
UDPプロトコル
- DNS, FNSで使用
-
ICMPプロトコル
- ping, tracerouteで使用
-
IPv4
- 32ビット
-
IPv6
- 128ビット
-
IPアドレス
-
ネットワーク部
- ネットワークセグメント
-
ホスト部
- ネットワークセグメント内の識別
- サブネットマスク
-
ブロードキャストアドレス
- ホスト部をすべて"1"
-
ルータ
- ネットワークアドレスが異なるネットワークの通信
-
クラス
- ネットワーク部のビット数
- A:8ビット
- サブネット:255.0.0.0
- 0xxxxxxx
- IPアドレス:0.0.0.0~127.255.255.255
- プライベート:10.0.0.0~10.255.255.255
- B:16ビット
- プライベート:172.16.0.0~172.31.255.255
- 10xxxxxx
- C:24ビット
- プライベート:192.168.0.0~192.168.255.255
- 110xxxxx
-
デフォルトゲートウェイ
- IPアドレスの先頭8ビットが"0"
-
ローカルループバック
- IPアドレスの先頭が"127"
- CIDR
-
ポート
-
ウェルノウン 1023番まで
- 20,21:FTP
- 22:SSH
- 23:Telnet
- 25:SMTP
- 53:DNS
- 80:HTTP
- 110:POP3
- 119:NNTP
- 139:NetBIOS
- 143:IMAP
- 161:SNMP
- 443:HTTP over SSL
- 465:SMTP over SSL
- 993:IMAP over SSL
- 995:POP3 over SSL
- 0~65535まで
- レジスタードポート:1024~49151
- /etc/services
-
コマンド
- telnet
- ftp, lftp, ncftp
-
dig
- -x:IPからホスト
- a:IPアドレス
- any:すべて
- mx:メールサーバ
- ns:ネームサーバ
- @DNSサーバ名指定
- whois
-
109.2 基本的なネットワーク構成
- /etc/hostname
- /etc/hosts
-
/etc/nsswitch.conf:名前解決の問い合わせ順
- files
- ldap
- dns
-
/etc/resolv.conf
- domain ドメイン名を指定
- search ドメインが省略された場合の補完を指定
- nameserver DNSサーバを指定
-
(RedHat)/etc/sysconfig/network
- HOSTNAME=ホスト名
- /etc/sysconfig/network-scripts/
-
109.3 基本的なネットワークの問題解決
- ping
- traceroute
- tracepath
- host
- hostname
-
netstat
- -n:名前解決しない
-
-r:ルーティングテーブル
- Destination:宛先
- Gateway:ゲートウェイ
- Genmask:サブネット
- Flag
- U:経路有効
- H:ホストとして設定
- G:ゲートウェイを使用
- Iface
- -t:TCPのみ
- -u:UDPのみ
-
route
- 引数なし:表示
- 追加:route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.30.0.254
- 追加:route add default gw 172.30.0.1
- 削除:route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.30.0.254
- route del default gw IPアドレス:デフォルトゲートウェイを削除
- route del default:デフォルトゲートウェイを削除
-
ifconfig
- lo:ローカルループバックインターフェース
- ifup
- ifdown
- 109.4 クライアント側のDNS設定
-
主題108重要なシステムサービス
-
108.1 システム時刻を維持する
- ハードウェアクロック
-
システムクロック
-
date
- 表示:+%Y%m%d%H%M
- 設定:[MMDDhhmm[[CC]YY][.ss]]
-
hwclock
- -r:表示
- -w:システムクロック→ハードウェアクロック
- -s:ハードウェアクロック→システムクロック
-
NTP
- ntpdate さーば
-
/etc/init.d/ntpd
- /etc/ntp.conf
- server:問い合わせ先
- pool.ntp.org
- /etc/ntp.drift
-
108.2 システムのログ
-
syslog
-
/etc/syslog.conf
- 書式:ファシリティ.プライオリティ 出力先
- ファシリティ:出力元
- auth, authpriv
- cron
- daemon
- kern
- lpr
- mail
- syslog
- local0~7
- *
- プライオリティ:優先度
- emerg
- alert
- crit
- err
- warning
- notice
- info
- debug
- none
- *
- 出力先
- ファイル名
- @ホスト
- ユーザ名
- *:全ユーザ
- /dev/console
-
loggerコマンド
- -p:ファシリティ.プライオリティ
- -t:タグ
- メッセージ
-
ログファイル
- /var/log/messages
- /var/log/secure
- /var/run/utmp
- /var/log/wtmp
- /var/log/lastlog
-
関連コマンド
- who:ログイン中ユーザ
- w:ログイン中のユーザ+システム情報
- last:最近ログインしたユーザ
- lastlog:ユーザごとの最近のログイン情報
- Topic
-
ローテーション
- logrotate
- /etc/logrotate.conf
- klog:カーネルログを最初に受ける(syslogより前)
-
108.3 メール転送エージェント(MTA)の基本
-
MTA
- SMTPサーバ
-
種類
- sendmail
- /etc/init.d/sendmail
- /etc/mail/access
- Postfix
- /etc/init.d/postfix
- sendmail互換
- qmail
- exim
-
mailコマンド
- -s 題名
- 宛先メールアドレス|ユーザ名
- 引数なし:受信メール確認
-
エイリアス
- /etc/aliases
- newaliases
- /etc/aliases.db
-
転送設定
- ~/.forward
-
メールキュー
- mailq
-
108.4 プリンターと印刷を管理する
-
CUPS
- 631ポート
-
設定ファイル
- /etc/cups/cpusd.conf
- /etc/cups/ppd/:プリンタの機種依存情報
- /etc/cups/printers.conf
- /etc/init.d/cups
-
PostScript
- GhostScript:非PostScriptプリンタ用に変換
-
コマンド
-
lpr:印刷
- -#部数
- -P プリンタ名
- ファイル名
- パイプでの印刷も可能
-
lpq:プリントキュー確認
- -P プリンタ名
-
lprm:印刷要求削除
- -P プリンタ名
- -:自分の印刷要求全てを削除