LPICに関するページです。
DNSサーバーを使用してホスト名とIPの変換を行う。
DNSサーバーが保持している全ホスト一覧を表示。
詳細情報表示。
domain information groperの略。
DNSサーバーにパケットを送信し
指定したホストのドメイン情報を取得する。
書式は以下。
など。@serverを記述しない場合はデフォルトで
設定しているNSを見に行く。
IPアドレス
全情報
メールサーバーの情報
DNSサーバーの情報
SOA 情報
指定したホスト迄のパケットの通信経路を表示する。
トレースルートに加え経路のMTUも調査する。
ifconfig インターフェース名 オプション
route -add の記載方法と混同しないこと。
オプションは以下。
IPアドレス
IPアドレスの割り当て。
up
起動。
短縮形 ifup eth0
down
停止。
短縮形 ifdown eth0
metric 数値
インターフェースメトリックの設定。
netmask アドレス
ネットマスクを設定。
ルーティングテーブルの設定と表示。
-F
カーネルのルーティングテーブルを表示。
オプション無しと同じ。
-C
カーネルのルーティングキャッシュを表示。
-n
ホスト名の名前解決を行わない。
経路追加
例 route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
例 route add -net 192.168.100.0/24 gw 192.168.0.1
最後にrejectを付けると、指定したネットワークへの
ルーティングを拒否。通信のブロック。
例 route add -net 192.168.10.0 netmask 255.255.255.0 reject
※書き方として、192.168.100.0 netmask 255.255.255.0と
192.168.100.0/24はどちらでも良い、多分。
-net
ターゲットをネットワークとみなす
-host
ターゲットをホストとみなす
ホストアドレスとそれのゲートウェイを経路追加する場合
route add -host 192.168.0.50 gw 192.168.0.1
デバイス指定で設定する場合は以下
インターフェース名の手前に「dev」が付くことに注意すること。
例 route add -net 192.168.250.0 netmask 255.255.255.0 dev eth1
netmask
ネットマスク
gw
ゲートウェイ
デフォルトゲートのみを設定する場合
route add default gw 192.168.0.1
経路削除
デフォルトゲートウェイを削除する場合はroute del default と入力する。
それかIPアドレスまで入力する。
route del default gw 192.168.0.1
-a
接続待ち状態/接続待ち状態では無いソケットの表示
-g
IPv4とIPv6のマルチキャストグループメンバーシップ情報を表示。
-M
マスカレードされた接続の表示
-p
各ソケットが属しているプログラムのPIDと名前を表示
-n
名前解決せずに数字で表示
-r
ルーティングテーブルを表示
-i
インターフェース毎の統計情報表示。
-s
プロトコル毎の統計情報を表示
[root@centos52 ~]# netstat -s
Ip:
4087 total packets received
~~~~~~
Icmp:
18 ICMP messages received
~~~~~~
IcmpMsg:
InType0: 5
~~~~~~
Tcp:
12 active connections openings
~~~~~~
Udp:
122 packets received
~~~~~~
TcpExt:
3 resets received for embryonic SYN_RECV sockets
~~~~~~
ドメイン情報をwhoisデータベースから取得して表示。
現在ログインしているユーザ名とその使用状況を表示する。
システムにログインしているユーザーの表示。
/var/run/utmpファイルを見ている。
ログイン/ログアウト時に自動更新されている、だいたい。
/var/run/utmpファイルは
ログイン中のユーザー情報を表示。
/var/log/wtmpファイルは
ユーザーのログイン履歴が特殊な形式で記録されている。
lastコマンドで参照可能。
ファイルを開いているプロセス情報を表示。
-i [アドレス]
指定したアドレスのネットワークソケットファイルを表示。
ポートやサービス名を指定可能。
例 lsof -i:22
例 lsof -i:ssh
例 lsof -i:22 -n -P
-n
IPアドレスからホスト名へ変換しない
-p <プロセスID>
プロセスIDで指定されたプロセスのファイルを一覧表示
例 lsof -p 10 -n -P
-P
ポート番号からサービス名へ変換しない
サービス/ポート一覧やOSのバージョンなどを確認する。
ポートスキャン。
※CentOS5.2には入っていないのでインストールする。
yum -y install nmap
nmap [スキャンタイプ] [オプション]
●スキャンタイプ
-sT
TCPポートスキャン
-sU
UDPポートスキャン
-sP
pingスキャン
●オプション
-p
スキャン先(送信先)ポート番号
-g
送信元ポート番号を指定
-v
nmapの詳細メッセージを出力
superuser do。他ユーザー権限でコマンドを実行する。
sudo
-l
ユーザーに対して許可済みのコマンドを表示する。
設定ファイルは/etc/sudoers
sudoersのファイル名に.confはつかない。
-u
root以外のユーザーで実行する際に指定する。
-s
環境変数SHELLで指定されたシェルを実行する。
/etc/sudoersはvisudoで編集する。
編集の例
user_a hostname=(ALL) NOPASSWD:/sbin/halt,/sbin/reboot
ユーザーIDとグループIDを変更してシェルを起動する。
-f
初期設定ファイルを実行しない。
-l
ログインシェルを使用する。
-m,-p
環境変数HOME,USER,LOGNAME,SHELLを残しておく。
-c [command]
ユーザー切り替え後にコマンドを実行する。
-s [shell]
シェルを実行する。
-
ログインするユーザーのシェルを使用する。
リソースを制限する。
-a
設定値を一覧表示。
-f <サイズ>
出力可能な●ファイルサイズの上限。
-u <プロセス数>
1ユーザーが起動可能な●プロセス数の上限。
-v <サイズ>
シェルが利用できる●仮想メモリの上限
-H
制限の設定をハードリミットとする。
-S
制限の設定をソフトリミットとする。
ユーザー及び端末によるログインの履歴を表示する。
/var/log/wtmpというアカウントファイルを参照している。
一般ユーザーでも実行可能。
telnet オプション ホスト名(IPアドレス) ポート番号
シェル変数=値。
例 HENSU=a
削除は、unset HENSU
PATH=$PATH:追加するディレクトリ
Xクライアントの出力先をXサーバに指定する。
DISPLAY=localhost:0
export DISPLAY
タイムゾーンを設定する。
export TZ=Asia/Taipei など。
作成するスクリプトファイルの名前は、
分かりやすいように~.shと名付けるのが無難。
GNOME端末から実行するには
source スクリプトファイル名
. スクリプトファイル名
sh スクリプトファイル名
実行権限が有ればファイル名のみの指定で実行可能。
スクリプトファイルを編集するには、
X Window system(GUI)を使用している場合は
GNOMEテキストエディタ(起動に時間はかかる)を
使用する(アイコンをダブルクリックすると起動します)
と文字列の種類によって色分けがされていて編集し易い。
スクリプトファイルの1行目については
#!インタープリタ と記述する。
例
#!/bin/bash
#!/bin/csh
インタプリタとは
人間がプログラミング言語で記述したソフトウェアの
設計図(ソースコード)を、コンピュータが実行できる
形式(オブジェクトコード)に変換しながら、
そのプログラムを実行するソフトウェア。
インタプリタ型の言語はプログラムの実行時に変換を
行なうため、その分だけコンパイラ型言語よりも遅い。
http://e-words.jp/w/E382A4E383B3E382BFE38397E383AAE382BF.html
関数を定義する。
function 関数名() { コマンド; }
定義したシェル関数を表示する。
指定したリストに沿って処理を繰り返す。
for var in aaa bbb ccc ddd
do
echo $var
done
条件が真の時に処理を繰り返す。
i=1
while [ $i -le 5 ]
do
echo $i
let i=i+1
done
例1
条件が真で有れば処理を繰り返す。
while true
do
tail -50 /var/log/messages
sleep 60
done
例2
即時毎回表出されるには以下。
tail -f /var/log/messages
指定した条件の真偽を判別する。
testの代わりに[]を使用することが多い。
●条件式はif~fiで括る。
if test -f ~/a.sh
then
~/a.sh
else
~/b.sh
fi
条件分岐。ifより条件が多い場合。
case $1 in
1) echo"aaa" ;;
2) echo"bbb" ;;
esac
入力を受付けるコマンド
echo -n"input type"
read aaa
echo"$aaa"
抽出したい条件を設定する。
SELECT 列名 FROM テーブル名 WHERE 検索条件;
SELECT retsu_a, NAME FROM table_a WHERE retsu_a <= 2000;
SELECT * FROM table_a WHERE retsu_a = 'aaa' OR retsu_a = 'bbb';
retsu_aの値がaaaかbbbのレコードだけを表示する。
テーブルを指定する。
データを新規に登録する。
INSERT INTO table_a (retsu_a,retsu_b) VALUES ('aaa',222);
table_aテーブルのretsu_a列にaaa、
table_aテーブルのretsu_b列に222を登録している。
VALUESを使用する。VALUE 訳は「値」
テーブル内の登録済みデータを更新する際に使用する。
UPDATE table_a SET retsu_b='henkogo_b',retsu_c='henkogo_c' WHERE retsu_a = 1;
table_aテーブルのデータのうち、
retsu_a列の値が1のデータの、
retsu_b列をhenkogo_bに
retsu_c列をhenkogo_cに変更する。
データの削除。
DELETE FROM table_a WHERE retsu_a = 1;
table_aテーブルのデータのうち、
retsu_a列の値が1のデータを削除する。
取得したデータを並び替える。
SELECT retsu_a,retsu_b FROM table_a ORDER BY retsu_a;
SELECT retsu_a,retsu_b FROM table_a ORDER BY retsu_a ASC;
でも同じ。ASC(昇順)を使用している。
降順ならばDESC
table_aテーブルのデータのうち、
retsu_a列とretsu_b列を、retsu_a列の昇順で取得する。
テーブルを結合する。
SELECT retsu_a FROM table_a JOIN table_b
ON table_a.retsu_a = table_b.retsu_b;
table_aテーブルのretsu_aとtable_bのretsu_bを基に結合する。
取得したデータをグループ化して出力するために使用する。
SELECT 列名 FROM table_a GROUP BY 列名;
SELECT retsu_a,COUNT(*) FROM table_a GROUP BY retsu_a;
指定した列の行数をカウントする。
表示件数を指定する。
SELECT * FROM table_a LIMIT 5;
5件までにする。
「以上」は「>=」、「且つ」は「AND」、「以外」は「<>」を表す。
SELECT * FROM table_a WHERE retsu_a >= 5 AND retsu_b <> 10;
同時に複数のキーを押すことが困難なユーザーのために、
修飾キー(Shiftキー、ctrlキーなど)が押された後は
次のキーが押されるまで修飾キーが押された状態にする機能。
これを順次入力キー、スティッキーと言う。
押したキーをすぐに離すことが困難なユーザーのために
一定時間以上キーを押さなければキーが繰り返し入力されない機能。
一定時間キーを押した時のみ入力が確定する機能。
一定時間内に複数入力された場合は無視する機能。
入力状態(大文字ロックなど)が変化した場合はビープ音で
知らせる機能。
テンキーでマウスポインタを操作可能にする機能。
コンピュータの画面を読み上げるソフトウェア。
画面の一部を拡大する。
開いた穴を利用して点字を表す。
画面に表示されるキーボード。
読み上げ機能を追加したスクリーンリーダー
(emacsエディタを視覚障害者でも使用できるようにするため等。)
①Orca
スクリーンリーダー、スクリーン拡大鏡、点字ディスプレイへの
出力などの機能が有る。
②GOK
GNOME Onscreen Keyboard。スクリーンリーダー機能が有る。
③emacspeak
読み上げ機能を追加したスクリーンリーダー
(emacsエディタを視覚障害者でも使用できるようにするため等。)
月単位、日単位、曜日単位、時単位、分単位を
組み合わせてスケージューリング出来る。
ログは/var/log/cronに出力され実行結果は
メール送信される。
①/etc/crontabファイルを編集する方法
※rootユーザーのみ編集可能。
rootユーザーとして起動するcronを設定する。
ファイルの編集方法は以下。
min hour day month week command
以下全て*も可能。
min 0~59
hour 0~23
day 1~31
month 1~12 (英語での略名も可能)
week 0~ 7 (0,7は日曜、火曜ならば2)
「一定間隔での実行」の表記は「*/12」や、
5分毎ならば「0-59/5」と表記する。
②crontab -eコマンドを実行する方法
[root@centos52 /]# crontab -e
0 0 * * * /sbin/quotacheck -avugm
※各ユーザーが設定可能。
設定した各ユーザーの権限で起動される
/var/spool/cron/「コマンドを実行したユーザー名」
に設定が記述される。
-e
設定ファイルを編集
-l
設定ファイルを表示
-r
設定ファイルを削除
-u<ユーザーを指定>
ユーザーを指定
cronはタスクを自動実行するが、その実行時間にシステムが
停止してる場合はそのタスクの実行されない。
anacronでは、cronのように設定時刻にタスクが実行されるのではなく
タスクの実行を期間で判断するので、システムが連続稼動している必要が無い。
/etc/anacrontabが設定ファイル。
チェックするディレクトリはcronと同じディレクトリ。
/etc/cron.daily ディレクトリ
/etc/cron.monthly ディレクトリ
/etc/cron.weekly ディレクトリ
/etc/cron.d ディレクトリ
/etc/cron.d ディレクトリ
参照サイト
http://ja.wikipedia.org/wiki/Anacron
指定した時間に1度のみコマンドを実行。
at 06:00 年月日
その他の日時指定書式は以下。
midnight ※00:00のこと。
noon ※12:00のこと。
teatime ※16:00のこと。
10:00pm
today
tomorrow
now + 6 days
10pm + 1 weeks など。
主なオプションは以下。
-d
設定済みのジョブを削除
ジョブ番号で指定する。
atrmと同じ。
-l
設定済みのジョブを表示。
atqと同じ。
-f
コマンドを記載しているファイルを指定する。
設定方法
[root@centos52 ~]# at midnight
at> ls
at>
atコマンドを実行可能なユーザーを記載する。
atコマンド実行不可のユーザーを記載する。
どちらのファイルも存在しない場合は
atコマンドはスーパーユーザーのみ実行可能。
cronに関するファイルとの挙動とは違う、多分。それに注意すること。
どちらのファイルにも同じユーザーが記載されている場合は実行可能。
7ビット。128種類の英数字、記号、制御コード。
ASCIIコードを8ビットに拡張したもの。
合計256文字。
当初は16ビット。現在は32ビット。
LinuxやWindowsなど様々なOSで利用可能。
1つの文字コード体系で多言語を扱うために
作成された。
Unicodeがベース。
ASCIIと同じ部分は1バイト。その他は2~6バイト
Linuxで標準的に使用される。
UNIX環境で標準的に利用される
NTPのデーモン
cronのデーモン
Webサーバのデーモン
syslogのデーモン
カーネルログデーモン。
印刷デーモン
TCP/Wrapperのデーモン。アクセス制御を行う。
inetdから呼び出される。
スーパーサーバー。
ネットワーク上の各種接続要求を監視して
接続要求を検出した際に要求に応じたサーバープログラムを
起動するデーモン。
/etc/inetd.confがinetd自体の設定ファイル。
アクセス制御時には以下を使用する。
・TCP/Wrapper(デーモンはtcpd)
・/etc/hosts.allow
・/etc/hosts.deny
参照する順番は以下。
①まず/etc/hosts.allowに有るホストを許可する。
②次に/etc/hosts.allowに無ければ/etc/hosts.denyを参照する。
/etc/hosts.denyに有ればそのホストは拒否する。
③どちらにも無い場合は許可する。
スーパーサーバーのinetdが拡張されたもの。
/etc/xinetd.confがxinetd自体の設定ファイル。
/etc/xinetd.dディレクトリ内に、xinetdで管理されている
各サービスの設定ファイルとそのサービスに関する
ファイル名が含まれている。
サービス単位のアクセス制御を個別ファイル内に
記載することで設定可能。
サービスを無効にするには
disable = yes
サービスを有効にするには
disable = no
例としてtelnetファイルの内容は以下。
[root@centos52 xinetd.d]# cat telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = yes
}
OpenSSHのデーモン。
/etc/ssh/sshd_config が設定ファイル。
/etc/ssh/ssh_config はクライアント側の設定ファイル。
信頼できるリモートホストのRSA鍵を格納する。
ホストの情報やRSA鍵が格納されているファイル。
一般的に公開されている接続先ホストの公開鍵が
格納されている。
ユーザー毎の場合は、~/.ssh/known_hostsに
置いていても良いのかもしれない。
以下の情報を参照
http://www.itmedia.co.jp/help/tips/linux/l0402.html
同じく接続元のRSA公開鍵が接続先の
~/.ssh/known_hosts(/etc/ssh_known_hosts)に
登録されている必要がある。
DSA鍵が格納されているファイル。
もしかしらた昔の情報かもしれない。
SSHに関するもの。
ユーザーがログインしてシェル/コマンドを実行する直前に
このファイルに記載されているコマンドを実行する。
KEY GENerateの略。SSHで公開鍵と秘密鍵のペアを作成する。
ssh-keygen -t rsa
RSA暗号方式の鍵を作成する。
.sshディレクトリに
id_rsa(秘密鍵)、
id_rsa.pub(公開鍵)
というファイルが生成される。
ssh-keygen -t dsa
DSA暗号方式の鍵を作成する。
.sshディレクトリに
id_dsa(秘密鍵)、
id_dsa.pub(公開鍵)
というファイルが生成される。
生成した公開鍵(クライアントから貰った公開鍵)は公開鍵リストに追加します。
ssh-keygen -t rsa
cat id_rsa.pub >> $HOME/.ssh/authorized_keys
公開鍵のリスト。都度追加できる。
SSHホスト認証のRSA暗号方式の秘密鍵。/etcに格納する。
SSHホスト認証のRSA暗号方式の公開鍵。/etcに格納する。
SSHホスト認証のDSA暗号方式の秘密鍵。/etcに格納する。
SSHホスト認証のDSA暗号方式の公開鍵。/etcに格納する。
認証エージェントのプログラム。
ssh-agentを使用すると、パスフレーズを入力しなくても
良い。ssh-addコマンドで登録しておくことが出来る。
認証エージェントにRSA/DSA秘密鍵を追加する。
秘密鍵のパスフレーズを登録する。
SSHプロトコルを使用してリモートホストと暗号化通信する。
-1
SSHプロトコルのバージョン1を使用する。
-2
SSHプロトコルのバージョン2を使用する。
-l <ユーザー名>
ログインユーザー名を指定する。
-p <ポート番号>
リモートホスト接続時に使用するポート番号を指定。
-L
指定したホスト/ポートを使用して、ホスト間で確立した
SSHのトンネルを介してポート転送。
例 ssh -L port:host:hostport -N user@hostname
GPG(ソフトウェア。GnuPG。)による
ファイルの暗号化や復号化を行う。
~/.gnupg ディレクトリ
関連ファイルが格納されている。
公開鍵暗号方式での復号方法
公開鍵を使って暗号化したものをペアである秘密鍵で
復号する。
まずファイル送信先から事前に公開鍵を貰っておき、
インポートしておく。
復号方法は以下
gpg aaa.gpg(コマンド ファイル名)
オプションは以下
--gen-key
公開鍵暗号方式のキーペアを作成する
--export
公開鍵をエクスポートする
--import
公開鍵をインポートする
--list-keys
公開鍵を一覧表示
-e ファイル名
相手の公開鍵を使用してファイルを暗号化する。
-r メールアドレス
暗号化に使用する公開鍵の持ち主の
-o ファイル名
出力ファイル名
-c
共通鍵暗号方式で暗号化する。
例 gpg -c aaa.txt
GPGの公開鍵キーリングのファイルパス。
GPGの秘密鍵キーリングのファイルパス。
※キーリングとは公開鍵や秘密鍵を保管しておく
鍵用のファイル。
パフォーマンスが良い。
sendmailより設定が簡単。
sendmailと互換性が有る。
セキュリティも高い。
設定ファイルは
main.cf (master.cf)
以前の標準MTA。
現在では設定/セキュリティ/
パフォーマンス面でに劣る。
設定ファイルは
/etc/sendmail.cf
メールのリレー設定は/etc/mail/access
セキュリティ面での問題が殆ど無い。
1ファイル1設定で簡単。
sedmailよりパフォーマンスに優れる。
設定ファイルは
defaultdomain等
Debian系の標準。
設定が簡単。
設定ファイルを分割可能。
エイリアス設定ファイルは/etc/aliases
設定ファイルは
exim4.conf.templete
Common Unix Printing System
・PPD(PostScript Printer Description)ファイルをサポート。
・IPP(Internet Printing Protocol)。
印刷プロトコル。
・lpdと互換性を持っている。
・ネットワークプリンタを自動検出。
・Web画面で設定可能。http://localhost:631 でアクセス可能。
コマンドは以下
lpadmin
プリンタの設定をする
cupsenable
プリンタを使用可能にする
accept
プリンタが印刷ジョブを受付けるようにする
cancel
印刷ジョブを削除する
lpinfo
使用できるデバイスやドライバを一覧表示する
lpstat
プリンタの状態を表示する
/etc/cups/cupsd.conf ファイル
cupsd(CUPSデーモン)の設定ファイル。
接続要求を受けるポート番号やリモート設定や
プリンタの使用を許可するクライアントを記載しておく。
/etc/cups/printers.conf ファイル
プリンタの共有設定を行う
DeviceURI
プリンタの場所を表すURIを指定する。
Shared
Yesになっているとプリンタを共有する。
/etc/printcap ファイル
レガシー印刷システムとの互換性を確保するために
自動的に作られる設定ファイル。
/etc/cups ディレクトリ
CUPS関連のディレクトリとファイルが有る。
/etc/cups/pdd ディレクトリ
プリンタの機種依存情報を格納ディレクトリ。
/var/spool/cups ディレクトリ
プリントスプールが格納されている。
/etc/printcap
印刷システムとの互換性確保のため自動生成される。
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
クラスA
0.0.0.0 ~ 127.255.255.255
クラスB
128.0.0.0 ~ 191.255.255.255
クラスC
192.0.0.0 ~ 223.255.255.255
コネクションレス型。
pingやtraceroteで使用する。
16進数
アドレス長 128ビット
自動的にアドレスを割り当てる。
セキュリティを標準で実装している。
アドレスを省略して記述できる。