linux コマンド メモ
- 個人的によく使うコマンドのメモ
- 増えたら追記します
ファイル
ファイル名検索
// ファイル名検索 $ find . -name "*ファイル名*" -ls // ファイルを探して削除 $find . -name “*ファイル名*” -exec rm -rf {} \; // ファイルを探して削除2 $find . -name “*ファイル名*” | xargs rm // テキスト内検索 $ find ./ -type f -print | xargs grep '検索文字' 2> /dev/null
ファイル名検索(macOS)
$ mdfind -name ファイル名 $ mdfind -onlyin ~/Documents 検索キーワード
ファイル名一括置換
// ファイル名一括置換 for F in 検索文字*; do mv $F ${F/検索文字/置換文字};done // 使用例 for F in *.png; do mv $F ${F/.png/@2x.png};done // 使用例2 $ for F in *.txt; do > mv $F $(basename $F .txt).csv > done
zip圧縮
$ zip -r mydir.zip ./mydir // 圧縮例(パスワード付き) $ zip -e -r test.zip ./test Enter password: # パスを聞かれるので設定する Verify password: # 確認のためもう一度パスを入力 // 解凍例 $ unzip test.zip
データ取得
// wget // htmlファイル取得 $ wget example.com // htmlファイル取得(再帰) $ wget -r example.com
// curl // html表示 $ curl example.com // レスポンスヘッダ $ curl --head httpbin.org/ip $ curl --dump-header - httpbin.org/ip // post $ curl -d 'id=1&name=jack' http://httpbin.org/post // httpsでpost、レスポンスヘッダのみ表示 $ curl --dump-header - -k https://httpbin.org/post -X POST -d "id=1" -d "name=jack”
// scp // 書式 scp コピー元ファイル [ユーザー名@]コピー先ホスト:[コピー先ファイル名] scp [ユーザー名@]コピー元ホスト:コピー元ファイル名 コピー先ファイル名 // ダウンロード(yoursite.comのホームディレクトリ直下のhoge.txtをクライアントのデスクトップへDLする) $ scp manager@yoursite.com:hoge.txt ~/Desktop/ // アップロード(公開鍵をアップロード) scp -p ./id_rsa manager@yoursite.com:~/.ssh/my_rsa
コマンド履歴
// gitの利用履歴を表示の例 $ history | grep git
サーバ情報確認
- pingでネットワーク疎通して、応答がなかったらtracerouteでどこに原因があるか調べる
- ルーティングテーブル(netstat -r)でルーターやネットワーク接続されたコンピュータが持つ、個々のネットワークの宛先への経路の一覧
システム情報
// 自分のシステム情報の確認 $ cat /etc/issue // ディストリビューション名 CentOS release 6.6 (Final) Kernel \r on an \m $ uname -n // ホスト名 localhost.localdomain $ uname -s // OS名 Linux $ uname -v // OSのバージョン #1 SMP Wed Jun 12 03:34:52 UTC 2013 $ uname -a // 全情報 Linux localhost.localdomain 2.6.32-358.11.1.el6.x86_64 #1 SMP Wed Jun 12 03:34:52 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux $ hostname // ホスト名の確認及び設定ができる localhost.localdomain
// サーバソフトとバージョンの確認 $ wget --spider -S 192.168.0.2 Spider mode enabled. Check if remote file exists. --2015-11-01 01:03:16-- http://192.168.0.2/ Connecting to 192.168.0.2:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: nginx/1.6.2 // ←ここで確認 Date: Mon, 31 Oct 2015 16:03:16 GMT Content-Type: text/html Content-Length: 11104 Last-Modified: Sun, 11 Sep 2015 07:20:58 GMT Connection: keep-alive ETag: "57d505da-2b60" Accept-Ranges: bytes Length: 11104 (11K) [text/html] Remote file exists and could contain further links, but recursion is disabled -- not retrieving.
容量
// 指定ディレクトリの使用料の合計が確認出来る # du -hs /* # du -h -x -d 1 / // ディスク・ドライブの使用量 $ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup-lv_root 8938240 1976480 6507720 24% / tmpfs 189764 0 189764 0% /dev/shm /dev/sda1 495844 77949 392295 17% /boot vagrant 233591456 123086244 110505212 53% /vagrant
ポート
// クライアントのポート確認(ポート指定) $ netstat -an | grep 80 tcp 0 0 :::80 :::* LISTEN udp 0 0 0.0.0.0:802 0.0.0.0:* unix 7 [ ] DGRAM 8071 /dev/log $ lsof -i:80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME VBoxHeadl 6812 jack 18u IPv4 0xbf14137b3bb49b2f 0t0 TCP *:http-alt (LISTEN) // 自ポート確認(Listenしているポート) $ netstat -an |grep LISTEN // ファイルが何で使用しているか確認 // 参考:http://qiita.com/yusabana/items/fd03ee4c90a0d1e0a8c6 % lsof /var/log/system.log COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME tail 97529 USERNAME 3r REG 1,2 498299 12085861 /private/var/log/system.log // /var/log/system.logはtailコマンドで開いていることがわかりる
// ルーティングテーブル確認(ルーティングテーブルとは、ルータや端末が保持するパケットの配送先に関する経路情報) $ netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.0.2.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 0 0 0 eth0 default 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
// ホストのポート確認 $ nmap example.com ・・・ PORT STATE SERVICE 21/tcp open ftp 80/tcp open http 443/tcp open https 1119/tcp closed bnetgame ・・・
ドメイン
// ドメイン情報取得 $ whois yahoo.jp ・・・ Domain Information: [ドメイン情報] [Domain Name] YAHOO.JP [登録者名] ヤフー株式会社 ・・・
// DNSサーバーから詳細情報を取得(nslookupは非推奨のためdig) // 183.79.23.196と183.79.227.111の2台が、yahoo.jpのドメインに紐付いている $ dig yahoo.jp ・・・ ;; ANSWER SECTION: yahoo.jp. 222 IN A 183.79.23.196 yahoo.jp. 222 IN A 183.79.227.111 ・・・ // ドメインを管理しているネームサーバー $ dig yahoo.jp ns ・・・ ;; ANSWER SECTION: yahoo.jp. 1127 IN NS ns01.yahoo.co.jp. yahoo.jp. 1127 IN NS ns12.yahoo.co.jp. yahoo.jp. 1127 IN NS ns02.yahoo.co.jp. yahoo.jp. 1127 IN NS ns11.yahoo.co.jp. ・・・ // nslookupの場合 $ nslookup yahoo.jp Server: 10.0.2.3 Address: 10.0.2.3#53 Non-authoritative answer: Name: yahoo.jp Address: 183.79.227.111 Name: yahoo.jp Address: 183.79.23.196
// DNSサーバを使ってホストやドメインに関する情報を表示する $ host example.com example.com has address 93.184.216.119 $ host 93.184.216.119 119.216.184.93.in-addr.arpa domain name pointer example.com.
その他参考
- DNS クライアントを作ってみよう (1)
- 名前解決を行うコマンドは nslookup・host・dig などが有名
- ホスト名を元に、対応する IP アドレスを求めるプログラム
- IP アドレスを元に、対応するホスト名を求めるプログラム
- 名前解決を行うコマンドは nslookup・host・dig などが有名
- httpbin(1): HTTP Request & Response Service
jobsで実行中のジョブを確認
- 「jobs」コマンドで実行中のジョブを確認出来る
- コマンド実行
- 「Ctr+z」で処理一時停止
- 「jobs」コマンドでジョブ番号を確認し、再開または停止を実行する
- フォアグラウンドで再開:「fg ジョブ番号」
- バックグラウンドで再開:「bg ジョブ番号」(1. コマンド実行の時に「&」をつけて実行した場合と同じ)
- 停止:「ps」コマンドでプロセスIDを確認し、「kill プロセスID」で処理を停止(「jobs」コマンドで一覧からジョブが削除されている)
killでプロセスを終了
- 「kill」コマンドでプロセスを終了できる
- シグナルIDは「15」が通常終了、「9」が強制終了
- 「kill 560」も「kill -15 560」も「kill -TERM 560」も「kill -s 15 560」も「kill -SIGTERM 560」も全て同じ結果
killコマンド書式) kill -[シグナル名またはシグナルID] PID kill -s [シグナル名またはシグナルID] PID kill -SIGシグナル名 PID
シグナル名 | シグナルID | 動作 |
---|---|---|
HUP | 1 | ハングアップ(設定の再読み込みがしたいときに使う) |
INT | 2 | キーボードからの割り込み(Ctrl+C) |
KILL | 9 | 強制終了 |
TERM | 15 | 終了(デフォルト) |
CONT | 18 | 停止しているプロセスを再開 |
STOP | 19 | 一時停止 |
ログの調査
- 「tail」コマンドでログファイルを監視できる
- 「grep」コマンド併用で特定のメッセージを調べられる
- 「who」コマンドでログイン中のユーザーが調べられる
- 「w」コマンドでログイン中のユーザー及びシステム情報も調べられる
- 「last」コマンドで最近ログインしたユーザー一覧を表示します
ログファイル | コマンド | 説明 |
---|---|---|
/var/log/messages | less,tail,grep等 | 一般的なシステム関連のメッセージ |
/var/log/secure | less,tail,grep等 | セキュリティに関するメッセージ |
/var/log/wtmp | last | 最近ログインしたユーザー |
/var/run/utmp | who,w | ログイン中のユーザー |
/var/log/lastlog | lastlog | ユーザーごとのログイン情報 |
ログの書式) Nov 9 06:46:59 localhost kernel: starting ① ② ③ ④ ①日時 ②出力元ホスト名 ③メッセージ出力元 ④メッセージ
grepの例) [root@localhost ~]# grep eth0 /var/log/messages Nov 9 05:33:05 localhost kernel: e1000 0000:00:03.0: eth0: (PCI:33MHz:32-bit) 08:00:27:9a:38:87
公開鍵認証(SSH)
公開鍵 | ファイル |
---|---|
自分の公開鍵 | ~/.ssh/id_[rsa1,rsa,dsa等].pub |
SSHクライアント側にある、サーバの公開鍵 | ~/.ssh/known_hosts |
SSHサーバ側にある、クライアントの公開鍵 | ~/.ssh/authorized_keys |
// 公開鍵認証の流れ // 1. 公開鍵と秘密鍵を作成(クライアント側) [hoge@client ~]$ ssh-keygen -t rsa // 対話的に作成しパスフレーズを入力する // 「~/.ssh/id_rsa.pub」と「~/.ssh/id_rsa_key」が作成される // 2. 作成した公開鍵をサーバへscpで転送(クライアント側) [hoge@client ~]$ scp ~/.ssh/id_rsa.pub yourserver.com:publickey // 3. クライアントから送られた公開鍵をクライアント用の公開鍵に追記(サーバ側) [foo@yourserver.com]$ cat publickey >> ~/.ssh/authorized_keys // 4. クライアント用の公開鍵の権限を所有者のみ読み書き出来るよう変更する※1(サーバ側) [foo@yourserver.com]$ chmod 600 ~/.ssh/authorized_keys // 5. サーバへ公開鍵認証でログインできるようになる(クライアント側) [hoge@client ~]$ ssh foo@yourserver.com // 1.で作成したパスフレーズを入力してログイン // 毎回パスフレーズを入力したくなければ「ssh-agent」コマンドを実行すると省略できる // 6. 通常ログインでの接続を禁止する(鍵認証のみログイン可能にする) $ sudo vi /etc/ssh/sshd_config PasswordAuthentication no // 7. sshの再起動 // ubuntの場合 $ sudo /etc/init.d/ssh restart // centOS7の場合 $ sudo systemctl start sshd.service ※1. 所有者以外のユーザに書き込み権限を与えてしまうと、ユーザの把握しない鍵が勝手に登録され、ログインされてしまう可能性が生じる
ファイナンシャルプランナー3級 感想
- ファイナンシャルプランナー3級を勉強したので自分用の備忘録として残します
- 記事の内容
- 感想
- 学習方法
- 学習まとめ(時間切れで途中までしか書けていないです。。。時間が出来たら追記します)
1. 感想
- 資格自体が簡単(車の学科より簡単だと思う)
- 内容が簡単というより、試験が簡単(二択だったり、三択でも何となく分かるような表現が多い)
- 勉強をしていて最初の方は簡単な内容だから楽勝だろって思ってたけど意外と覚えること多い(広く浅く)
- 数字を覚えるのが辛い
- 何パーセント、何月何日、何年間、上限いくら、みたいな
- 内容が実生活に使えそう
- 自分のライフイベントやキャッシュフロー表とか作ってみると将来設計が具体的になって良いかも
- 資格を取ったからといって、FPの真似事をしようとは思わない
- プライベートな情報を取り扱うので、身近な人の相談に乗ると人間関係に影響しそう
- 能力的にも資格を持っているだけで実務能力はないので、ベストな提案が出来るとは思えない(キャッシュフロー表とか作るの面倒だし)
- あくまでも自分がFPに相談した時に円滑に相談できたり、自分がその問題に親身になって考えられる基礎知識として身につけるまで
- 参考書に出てくる相続の章で、億単位の金が出てきて、自分は億万長者ではないから関係ないと思ってしまう
- 試験先がきんざいとFP協会と二つ選択肢があって申込時少し混乱した(実義試験の内容が異なる)
思ったこととか
- うつ病ってことで、傷病手当金をもらって1年半したら会社辞めて失業手当もらったら実質1年9ヶ月分以上は何もしなくてもお金もらえるんじゃないか(有給残ってたらさらにプラス出来るんじゃね、その間は社会保険料って会社が半分負担してくれるのだろうか?)
- 正社員じゃないと、社会保険が痛い(個人事業主や派遣だと厚生年金や健康保険が全額負担だったり(正社員は半額負担)、健康保険を国民健康保険にした場合、出産手当金や傷病手当金が貰えない)
- 育児は、出産育児一時金と出産手当、育児休業給付と色々な手当が多い
- 生命保険文化センターの調査では、老後に必要な最低生活費は夫婦2人で月額223,000円、ゆとりある生活では月間366,000円が必要らしい
- 学生の時とか年金免除されるけど、支払ったほうが制度的には得っぽい
- 保険業は金儲けに走ってはいけないというのは分かるけど、保険会社の人とか金儲けしてそう(美人ねーちゃんががっぽり儲けている話をよく聞くし)
- マイナス金利で預金準備率操作されると、銀行は一定額日銀に預けないといけないからきつくない?(そこは金利免除されるのかな)
- 日本では、土地を所有できるけど結局税金かかってるから借りてるのとお金的には変わらない気がしてきた(払えないと没収されるし)
- 相続税の計算ステップ多すぎだろ、各人に分けて全部合算してまた各人に分けて合算とかやめてくれ、最初の各人の課税価格を計算で終わりで良い気がする
- 各人の課税価格を計算(分割して計算)
- 相続税の総額を計算(分割を合算して、また分割して合算)
- 各人の納付額を計算(合算を分割する)
- →合算して相続税を出さないと、分配の割合で税金が変わって脱税対策ができてしまうからやっているのかも
- 配偶者は、1億6千万円以下は相続税がかからないって強力すぎない?大体の人が相続税かからない気がする(20年一緒にいる縛りがあるから難易度高めだけど)
- 相続する資産が受け取る人単位で2,500万円以下なら相続ではなく、相続時精算課税制度を使って贈与したほうが税金が低い(相続時精算課税制度は2,500万円以下の場合、非課税)
- 厚生年金の保険料は約18%
2. 学習方法
- 学習用資料(分かりやすいし、堅っ苦しくなくて楽しめる読める。他の読んでないので比較出来てないけどオススメ!)
- 学習方法
- 1回参考書を軽く読む(全体の流れを掴む)
- 2回目は少し細かく読む、章ごとに問題集を問いて理解を深める(問題集はネットから無料で見れるけど、解説とか付いてる分問題集は買った方が労力的にお得)
- 過去問をひたすら解く(細かい部分(数字関係)の記憶は過去問で補う)
実義用
- 6つの係数(1.FP)
- 利回り(3.金融、債権)
- PERとPBR(3.金融、株)
- 建ぺい率と容積率(5.不動産)
- 相続分(6.相続)
試験結果
- 2016年5月22日に試験を受ける(日本フィナンシャル・プランナーズ協会の方が簡単だと聞いたのでFP協会で受ける)
- 自己採点だと、学科は7割5分、実義は9割正解だったので合格だと思う→合格してました♪
- 勉強時間は、30時間ちょっと(時間割は、1ヶ月前に本をざっくり読んで(5〜10時間位)、2週間位読むのをやめて、ラスト2週間で熟読(10〜20時間)、前日に過去問10時間位)
3. 学習まとめ
1. ライフプランニングと資金計画
1. FPと論理
- ファイナンシャルプランナー(FP)とは
- ライフプランを実現すべく資金計画をたてることをファイナンシャル・プランニングといい、それを行う専門家をファイナンシャル・プランナー(FP)という
- ライフプランニングとは、一生独身でいたい、子供は持たない、子供を私立の学校に通わせたい、退職後は海外で生活したいなど、個人の人生における価値観や生き方をライフデザインといい、ライフデザインに応じて生活設計(ライフプラン)をたてること
- FPの職業的原則
- 顧客の利益優先
- 秘密の保持(顧客の収入、資産・負債状況、家庭事情、プライベートな情報を扱う)
- FPと関連法規
2. ライフプランニングの手法
- ライフイベントと3大必要資金
- ライフイベントとは、結婚、子供の教育、住宅の取得、退職など人の一生における出来事のこと
- 3大必要資金は次の3つ
- 教育資金
- 住宅資金
- 老後資金
- ライフプランニングの手法
- 手順
- 顧客の希望や目的、現状を聞く
- 1で収集した情報をもとに問題点の分析
- 2で明らかになった問題点を元に対策とプランを立案
- プランの実行を支援
- ツール
- ライフイベント表:家族の将来のライフイベントと必要な資金額を時系列にまとめた表
- キャッシュフロー表:ライフイベント表をもとに将来の収支状況と貯蓄残高の予想をまとめた表
- 個人バランスシート:一定時点における資産と負債のバランスをみるための表(簿記のBSと同じ感じ)
- 手順
- 資金計画を立てるさいの6つの係数
係数 | 内容 |
---|---|
終価係数 | 複利で運営した場合の一定期間後の金額を求める係数 (100万円を年利2%で運用した場合の5年後の金額はいくら?) |
現価係数 | 一定期間後に達するために必要な元金を求める係数 (年利2%で5年後に100万円を用意するためには元金いくら必要?) |
年金終価係数 | 毎年一定額を積み立てた場合の一定期間後の元利合計を求める係数 (年利2%、毎年20万円を5年間積立場合の5年後の金額はいくら?) |
減債基金件数 | 一定期間後に一定金額用意するための毎年の積立額を計算するための係数 (年利2%、5年後に100万用意するには毎年いくら積み立てる必要があるか?) |
資本回収係数 | 現在の一定金額を一定期間で取り崩した場合の毎年の受取額を計算するための係数 (100万円を年利2%で運用しながら5年かで取り崩した場合の毎年の受取額はいくら?) |
年金原価係数 | 将来の一定期間にわたって一定額を受け取るために必要な元本を計算するための係数 (5年間にわたって20万円ずつ受け取る場合、年利が2%のとき必要な元本はいくらか?) |
3. ライフプラン策定上の資金計画
- 教育資金プランニング
- 住宅取得プランニング
- 住宅購入時は物件価格の約三割(頭金2割+登記費用1割)を自己資金で準備する
- 財形住宅貯蓄、住宅ローン金利、住宅ローンの返済方法、住宅ローンの種類、繰り上げ返済、借換え
- 老後資金プランニング
- 老後生活費の計算(退職金、年金、貯蓄をもとに計算)
- 生命保険文化センターの調査では、最低生活費は夫婦2人で月額223,000円、ゆとりある生活では月間366,000円
4. 社会保険
- 社会保険の種類
- 公的医療保険
- 公的医療保険(退職者向)
- 「健康保険の任意継続」または「国民健康保険に加入」または「家族の扶養」
- 公的介護保険
- 介護が必要な場合、程度に応じて給付される
- 被保険者は、65才以上が第一被保険者
- 被保険者は、40~64才が第二被保険者
- 労働者被害補償保険(労災保険)
- 業務上や通勤途上における労働者の病気、ケガ、障害、死亡などに対して給付される
- 保険料は、全額事業主が負担
- 雇用保険
- 労働者が失業した場合の給付、再就職を援助する
- 保険料は、事業主と労働者が負担(負担する割合は業種で異なる)
- 支給額は、45~80%
- 自己都合の場合
- 支給期間は、勤務期間が10年未満だと90日、10〜19年だと120日、20年以上だと150日
- 受給要件は、被保険者期間が2年以内に通算1年以上
- 待機期間は、7日(待機期間)+3ヶ月
- 会社都合の場合は、だいたい支給期間は倍くらい、受給要件は半分、待機期間は7日となる
- 他
- 教育訓練給付:一般教育と専門実施教育があり、一部(20~40%相当の)費用を給付してくれる
- 雇用継続給付金
- 高年齢雇用継続給付:60~65才までが受けられる、賃金が60才の時より75%未満の場合、賃金の最大15%が支給される
- 育児休業給付:1才2ヶ月になるまで、休業前の賃金の50%が支給される(1才6ヶ月未満の子が対象)
- 介護休業給付:休業前の賃金の40%が支給される
5. 公的年金
- 公的年金の階層
- 対象
- 保険料
- 給付
6. 公的年金の給付
- 公的年金の給付には、老齢給付、障害基礎給付、遺族給付がある(国民年金、厚生年金、共済年金の給付内訳)
- 老齢給付(老齢基礎年金)
- 受給要件:受給資格期間(保険料納付期間+保険料免除期間+合算対象期間)が25年位以上
- 受給開始日:65才。早く(繰り上げ受給)したり遅く(繰り下げ受給)したりもできる(早いと給付額が低く、遅いと給付額が高く給付される)
- 給付額:780,100円/年(免除期間などある場合もう少し低くなる)
- 老齢給付(老齢厚生年金)
- 受給要件:厚生年金保険の被保険者期間が1ヶ月以上あること
- 受給開始日:65才。(平成16年生まれ以前は60才から給付されう生まれた年によって支給開始日が異なる)(繰り上げ受給と繰り下げ受給もある)
- 給付額:収めた年金によって異なる(定額部分+報酬披瀝部分+加給年金)
- 加給年金とは、年金の家族手当のようなもの配偶者や子がある場合支給される
- 障害給付
- 遺族給付
- 老齢給付(老齢基礎年金)
- その他
- 受給資格を満たしているが受け取らずに死亡した場合、寡婦年金や遺族厚生年金などで遺族が受け取れる
7. 企業年金
- 企業年金とは、公的年金を保管することを目的とし、企業が任意に設けている制度
- 確定給付型と確定拠出型がある
- 確定給付型:将来支払われる年金額が決まっているタイプ
- 確定拠出型:一定の掛け金を加入者が拠出・運用し運用結果で将来の年金額が決まるタイプ
- 自営業のための年金制度
8. 年金と税金
- 支払い時と受け取り時で税金の取り扱いが違う
- 支払い時:全額控除
- 受取り時:雑経費して課税される(公的年金等控除が適用され少なく計算される)
2. リスクマネジメント
- 保険の基本
- 私的保険には、生命保険、障害保険、第三分野の保険がある
- 生命保険
- 障害保険
- 第三分野の保険
1.保険の基本
- リスクマネジメントとは
- 日常生活の自己や病気などのリスクが生じた時に、そのダメージを会費・軽減するよう対策を立てること
- リスクには次のようなものがある
- 人に関するリスク:死亡、長生き、病気・ケガ
- 物に関するリスク:住まい、自動車、動産(現金、商品など)
- 損害賠償に関するリスク:他人の物、他人自体(ケガ、死亡させてしまう)
- 保険の種類
- 保険法
- 保険に関するルールを定めた法律、原則として契約者に不利な内容は無効とする
- 対象:生命保険、損害保険、第三分野の保険
- 規定:契約統計辻の告知に関する規定、保険金の支払い時期に関する規定など
- 時効:保険給付請求権は3年、保険料請求権は1年
- 保険業法
- 保険の原則
- 大数の法則:少数では法則が見いだせないが、大数だと一定の法則があること(サイコロを1000回振るとほぼ均等になる)
- 収支相等の法則:保険契約者が払う保険料と保険会社が支払う保険料(および経費)が等しくなるように算出
- 契約者などの保護
- 保険契約者保護機構は、保険会社が破綻した場合に契約者を保護するために、設立された法人
- 保険会社は加入義務がある(少額短期保険業者や共済は加入義務無し)
- クーリングオフ
- 手続き:8日以内に申込の撤回または解除を書面で行う
- 対象外:保険会社に出向いて契約した場合、保険期間が1年以内の場合、契約にあたって医師の検査を受けた場合
保険法の適用 | 保険業法の適用 | 保険契約者保護機構 の加入義務 |
|
---|---|---|---|
保険会社等 | ◯ | ◯ | ◯ |
少額短期保険業者 | ◯ | ◯ | ☓ |
共済 | ◯ | ☓ | ☓ |
2. 生命保険
- 生命保険の種類
- 死亡保険
- 生存保険
- 生死混合保険
- 保険料
- 保険料は、3つの予定基礎率で算定
- 予定死亡率:統計にもとづいて、性別・年齢ごとに算出した死亡率
- 予定利率:保険会社があらかじめ見込んでいる運用利回り
- 予定事業費率:保険会社が運営するための必要な費用
- 保険料の構成
- 純保険料と付加保険料から構成される
- 純保険料:保管会社が支払う保険金にあてる部分(死亡保険料、生存保険料)
- 付加保険料:保険会社が事業を維持するための費用
- 純保険料と付加保険料から構成される
- 保険料は、3つの予定基礎率で算定
- 配当金
- 保険には、配当金がある保険(有配当保険)とない保険(無配当保険)がある(一般的に無配当保険の方が保険料が安い)
- 配当金は、剰余金(保険料から実際に掛かた費用を引いた額)を財源として、契約者に配当する
- 3つの予定基礎率は厳しく見積もっているのでそれぞれで利益が出ることが多い
- 契約
- 告知義務:契約者は保険会社の質問に答えなければならない
- 契約の責任開始日:申込、告知、初回保険料振り込みの全てが揃った日
- 保険料の払込み
- 支払い方法:一時払い、月払い、半年払い、年払いなど
- 未払いの猶予がある(猶予期間を過ぎると失効し、失効しても一定期間内であれば復活できる)
- 生命保険のタイプ
- 年金保険
- 特約:病気やケガの保証として生命保険の特約として付加できる(単独で契約はできない)
- 契約を維持させるための制度・方法
- 自動振替貸付制度:解約返戻金を限度として、建て替えてくれる
- 契約者貸付制度:解約返戻金を限度として、貸付を受けられる
- 払済保険:保険料の払込を中止し、解約返戻金を元に安い保険料に切り替え再契約
- 延長保険:保険料の払込を中止し、解約返戻金を元に保険期間を短くして再契約
- 生命保険と税
契約者 (保険料払っている人) |
被保険者 (死んだ人) |
受取人 (保険金貰う人) |
税金 |
---|---|---|---|
A | A | B | 相続税 |
A | B | A | 所得税、住民税 |
A | B | C | 贈与税 |
- 法人契約の保険
3. 障害保険
- 障害保険の主な種類
- 損害保険の原則
- 生命保険と同様の大数の法則、収支相等の法則に加えて2つの原則がある
- 給付・反対給付均等の原則(レクシスの原則):それぞれの危険に応じた保険料を負担しなけばならないという原則
- 利得禁止の原則:保険金の受取によって儲けを得ることを禁止
- 損害保険の構造
- 生命保険と同様(純保険料と付加保険料)
- 火災保険
- 地震保険
- 自動車保険
- 自賠責保険
- 全ての自動車の所有者と運転者が必ず加入しなければならない保険
- 補償対象:対人賠償事故のみ
- 限度額:死亡で最高3,000万円、障害で最高120万円(後遺障害の場合最高4,000万円)
- 任意加入の保険
- 対人賠償保険、対物賠償保険、搭乗者障害保険、自損事故保険、無保険車障害保険、車両保険、人身傷害補償保険
- 自賠責保険
- 傷害保険
- 日常生活におけるさまざまなケガに対して保険金が支払われる
- 普通傷害保険
- 交通事故障害保険
- 国内旅行障害保険
- 海外旅行障害保険
- 日常生活におけるさまざまなケガに対して保険金が支払われる
- 賠償責任保険
- 偶然の事故により、損害賠償責任を負ったときに補填される保険
- 個人賠責任保険:日常生活における事故によって他人にケガをさせたり他人の物を壊した時
- PL保険(生産物賠償責任保険):製造、販売した製品の欠陥により損害を与えた時(レストランの食中毒もOK)
- 偶然の事故により、損害賠償責任を負ったときに補填される保険
- 損害保険と税金
- 支払う時:地震保険料は所得から控除出来る
- 受け取る時:原則として非課税(死亡保険金、満期返戻金、年金として受け取る場合は生命保険と同様の扱い)
4. 第三分野の保険
- 第三分野の保険とは
- 生命保険と損害保険のいずれかのカテゴリーに属さない種類の保険で、 病気、ケガ、介護などに備える保険
- 第三分野の保険の主な種類
3. 金融資産運用
1. 金融・経済の基本
- 景気の指標
- 景気の影響
- 金融の基本:お金の貸し借りをしている場
- 金融政策:物価の安定を目的として日銀が行う政策
- 財政政策:不景気の時に財政赤字(集めた税金より沢山お金を使う)にして好況期には財政黒字にする
2. セーフティネットと関連法規
- 貯金保険制度
- 投資者保護基金
- 証券会社の破綻時に投資家が損害を被った場合、投資保護基金によって1人あたり最大1,000万円まで保証される
- 資産管理には分別管理義務がある
- 分別管理義務:証券会社は投資家から預かった金融資産と証券会社自身の資産は分けて管理する
- 保護関連の法律
3. 貯蓄型金融商品
4. 債権
- 債権の基本
- 債権の利回り
- 債権の利回りとは、当初の投資額に対する利息と償還差益の割合のこと
- 利回りには次のような種類がある
- 直接利回り:毎年の利息収入の割合
- 応募者利回り:債券発行時に購入し、償還まで所有した場合の利回り
- 最終利回り:既に発行されている債権を時価で購入し、償還まで所有した場合の利回り
- 所有期間利回り:償還前に売却した場合の利回り
- 債権のリスク
- 債権の税金
利付債 | 割引債 | |
---|---|---|
利息 | 20.315の源泉分離課税 | なし |
償還差益 | 総合課税(雑所得) | 発行時に18.378%の源泉分離課税(雑所得) |
売却益 | 非課税 | 非課税 |
5. 株式
- 株式の基本
- 株式の取引
- 株式の指標
- 株式の税金
- 配当金と売買益(譲渡益)に対して税金がかかる
- 配当金:20.315%
- 売買益(譲渡益):20.315%
- NISA(少額投資非課税制度)を利用すると税金がかからない
- 年間100万円までの投資にかかる売買益、配当金が非課税
- 非課税の期間は5年間
- 配当金と売買益(譲渡益)に対して税金がかかる
6. 投資信託
- 投資信託の基本
- 投資信託の仕組み
- 会社型と契約型がある(日本は、殆どが契約型なので契約型のみ説明)
- 契約型:受益者(投資家)→販売会社→投資委託会社→信託銀行等→証券市場
- 販売会社(証券会社など):ファンドの募集、販売など
- 投資委託会社:目論見書、運用報告書の作成、運用の指図など
- 信託銀行:信託財産の管理など
- 契約型:受益者(投資家)→販売会社→投資委託会社→信託銀行等→証券市場
- 投資信託のコスト
- 購入時手数料:購入手数料費
- 運用管理費用(信託報酬):運用管理費
- 信託財産留保額:中途換金時にかかるコスト
- 中途換金方法には「解約請求」と「買取請求」がある
- 会社型と契約型がある(日本は、殆どが契約型なので契約型のみ説明)
- 投資信託の分類
- 上場している投資信託
- トータルリターン通知制度
- 年1回以上トータルリターンを通知することが義務付けられている
- 投資信託の税金
- 利子所得として、20.315%課税される(収益分配金、解約差益、償還差益)
7. その他(外貨建て金融商品、ポートフォリオ、デリバティブ取引)
- 外貨建て金融商品の基本
- ポートフォリオの基本
- ポートフォリオとは、所有する資産の組み合わせのこと
- 用語
- ポートフォリオ運用:性格の異なる複数の銘柄に投資することによって安定した運用を行うこと
- アセットアロケーション:国内株式、国内債券、海外債権、不動産など複数異なる資産(アセット)に配分(アロケーション)して運用すること
- 相関係数:相関関係(ポートフォリオのリスクを低減させるために出来るだけ異なる動きをする資産や銘柄を組み合わせる)を-1から+1まで表したもの(-1に近づくほどリスク低減効果が期待できる)
- デリバディブ取引の基本
4. タックスプランニング
1. 所得税の基本
直接税 | 間接税 | |
---|---|---|
国税 | 所得税、法人税、相続税、贈与税 | 消費税、印紙税、酒税 |
地方税 | 住民税、事業税、固定資産税 | 地方消費税 |
2. 各所得の計算
- 所得を10種類に分け、それぞれ計算
- 利子所得:総合課税(源泉分離課税(20.315%))
- 配当所得:総合課税(確定申告によって差額の税額を精算(上場株については源泉徴収20.315%、上場以外は20.42%))
- 不動産所得:総合課税
- 事業所得:総合課税
- 給与所得:総合課税(給与所得控除額は最低65万円、最高245万円)
- 退職所得:分離課税(申告しなかった場合は所得の20.42%)
- 山林所得:分離課税(特別控除は最高50万円)
- 譲渡所得:分離課税(特別控除は最高50万円)(土地・建物:分離短期(長期)譲渡所得、株式:譲渡所得、それ以外:総合短期(長期)譲渡所得)
- 一時所得:総合課税(上記以外の所得の家で一時的なものを指す、懸賞、競馬、生命保険の満期保険金など、特別控除は最高50万円)
- . 雑所得:総合課税(上記の全てに当てはまらない所得、公的年金や原稿料など)
- 総合課税とは、ほかの所得と合算して税額を計算する方法で確定申告が必要
- 分離課税とは、ほかの所得と合算せずに税額を計算する方法
3. 課税標準の計算
4. 所得控除
5. 税額の計算と税額控除
6. 所得税の申告と納付
7. 個人住民税、個人事業税
5. 不動産
- 不動産の基本
- 不動産の取引
- 不動産に関する法令
- 不動産の税金
- 不動産の有効活用
1. 不動産の基本
- 土地の価格
- 鑑定評価の方法
- 「土地の価格」にて取引価格が決定されるが、現実とかけ離れている場合もあるため専門家が判定する
- 次のような評価方法がある
- 取引事例比較法:似たような取引を参考にする
- 原価法:再調達原価を求め、減価修正を加える
- 収益還元法:将来見込める純収益と最終的な売買価格から求める
- 純収益の価格は、「直接還元法」や「DCF法」を使って求める
- 不動産の登記
- 所有地、所有者などの権利が不動産登記記録に記載され、公示されている(誰でも閲覧可)
- 構成は、表題部と権利部に別れている(甲は所有者、乙は所有者以外)
2. 不動産の取引
3. 不動産に関する法令
4. 不動産の税金
- 不動産にかかる税金
5. 不動産の有効活用
6. 相続・事業承継
- 相続の基本
- 相続税
- 贈与税
- 相続の評価
1. 相続の基本
- 相続とは、死亡した人(被相続人)の財産(資産及び負債)を残された人(相続人)が継承することをいう
- 配偶者は常に相続人
- 血族相続人は上旬位がない場合に限り、下順位が相続人となる(子がいない場合、父母が相続人になれる)
- 配偶者と血族相続人は同順位で相続人となる(配偶者と子が相続人)
- 子の種類(子の種類に関係なく同順位で相続人となる)
- 実子
- 養子
- 非嫡出子(浮気相手の子供のこと)
- 胎児
- 相続人になれない人
- 相続開始以前にすでに死亡している人
- 失格事由に該当する人(相続人を殺害したり、詐欺脅迫によって遺言書を書かせたり)
- 相続人から廃除された人(虐待されていた場合、廃除できる)
- 相続を放棄した人
2. 相続税
3. 贈与税
4. 相続の評価
102-6.セキュリティ
- セキュリティ管理業務を実施する
- パスワードは、「passwd,usermod,chage」コマンドで変更できたり有効期限を設定できる
- ポートは、次のようなコマンドで確認出来る
- netstate:自分の開いているポートの確認ができる
- lsof:自分の開いているポート及びファイルのプロセス情報が確認できる
- nmap:対象ホストの開いているポートを確認できる
- 実行するユーザやリソースの制限は次の通り
- su:一時的に別のユーザーになれる
- sudo:特定の管理コマンドを実行できる
- ulimit:ユーザーが利用できるリソースを制限できる
- ホストのセキュリティ設定
- 「スーパーサーバ」とは、複数のサービスを1個のデーモンが代表して監視し、必要に応じて個別のデーモンを呼び出す仕組み
- 代表的なスーパーサーバには、「inetd」「xinetd」がある
- inetdは「/etc/inetd.conf」で設定変更できる
- xinetdは「/etc/xinetd.conf」と「/etc/xinetd.d」以下の設定ファイルでネットワークのアクセス制御が出来る
- 代表的なスーパーサーバには、「inetd」「xinetd」がある
- 「TCP Wrapper」で、ネットワークのアクセス制御が出来る
- 「tcpdデーモン」は、「telnetd」「ftpd」に代わってサービス要求を監視、各サーバに処理を引き渡す
- 「スーパーサーバ」とは、複数のサービスを1個のデーモンが代表して監視し、必要に応じて個別のデーモンを呼び出す仕組み
- 暗号化によるデータの保護
- 「SSH」(Secure Shell)とは、暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコルのこと
- 「ホスト認証」とは、ユーザー名とパスワード認証の前にクライアントとサーバーの正当性が正しいか公開鍵を比較する認証のこと
- 「scp」コマンドは、SSHの仕組みを使い、ホスト間で安全なファイルのコピーが出来る
- 「gpg」コマンドで「鍵の作成」「公開鍵のエクスポート、インポート」「ファイルの暗号化、復号化」が出来る
- 鍵の作成:gpg –gen-key
- 公開鍵のエクスポート:gpg -o pubkey -a –export self@example.com
- 公開鍵のインポート:gpg –import pubkey
- 暗号化:gpg -e -a -r you@example.com important.txt
- 復号化:gpg important.txt.asc
1. セキュリティ管理業務を実施する
- 運用時にセキュリティの観点から次の3点に気をつける事が重要
- パスワード管理
- システムポート情報、プロセス情報
- システムリソースの使用制限
1-1. パスワード管理
- ユーザーパスワードは、定期的に変更したり有効期限を設定することが大切であり以下のコマンドが有効
コマンド | 説明 |
---|---|
passwd | パスワード変更(rootは全アカウント、一般ユーザーは自分のパスワード) |
usermod | 指定したユーザーのパスワードのロックが可能。ログインシェルや所属グループも変更できる。 |
chage | ユーザーパスワードの有効期限の情報を変更可。 |
chage
- オプションをつけないで実行すると対話モードになる
- 設定内容は「/etc/shadow」ファイルに反映される
chage [オプション] [ユーザー名]
オプション | 説明 |
---|---|
-l(小文字のエル) | パスワードもしくはアカウントの有効期限を表示 |
-m 最低間隔日数 | パスワード変更間隔の最低日数を設定 |
-M 最大有効期限日数 | パスワードの最大有効期限日数を設定 |
-d 最終更新日 | パスワードの最終更新日を設定 |
-W 有効期限切れ日数 | パスワードの有効期限切れ警告が何日前から始まるか設定 |
-I 有効期限切れ後の日数(大文字のアイ) | パスワードの有効期限切れ後にアカウントロックされるまでの日数を設定 |
-E アカウントを無効化する日付 | ユーザーアカウントが無効になる日付を設定(-Mの場合は、日数を指定) |
ログインの禁止
- 「/etc/nologin」ファイルで一般ユーザーのログインを禁止に出来る
- 設定内容は「/etc/shadow」ファイルに反映される
- 対話的ログインを禁止するいには、「/bin/false」と「/sbin/nologin」を作る
1-2. システムポート情報、プロセス情報
- 運用しているLinuxサーバにおいて、不要なポートが開いていないかどうかを確認することは大切
- 「netstate」コマンドで、どのポートが開いているか確認出来る(外部からの攻撃を防ぐために不要なポートは閉じる事が大切)
- 「lsof」コマンドで、ポート番号だけでなくファイルを開いているプロセス情報も同時に確認できる
- 「nmap」コマンドで、対象ホストの開いているポートを確認できる
netstat
netstat [オプション]
オプション | 説明 |
---|---|
-a | すべてのソケット情報を表示 |
-c | 状況を1秒毎にリアルタイムで表示 |
-i | ネットワークインターフェースの状態を表示 |
-n | アドレスやポートを数値で表示 |
-p | PIDとプロセス名を表示 |
-r | ルーティングテーブルを表示 |
-t | TCPポートのみ表示 |
-u | UDPポートのみ表示 |
// TCPポートとUDPポートのすべてのソケット情報を表示 [vagrant@localhost ~]$ netstat -atun Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:5678 0.0.0.0:* ESTABLISHED ・・・ [vagrant@localhost ~]$
lsof
オプション | 説明 |
---|---|
-i ポート番号 | 指定したポート番号のIP通信のみを表示。指定しない場合、全てが対象となり表示 |
-n | IPアドレスからホスト名への変換をしない |
-p プロセスID | 指定したPIDのプロセスのみを表示 |
-P | ポート番号からサービス名への変換をしない |
// 8080ポートのみ表示 [test@remotehost ~]$lsof -i:8080 -n COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME VBoxHeadl 1544 test 18u IPv4 0t0 TCP *:http-alt (LISTEN) [test@remotehost ~]$
nmap
nmap 対象ホスト
[vagrant@localhost ~]$ nmap example.com Starting Nmap 5.51 ( http://nmap.org ) at 2015-09-26 16:18 JST Nmap scan report for example.com (93.184.216.34) Host is up (0.18s latency). Not shown: 998 filtered ports PORT STATE SERVICE 80/tcp open http 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 13.67 seconds [vagrant@localhost ~]$
1-3. システムリソースの使用制限
- ユーザーの切替(su)やスーパユーザで実行(sudo)、システムリソースの制限(ulimit)でセキュリティを強化する
su
- 「su」コマンドで一時的に別のユーザーになれる
- 「-」を付けて実行すると直接ログインした時と同じように初期化される
- 「-」をなしで実行すると現在の環境をそのままでユーザーが切り替えられる
- 「ユーザー名」を省略するとrootユーザーに変更される
su [- [ユーザー名]]
sudo
- 「sudo」コマンドで、特定の管理コマンドも実行できる
- 「visudo」コマンドでsudoの設定ができる(「/etc/sudoers」ファイルが開かれる)
- 「sudo -l」で実行が許可されているコマンドが調べられる
visudoの例) # studentユーザーのみ、shutdownコマンドが実行できるように設定する例 student ALL=(ALL) /sbin/shutdown ① ② ③ ④ ⑤ ①ユーザー名 ②ホスト名 ③(実行ユーザー名) ④[NOPASSWD:] ⑤コマンド
ulimit
- 「ulimit」コマンドで、ユーザーが利用できるリソースを制限できる
ulimit [オプション [リミット]]
オプション | 説明 |
---|---|
-a | 制限の設定値を全て表示 |
-c [サイズ] | 生成されるコアファイルのサイズを指定 |
-f サイズ | シェルが生成できるファイルの最大サイズをブロック単位で指定 |
-n 数 | 同時に開くことのできるファイルの最大数 |
-u プロセス数 | 1人のユーザーが利用できる最大プロセス数を指定 |
-v サイズ | シェルが利用できる最大仮想メモリサイズを指定 |
[vagrant@localhost ~]$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 2818 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 1024 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
SUIDの設定
- プログラムに「SUID」を設定すると、一般ユーザーで実行してもrootユーザーで実行したことになる
- 「find / -prem -u+s -ls」コマンドでSUIDが設定されているファイルを検索できる
- セキュリティの安全を考えると「SUID」の設定は最低限に留めるべき
- 詳しくは、101-4. デバイス、Linuxファイルシステム階層標準参照
2. ホストのセキュリティ設定
- 外部からの侵入に対するセキュリティを高める
- 不要なサービスのインストール・起動はしない
- ホストレベルの適切なアクセス制御を行う
- パケットフィルタリングによりアクセスを制御する
- セキュリティ情報の確認を頻繁に行い、必要があれば素早く対策を実施する
- 内部からの侵入に対するセキュリティを高める
- 適切なユーザーパスワード管理を行う
- スーパーユーザー権限で動作するプログラムを最小にする
スーパーサーバの設定と管理
- 「スーパーサーバ」とは、複数のサービスを1個のデーモンが代表して監視し、必要に応じて個別のデーモンを呼び出す仕組み
- 「デーモン」とは、メモリ上に常駐して様々なサービスを提供するプロセス(典型的なデーモンは名前の最後尾に “d” が付く。)
- デーモンが多いと消費するリソースも多くなるため、スーパーサーバが代表して監視する
- 代表的なスーパーサーバには、「inetd」「xinetd」がある(大抵のディストリビューションはxinetdが採用されている)
inetdの設定
- 「/etc/inetd.conf」でinetdの設定が変更できる
/etc/inetd.confの一部内容) ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd ① ② ③ ④ ⑤ ⑥ ⑦ ①service_name:/etc/servidesで定義されているサービス名 ②socket_type:ソケットタイプ(TCPはstream、UDPはdgram) ③protocol:プロトコル(ほとんどはtcpかudp) ④flag:サービス要求処理方法(wait(1個ずつ処理)かnowait(同時に処理)) ⑤user:サービス実行ユーザー名 ⑥program:サーバプログラム(デーモン)へのフルパス ⑦args:サーバプログラムに渡す引数
xinetdの設定
- 「/etc/xinetd.conf」と「/etc/xinetd.d」以下の設定ファイルでネットワークのアクセス制御が出来る
- 「/etc/xinetd.conf」:全体的な設定
- 「/etc/xinetd.d」:サービスごとの設定
- 設定変更後はxinetdの再起動が必要(#/etc/init.d/xinetd restart)
「etc/xinetd.conf」の設定例) defaults { instances = 60 # 各サービスの最大デーモン数 log_type = SYSLOG authpriv # ログ出力先 log_on_success = HOST PID # 接続を許可した時にログに記録する内容 log_on_failure = HOST # 接続を拒否した時にログに記録する内容 cps = 25 30 # 1秒間の最大コネクション数、限度時のサービス休止秒数 } includedir /etc/xinetd.d # サービスごとの設定ファイルのディレクトリ
「/etc/xometd.d/telnet」の設定例) service telnet # サービス名 { disable = no # サービスの有効/無効 socket_type = stream # 通信タイプ wait = no # ウェイトタイム user = root # サービス実行ユーザー名 server = /usr/sbin/in.telnetd # サーバプログラムへのフルパス log_on_failure += USERID # 接続を拒否した時にログに記録する内容 }
TCP Wrapperによるアクセス制御
- 「TCP Wrapper」で、ネットワークのアクセス制御が出来る
- 「/var/log/secure」ファイルにログが出力される
TCP Wrapperによるアクセス制御の流れ) クラアントからアクセス ↓ hosts.allowに入っている ↓yes |no 【アクセス許可】 ↓ hosts.denyに入っている ↓yes ↓no 【アクセス拒否】 【 アクセス許可】 (hosts.allowに入っていればhosts.denyは参照せずにアクセスを許可する)
3. 暗号化によるデータの保護
- 「SSH」(Secure Shell)とは、暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコルのこと
- Linuxでは、OpenBSDグループによるSSHの実装である「OpenSSH」が一般的に利用されている
OpenSSHのインストールと設定
- OpenSSHは、ディストリビューションでインストールするパッケージが異なる
- Devianの場合
- openssh-clientパッケージ
- openssh-serverパッケージ
- Red Hatの場合
- opensshパッケージ
- openssh-clientパッケージ
- openssh-serverパッケージ
- Devianの場合
- Openはインストールするとホストの公開鍵と秘密鍵が作成される
- 「/etc/ssh/sshd_config」ファイルにsshの設定が記述されている
- 「ssh」コマンドでログイン出来る
ssh [[ログインユーザー名@]ホスト]
ホストの公開鍵と秘密鍵
ファイル名 | 説明 |
---|---|
ssh_host_key | 秘密鍵(バージョン1用) |
ssh_host_dsa_key | 秘密鍵(バージョン2、DSA用) |
ssh_host_rsa_key | 秘密鍵(バージョン2、RSA用) |
ssh_host_key.pub | 公開鍵(バージョン1用) |
ssh_host_dsa_key.pub | 公開鍵(バージョン2、DSA用) |
ssh_host_rsa_key.pub | 公開鍵(バージョン2、RSA用) |
ホスト認証
- 「ホスト認証」とは、ユーザー名とパスワード認証の前にクライアントとサーバーの正当性が正しいか公開鍵を比較する認証のこと
- クライアントは、初回接続時は公開鍵をもっていないためサーバーから公開鍵を取得する
- 「~/.ssh/known_hosts」ファイルに公開鍵は登録される
公開鍵認証
- 「公開鍵認証」では、公開鍵と秘密鍵のペアを使って認証する
- 「ssh-keygen」コマンドで公開鍵と秘密鍵の鍵ペアを作成できる
- クライアントで作成した公開鍵をサーバーの「~/.ssh/authorized_keys」ファイルに追記する
ssh-keygen [オプション]
オプション | 説明 |
---|---|
-t タイプ | 暗号化するタイプを指定(rsa1,rsa,dsa) |
-p | パスフレーズを変更 |
-f ファイル名 | 鍵ファイルを指定 |
-R ホスト名 | 指定されたホストの鍵をknow_hostsファイルから削除 |
公開鍵 | ファイル |
---|---|
自分の公開鍵 | ~/.ssh/id_[rsa1,rsa,dsa等].pub |
SSHクライアント側にある、サーバの公開鍵 | ~/.ssh/known_hosts |
SSHサーバ側にある、クライアントの公開鍵 | ~/.ssh/authorized_keys |
// 公開鍵認証の流れ // 1. 公開鍵と秘密鍵の鍵ペアを作成(クライアント側) [hoge@client ~]$ ssh-keygen -t rsa // 対話的に作成しパスフレーズを入力する // 「~/.ssh/id_rsa.pub」と「~/.ssh/id_rsa_key」が作成される // 2. 作成した公開鍵をサーバへscpで転送(クライアント側) [hoge@client ~]$ scp ~/.ssh/id_rsa.pub yourserver.com:publickey // 3. クライアントから送られた公開鍵をクライアント用の公開鍵に追記(サーバ側) [foo@yourserver.com]$ cat publickey >> ~/.ssh/authorized_keys // 4. クライアント用の公開鍵の権限を所有者のみ読み書き出来るよう変更する※1(サーバ側) [foo@yourserver.com]$ chmod 600 ~/.ssh/authorized_keys // 5. サーバへ公開鍵認証でログインできるようになる(クライアント側) [hoge@client ~]$ ssh foo@yourserver.com // 1.で作成したパスフレーズを入力してログイン // 毎回パスフレーズを入力したくなければ「ssh-agent」コマンドを実行すると省略できる // 6. 通常ログインでの接続を禁止する(鍵認証のみログイン可能にする) $ sudo vi /etc/ssh/sshd_config PasswordAuthentication no // 7. sshの再起動 // ubuntの場合 $ sudo /etc/init.d/ssh restart // centOS7の場合 $ sudo systemctl start sshd.service ※1. 所有者以外のユーザに書き込み権限を与えてしまうと、ユーザの把握しない鍵が勝手に登録され、ログインされてしまう可能性が生じる
SSHの活用
scpコマンドによるリモートファイルコピー
scp コピー元ファイル [ユーザー名@]コピー先ホスト:[コピー先ファイル名]
scp [ユーザー名@]コピー元ホスト:コピー元ファイル名 コピー先ファイル名
オプション | 説明 |
---|---|
-p | パーミッションなどを保持したままコピー |
-r | 再帰的にコピー |
GnuPGによる暗号化
- 「GnuPG」(GNU Privacy Guard)は、ファイルの暗号化と復号化をするためのソフトウェア
- 共通鍵暗号方式および公開鍵公開鍵暗号方式のどちらも使用できる
- 「~/.gnupg/」ディレクトリに設定ファイルが格納されている(~/.gnupg/pubring.qpgファイルは公開鍵キーリング(公開鍵や秘密鍵を保管する鍵用のファイル))
- 「gpg」コマンドで「鍵の作成」「公開鍵のエクスポート、インポート」「ファイルの暗号化、復号化」が出来る
gpg [コマンド] [オプション] [ファイル名や鍵ID等]
// 鍵の作成・確認・無効化の例) // 1. 公開鍵と秘密鍵の鍵ペアを作成 $ gpg --gen-key // 対話的に作成する(鍵の種類(RSAやRDA)?有効期限?ID?パスワード?などが聞かれる) // 2. 作成した公開鍵と秘密鍵の確認 $ gpg --list-keys // 「~/.gnupg/」以下に作成した「pubring.qpg」ファイルの有効期限等の情報が確認できる // 3. 鍵の失効証明書を作成(鍵の無効化。パスフレーズが漏れたり忘れた場合に実行する) $ gpg -o revoke.asc --gen-revoke hoge@examle.com // 対話的に作成する(失効理由?ID?パスフレーズ?などが聞かれる) // 4. 作成した失効証明書を安全な場所に保存 $ gpg --import revoke.asc
// 公開鍵のエクスポート、インポートの例) // 1. 公開鍵のエクスポート // 書式:gpg -o 出力ファイル名 -a --export 自分のメールアドレス $ gpg -o pubkey -a --export self@example.com // 1. 公開鍵のインポート gpg --import pubkey // インポートした公開鍵は「gpg --list-keys」コマンドで確認できる // 2. インポートした公開鍵に署名する(署名を行わないと毎回警告がでる) $ gpg --sign-key hoge@example.com // 対話的に署名する(本当に署名して良い?などが聞かれる)
// ファイルの暗号化、復号化 // 1. 暗号化:hoge@example.comのみが複合できるようimportant.txtを暗号化 // 書式:gpg -e -a -r 送り先のメールアドレス 暗号化するファイル名 $ gpg -e -a -r you@example.com important.txt // important.txt.ascが作成される // 2. 復号化:送られてきたimportant.txt.ascを秘密鍵を使って復号化 $ gpg important.txt.asc // 対話的に復号化する(パスフレーズ?を聞かれる)
おまけ
公開鍵暗号方式
- 南京錠を例にした秘密鍵と公開鍵のイメージ
- Aさんは、鍵の開いた南京錠を世界中に配布する(鍵は配布しない)
- Bさんは、Aさんの南京錠を受け取る
- Bさんは、自分の小包にその南京錠を使って鍵をかけAさんへ送る(Bさんは鍵がないので南京錠を開けられない)
- Aさんは、小包を受け取り南京錠を開錠し中身を取り出す
- 「鍵の開いた南京錠」→「公開鍵」
- 「南京錠を開錠する鍵」→「秘密鍵」
- 公開鍵暗号方式は、SSLやSSH等で使われる
- 共通暗号方式の場合、暗号化する際の「鍵」と復号化する際の「鍵」が同じ
SSLとSSHの違い
SSL | SSH | |
---|---|---|
OSI | 6.トランスポート層 | 7.アプリケーション層 |
公開鍵 | 証明書に署名した認証局の公開鍵(全ユーザ共通) | ユーザ毎の公開鍵 |
主な用途 | 任意のプロトコルをトンネリング、HTTPS接続等 | リモートシェル、Githubからcloneする(openssh)等 |
FTP | FTPS | SFTP |
備考 | 第3者にサーバの身元を証明してもらう(認証局から電子証明書(SSLサーバー証明書)を発行してもらう)、TLSの元になったプロトコルがSSLであり本来はTLSと呼ぶ | 秘密鍵と公開鍵を作り公開鍵をサーバへ渡す |
「ssh-keygen」と「gpg –gen-key」の違い
使用した教材
102-5. ネットワークの基礎
- インターネットプロトコルの基礎
- 基本的なネットワーク構成
- 「ifconfig」コマンドでネットワークの設定及び確認ができる(「ifconfig en0 down」や「ifdown en0」でen0のネットワークが無効化)
- 「/etc/」配下にネットワーク関連のファイルがある(hostname, hosts, host.conf, nsswitch.conf, resolv.conf, sysconfig/network,sysconfig/network-scriptディレクトリ)
- 基本的なネットワークの問題解決
- クライアント側のDNS設定
1. インターネットプロトコルの基礎
TCP/IPプロトコル
OSI参照モデル | TCP/IP参照モデル |
---|---|
アプリケーション層 プレゼンテーション層 セッション層 |
アプリケーション層(HTTP,SMTP,TELNET等) |
トランスポート層 | トランスポート層(TCP,UDP等) |
ネットワーク層 | インターネット層(IP,ICMP等) |
データリンク層物理層 | ネットワークインターフェース層 |
TCP(Transmission Control Protocol)
- 信頼性の高い通信を実現するためのコネクション型プロトコル
- 相手に通信データが正しく届いていることを確認しながら通信を行うので信頼性が高い
- 代表的な機能は次の通り
- 途中で消失やエラーが発生したパッケとの再送
- パケットの伝送準備を整列
IP(Internet Protocol)
- データ転送(ルーティング)をつかさどるコネクションレス型プロトコル
- 相手に通信データが正しく届いているか確認しないため信頼性は低いが伝送速度は早くなる
- 代表的な機能は次の通り
- IPアドレスの規定
- データグラム(伝送単位)の規定
- データグラムが伝送されるネットワーク経路の制御
UDP(User Datagram Protocol)
ICMP(Internet Control Message Protocol)
IPアドレス(IPv4)
- TCP/IPでは、ネットワークに接続された機器を識別するのに「IPアドレス」を使う
- IPアドレスは、32ビットで構成され8ビットごとに「.」で区切って10進数で表記する
- IPアドレスは、ネットワーク部とホスト部に分けられる
- サブネットマスク(255.255.255.0)を使うとネットワーク部とホスト部の境界を求められる
- ブロードキャストアドレスとは、ホスト部のビットを全て1にしたアドレス(192.168.1.255等)
- ブロードキャストアドレスは同じネットワークの全てに送信する特別なアドレス
| ネットワーク部 |ホスト部| 2進数表記: 11000000.10101000.00000001.00000010 10進数表記: 192. 168. 1. 2
IPアドレスのクラス
※. 画像はITmediaより抜粋
プライベートアドレス
- IPアドレスはインターネット内で重複しないように一意に割り当てる必要がある
- ローカルネットワーク内で自由に使うことのできるアドレスを「プライベートアドレス」と呼びクラスごとに範囲が異なる
- Aクラス: 10. 0.0.0 ~ 10.255.255.255
- Bクラス:172. 16.0.0 ~ 172. 31.255.255
- Cクラス:192.168.0.0 ~ 192.168.255.255
IPアドレス(IPv6)
- IPv4が32ビットに対して、IPv6は128ビット
- IPv6は16ビットずつ8ブロクで区切られ16進数で表する
- 各ブロックの先頭の「0」は省略出来る
- 各ブロックが連続して「0」の場合「::」と省略出来る
ポート
- 送信元のアプリケーションや送信先のアプリケーションを識別するために「ポート番号」が使われる(ポート番号はTCP/UDPのエンドポイント(OSIモデルのアプリケーション層のプロトコルとの組合せにも使われる))
- 「/etc/services」ファイルにポートとサービスの対応が記述されている
番号 | プロトコル | サービス/プロトコル | 説明 |
---|---|---|---|
20,21 | TCP | FTP | FTPのデータ転送 |
22 | TCP | SSH | SSH接続(安全なリモート接続) |
23 | TCP | TELNET | TELNET接続(リモート接続) |
25 | TCP/UDP | SMTP | 電子メール(送信) |
53 | TCP/UDP | DNS | DNS |
80 | TCP | HTTP | Web |
110 | TCP | POP3 | 電子メール(受信) |
443 | TCP | HTTPS | Web(SSL) |
ネットワークコマンド
telnet
- 指定したホスト、ポート番号にTelneプロトコルで接続
- ポート番号が省略されると23版ポートで接続
- ホスト指定がない場合対話モードになる
telnet [ホスト [ポート番号]]
[vagrant@localhost ~]$ telnet example.com 80 Trying 93.184.216.119... Connected to example.com. Escape character is '^]'. GET /index.html HTTP/1.1 HOST: example.com HTTP/1.1 200 OK ・・・ <html> ・・・</html> [vagrant@localhost ~]$
ftp
ftp [ホスト]
サブコマンド | 説明 |
---|---|
get ファイル | ファイルを受信 |
mget 複数のファイル | 複数ファイルを受信 |
put ファイル | ファイルを送信 |
mput 複数のファイル | 複数ファイルを送信 |
ascii | 転送モードをASCIIテキストに設定 |
binary | 転送モードをバイナリに設定 |
quit | FTPを終了 |
dig
dig [オプション] [@DNSサーバ名] ホストまたはドメイン名 [検索タイプ]
オプション | 説明 |
---|---|
-x | IPアドレスからホスト名を検索する |
検索タイプ | 説明 |
---|---|
a | IPアドレス |
any | すべての情報 |
mx | メールサーバの情報 |
ns | ネームサーバの情報 |
whois
whois ターゲット [@whoisサーバ名]
2. 基本的なネットワーク構成
ネットワークの基本設定
- ネットワークを設定するには、コマンドで設定する方法と設定ファイルを変更する方法がある
- コマンド:「ifconfig」コマンド等で設定(システムやネットワーク機能を再起動すると失われる)
- 設定ファイル:「/etc」以下のファイルを変更(永続的に変更される)
設定ファイル
ファイル | 説明 |
---|---|
/etc/hostname | ホスト名を記述 |
/etc/hosts | ホスト名とIPアドレスの対応を記述(ホスト名を設定するファイルではない) |
/etc/host.conf | 名前解決の参照先優先順位を記述 |
/etc/nsswitch.conf | 名前解決時の問い合わせ順を記述(IPアドレスからホスト名を検索したり、サービス名からポート番号を検索したりする) |
/etc/resolv.conf | DNSサーバやドメイン名の設定を記述 |
/etc/sysconfig/network | ネットワーク機能設定(使用可否、ホスト名等) |
/etc/sysconfig/network-scriptディレクトリ | 様々なネットワークインターフェースの設定ファイルが格納(IPアドレスを固定で割り当てたい場合このファイルに設定) |
3. 基本的なネットワークの問題解決
主なネットワーク設定・管理コマンド
- ネットワーク設定確認・変更・状況の表示等
pingコマンド
- 指定したホストにICMPパケットを送りその反応を表示する
- Webサーバがダウンしているのか、ホスト自身がダウンしているか判断できる
ping [オプション] ホストまたはIPアドレス
オプション | 説明 |
---|---|
-c 回数 | ICMPパケットの送信回数 |
-i 間隔 | ICMPパケットの送信間隔 |
tracerouteコマンド
- 指定されたホストまでのパケット経路を表示する
- 「ping」コマンドで宛先が見つからなかった場合、ホスト自身に問題があるのかネットワーク経路に問題があるのか判断できる
traceroute ホスト名またはIPアドレス
tracepathコマンド
- 「traceroute」コマンドと同様で経路を表示する
tracepath ホスト名またはIPアドレス[/ポート番号]
hostコマンド
host [オプション] ホスト名またはIPアドレス [DNSサーバ]
オプション | 説明 |
---|---|
-v | 詳細な情報を表示 |
$ host example.com example.com has address 93.184.216.119 $ host 93.184.216.119 119.216.184.93.in-addr.arpa domain name pointer example.com.
hostnameコマンド
- ホスト名の表示、変更が出来る
- 引数にホスト名を指定すると変更され、引数を指定しないと現在のホスト名が表示される
hostname [ホスト名]
netstatコマンド
- ネットワーク機能に関する様々情報を表示する
- 開いているポートの確認でよく利用される
netstat [オプション]
オプション | 説明 |
---|---|
-a | すべてのソケット情報を表示 |
-c | 状況を1秒毎に表示 |
-i | ネットワークインターフェースの状態を表示 |
-n | アドレスやポートを数字で表示 |
-p | PIDとプロセス名も表示 |
-r | ルーティングテーブル※を表示 |
-t | TCPポートだけを表示 |
-u | UDPポートだけを表示 |
※.ルーティングテーブルとは、ルータや端末が保持するパケットの配送先に関する経路情報
[vagrant@localhost ~]$ netstat -at Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:ssh *:* LISTEN 10.0.2.2:49365 ESTABLISHED t ・・・ # State欄がLISTENは接続待ち受け中、ESTABLISHEDは接続中
// ルーティングテーブルを表示する例 [vagrant@localhost ~]$ netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.0.2.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 0 0 0 eth0 default 10.0.2.2 0.0.0.0 UG 0 0 0 eth0 [vagrant@localhost ~]$
項目 | 説明 |
---|---|
Destination | 宛先ネットワーク、または宛先ホスト |
Gateway | ゲートウェイのIPアドレス |
Genmask | 宛先のサブネットマスク。デフォルトゲートウェイの場合、0.0.0.0 と表示される |
Flags | 経路の状態 ( U:経路が有効、H:宛先はホスト、G:ゲートウェイを使用、!:経路は無効 ) |
MSS | TCP接続の最大セグメント数 |
Window | TCP接続のウインドウ・サイズ |
irtt | 初期ラウンドトリップ時間 |
Iface | このルーティングのネットワーク・インタフェース名 |
routeコマンド
- ルーティングテーブルの表示や操作が出来る
- ルーティングとは複数のネットワーク間でデータが正しく届くよう経路(ルート)を制御すること
// 表示 route [オプション] // 追加 route add [パラメータ] // 削除 route del [パラメータ]
オプション | 説明 |
---|---|
-F | カーネル上のルーティングテーブルを表示 |
-C | カーネル上のルーティングキャッシュを表示 |
デフォルトゲートウェイ※を192.168.0.254に設定する例) # route add default gw 192.168.0.254
※. ゲートウェイとは、通信手順(プロトコル)が異なる二者間やネットワーク間の通信を中継する機器やソフトウェア、システムの一種で、最上位層のプロトコルの違いに対応できるもの
ネットワークインターフェースの設定
- 「ifconfig」コマンドでネットワークインターフェースの設定や有効・無効を切り替えられる
ifconfig [ネットワークインターフェース名] [パラメータ]
パラメータ | 説明 |
---|---|
IPアドレス | IPアドレスを設定 |
netmask サブネットマスク | サブネットマスクを設定 |
up | ネットワークインターフェースを有効化 |
down | ネットワークインターフェースを無効化 |
# en0のネットワークが無効化する $sudo ifconfig en0 down
- 「ifup」「ifdown」コマンドでネットワークインターフェースを有効・無効に切り替えられる(ifconfigのupとdownと同様)
ifup [ネットワークインターフェース名]
ifdown [ネットワークインターフェース名]
4. クライアント側のDNS設定
- DNSサーバやドメイン名の設定は、「/etc/resolv.conf」ファイル
- 名前解決の問い合わせ順の設定は、「/etc/nsswitch.conf」ファイル
- DNSサーバに対して問い合わせは、「dig」コマンド
おまけ
階層モデル
OSI参照モデル(OSI reference model)
階層 | 名称 | 説明 | 例 |
---|---|---|---|
上位層 | |||
7 | アプリケーション層 | 具体的な通信サービス(例えばファイル・メールの転送、遠隔データベースアクセスなど)を提供 | HTTP,TELNE,FTP,POP,SMTP,DNS |
6 | プレゼンテーション層 | データの表現方法(例えばEBCDICコードのテキストファイルをASCIIコードのファイルへ変換する) | SSL |
5 | セッション層 | アプリケーション間で通信(セッション)を開始と終了を管理 | RPC |
下位層 | |||
4 | トランスポート層 | ネットワークの端から端までの通信管理(エラー訂正、再送制御等) | TCP,UDP |
3 | ネットワーク層 | ネットワークにおける通信経路の選択(ルーティング)、データ中継 | IP, ICMP,IPSec |
2 | データリンク層 | 直接的(隣接的)に接続されている通信機器間の信号の受け渡し | PPP,Ethernet,ARP |
1 | 物理層 | 物理的な接続(コネクタのピンの数、コネクタ形状の規定、銅線-光ファイバ間の電気信号の変換等) | ISDN,ハブ,無線通信 |
TCP/IP参照モデル(Internet protocol suite)
- 米国防総省(DoD)が作成したモデル
- 実際のネットワークでは実装が容易ということで、OSI参照モデルではなくTCP/IPモデルの方が浸透している
- 通信機能(通信プロトコル)を4つの階層に分けて定義している
- コンピューター同士をつないだネットワークでは、ほとんどTCP/IPプロトコルを使ってデータのやりとりをしている
階層 | 名称 | 説明 | OSI |
---|---|---|---|
4 | アプリケーション層 | 人間との情報のやりとりを担う | 7〜5層 |
3 | トランスポート層 | 信頼性または効率性を提供 | 4層 |
2 | インターネット層 | 宛先ネットワークを判別 | 3層 |
1 | ネットワークアクセス層 | ケーブルなどによる物理的な接続を担当 | 2〜1層 |
- OSI 参照モデル(http://www.cisco.com/)がそれぞれの役割をflashで分かりやすく書いてありました
ホスト名、ドメイン名、FQDN
- ドメイン名とは、インターネット上のネットワークを特定するための文字列
- ネットワーク上のコンピュータにつける識別用の文字列を「ホスト名」
- FQDN(Fully Qualified Domain Name:完全修飾ドメイン名)とは、ホスト名とドメイン名を省略せずにつなげて記述した文字列
使用した教材
102-4. 重要なシステムサービス
- システム時刻を維持する
- システムクロックとハードウェアクロックがある
- システムクロック:カーネル内に存在する時計、「date」コマンドで確認及び変更できる
- ハードウェアクロック:ハードウェアに内蔵されており電源オフでも動作する時計、「hwclock」コマンドで確認及び変更できる
- 「ntpdate」コマンドでNTPサーバから正確な現在時刻を取得できる
- システムクロックとハードウェアクロックがある
- システムのログ
- メール転送エージェント(MTA)の基本
- プリンターと印刷を管理する
- 主なLinuxディストリビューションでは、印刷サブシステムに「CUPS」を採用している
- 「/etc/init.d/cups start」でCUPSサービスを起動できる
- 「lpr」コマンドでファイルの印刷
- 「lpq」コマンドでプリントのキュー内容の表示
- 「lprm」コマンドで印刷要求の削除
1. システム時刻を維持する
システムクロックとハードウェアクロック
- Linuxには2つの時計システムがある
- 動作が経過するにつれハードウェアクロックとシステムクロックに差が生まれる
システムクロック
- 「date」コマンドでシステクロックの日時の表示(引数がある場合、システム時間を変更)
- 「date」コマンドは、引数に「+」を付与すると指定した書式で表示される(ログファイル名に時間をつける時によく利用する)
date [MMDDhhmm[[CC]YY][.ss]]
[vagrant@localhost ~]$ date 2015年 9月 6日 日曜日 00:51:19 EST [vagrant@localhost ~]$ date "+%Y%m%d" 20150906 [vagrant@localhost ~]$ sudo date 072019302010.20 // 2010年7月20日19時30分20秒に設定 2010年 7月 20日 火曜日 19:30:20 EDT [vagrant@localhost ~]$
ハードウェアクロック
- 「hwclock」コマンドでハードウェアクロックの表示及び変更が出来る
hwclock オプション
オプション | 説明 |
---|---|
-r | ハードウェアクロックを表示 |
-w | システムクロックの時刻をハードウェアクロックの時刻に設定(hwclock –systohcも同じ) |
-s | ハードクロックの時刻をソフトウェアクロックの時刻に設定(hwclock –hctosysも同じ) |
NTPによる時刻設定
- 正確な時刻を取得するためにIPネットワーク経由でNTP(Network Time Protocol)を使用し情報を取得する
- NTPはクロック同期を行うプロトコル
- 「ntpdate」コマンドでNTPサーバから正確な現在時刻を取得できる
ntpdate [オプション] NTPサーバ名
オプション | 説明 |
---|---|
-d | デバックモードで実行(時刻の修正はしない) |
-q | NTPサーバーに日付と時刻を問い合わせる(時刻の修正はしない) |
-v | 詳細情報を表示 |
ntpdateの使用例) [root@localhost ~]# ntpdate -v ntp.nict.jp // ntp.nict.jp(情報通信研究機構)をシステムクロックに設定 6 Sep 01:45:45 ntpdate[1871]: ntpdate 4.2.4p8@1.1612-o Fri Feb 22 11:23:28 UTC 2013 (1) 6 Sep 01:45:56 ntpdate[1871]: adjust time server 133.243.238.244 offset -0.268652 sec [root@localhost ~]# date 2015年 9月 6日 日曜日 01:46:01 EDT [root@localhost ~]# hwclock 2015年09月06日 05時46分03秒 -0.157601 秒 [root@localhost ~]# hwclock -w // システムクロックの時刻をハードウェアクロックの時刻に設定 [root@localhost ~]# hwclock 2015年09月06日 01時47分53秒 -0.804416 秒 [root@localhost ~]#
2. システムのログ
- Linuxではsyslogを使って様々なイベントの記録、コンソール表示を行う
syslog
- 「/etc/syslog.conf」がsyslogの設定ファイル(centOSの場合、rsyslog.conf)
- 「syslog」コマンドと「dmesg」コマンド
- syslog:各アプリケーションやOSが出力するログ
- dmesg:システム起動直後に、起動時のメッセージ(リングバッファの内容)
- CentOS 6以降は「rsyslog」が採用されている場合がある(「/etc/rsyslog.conf」が設定ファイル)
syslog.confの書式) cron.* /var/log/cron ① ② ③ ①ファシリティ:メッセージの出力元、カーネル実行中のプロセス、「*」で全てを設定できる ②プライオリティ:メッセージの優先度、プライオリティを低くするとログも少なくなる、「*」で全てのプライオリティを選択できる ③出力先:メッセージの出力先、ログファイルに出力したい場合ファイル名をフルパスで指定、ネットワーク上のリモートホストに送信したい場合「@」を使ってホストを指定、「*」を使うと全てのユーザーに通知する
- ファシリティ
ファシリティ | 説明 |
---|---|
auth, authpriv | 承認システム |
cron | cron |
deamon | 各種デーモン |
kern | カーネル |
lpr | 印刷システム |
メールシステム | |
syslog | syslog機能 |
local0~local7 | 独自の設定 |
- プライオリティ
プライオリティ | 説明 |
---|---|
emerg | 非常に危険な状態 |
alert | 危険な状態 |
crit | 危険な状態 |
err | 一般的なエラー |
warning | システム警告 |
notice | システム重要通知 |
info | システム情報 |
debug | デバッグ情報 |
none | ファシリティ無効(メッセージを送らない) |
- 出力先
出力先 | 説明 |
---|---|
ファイル名 | ファイルに出力 |
@ホスト名 | リモートホストのsyslogdに出力 |
ユーザー名 | ユーザー端末に出力 |
/dev/console | コンソールに出力 |
* | 全てのユーザー端末に出力 |
- 「logger」コマンドでログメッセージを生成できる
logger [-p ファシリティ.プライオリティ] [-t タグ] メッセージ
ログの調査
- 「tail」コマンドでログファイルを監視できる
- 「grep」コマンド併用で特定のメッセージを調べられる
- 「who」コマンドでログイン中のユーザーが調べられる
- 「w」コマンドでログイン中のユーザー及びシステム情報も調べられる
- 「last」コマンドで最近ログインしたユーザー一覧を表示します
ログファイル | コマンド | 説明 |
---|---|---|
/var/log/messages | less,tail,grep等 | 一般的なシステム関連のメッセージ |
/var/log/secure | less,tail,grep等 | セキュリティに関するメッセージ |
/var/log/wtmp | last | 最近ログインしたユーザー |
/var/run/utmp | who,w | ログイン中のユーザー |
/var/log/lastlog | lastlog | ユーザーごとのログイン情報 |
ログの書式) Nov 9 06:46:59 localhost kernel: starting ① ② ③ ④ ①日時 ②出力元ホスト名 ③メッセージ出力元 ④メッセージ
grepの例) [root@localhost ~]# grep eth0 /var/log/messages Nov 9 05:33:05 localhost kernel: e1000 0000:00:03.0: eth0: (PCI:33MHz:32-bit) 08:00:27:9a:38:87
ログファイルのローテーション
- 一つのログファイルに追記すると容量が肥大化していく
- 「ローテーション機能」を使うと古くなったログを切り分け肥大化を防げる
- 「/var/log/message」ファイルは「/var/log/message.1」にコピーされ、「/var/log/message」が新に作成される(順次に「.2」ファイルが作成されていく)
- 「logrotateユーティリティ」でローテーション機能は提供される
- 「/etc/logrotate.conf」ファイルでlogrotateの設定ができる
/etc/logrotate.confの一部抜粋) # ローテーション周期は1周間とする weekly # バックアップログを4週間保存する rotate 4 # ローテーションさせたら空のログファイルを作成する create # ログファイルを圧縮する #compress
3. メール転送エージェント(MTA)の基本
メール配送の仕組み
MTAの起動
- システムによって、インストールされているMTAプログラムは異なる
- 25番ポートを開いているソフトウェアを調べると稼働しているMTAが確認できる
- SMTPサーバー(MTA)には、「sendmail」「Postfix」「qmail」「exim」などがある
MTA | 設定ファイル | 転送設定ファイル | エイリアス設定用ファイル |
---|---|---|---|
Postfix | main.cf、master.cf | ~/.forward | |
qmail | defaultdomainなど多数 | ~/.qmail | |
exim4 | exim4.conf.template | ~/.forward | /etc/aliasesに設定 |
sendmail | sendmail.cf | ~/.forward |
MTAプログラムの確認) # netstat -atnp | grep 25 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3986/exim4 sendmailを起動方法) # /etc/init.d/sendmail start sendmail を起動中: [ OK ] sm-client を起動中: [ OK ]
メールの送受信
- 「mail」コマンドでメールの送受信が出来る
- 引数ありで実行するとメールを送信できる
- 引数なしで実行すると受信メールを確認できる
- 「/var/spool/mqueue/」に送信待ちのメールが蓄えられる(メールキュー)
- 「mailq」コマンドで送信待ちのメールが確認できる(mailコマンドで送信が成功したか確認できる)
- 「/var/spool/mail/」に受信メールが格納される
mail [-s 題名] [宛先メールアドレスもしくはユーザー名]
[vagrant@localhost ~]$ mail -s test you@examle.com Hello Test! # 本文を入力 . # 「.」で入力終了 EOT [vagrant@localhost ~]$
メールの転送
- 「/etc/aliases」ファイルを変更して転送できる(設定後に「newaliases」コマンドで反映する)
- 「~/.forward」ファイルを作成でも転送できる(一時的に転送したい場合やユーザ個人の管理で転送したい場合に使用する)
/etc/aliasesの記述例) # rootに届いたメールをadmin,lpicに転送(rootにはメールが届かなくなる) root:admin,lpic
.forwardの記述例) # 自分に届いたメールをyou@examle.comに転送 you@examle.com
4. プリンターと印刷を管理する
印刷の仕組み
- 主なLinuxディストリビューションでは、印刷サブシステムに「CUPS」を採用している
- CUPSの特徴は次の4つ
- 「/etc/init.d/cups start」でCUPSサービスを起動できる
- 「/etc/cups/printers.conf」がCUPSのプリンタ設定ファイル
印刷関連コマンド
- 「lpr」コマンドでファイルを印刷できる
- 「lpq」コマンドでプリントのキューの内容を表示できる
- 「lprm」コマンドで印刷要求を削除できる
lpr [オプション] [ファイル名]
オプション | 説明 |
---|---|
-# 部数 | 印刷部数を指定 |
-P プリンター名 | 印刷プリンターを指定 |
lpq [オプション] [ユーザー名] [ジョブ番号]
オプション | 説明 |
---|---|
-P プリンター名 | プリンターを指定 |
lprm [オプション] [ジョブ番号]
オプション | 説明 |
---|---|
-P プリンター名 | プリンターを指定 |
- | 自分の全印刷ジョブを削除 |
使用した教材
102-3. 管理業務
- ユーザアカウント、グループアカウント、および関連するシステムファイルを管理する
- ユーザーアカウント情報は「/etc/passwd」ファイルに保存されている
- グループ情報は「/etc/group」ファイルに保存されている
- 「useradd」コマンドでユーザーアカウントを追加、「usermod」で変更、「userdel」で削除(-rオプションでホームディレクトリも同時に削除)
- 「groupadd」コマンドでグループを追加、「groupmod」で変更、「groupdel」で削除(プライマリグループとするユーザーがいる場合削除出来ない)
- 「id」コマンドで所属しているユーザーを調べられる
- 「/etc/shadow」ファイルに暗号化されたユーザーアカウントのパスワードが保存されている
- ジョブスケジューリングによるシステム管理業務の自動化
- 定期的に実施する作業(バックアップやログ管理等)を自動的に実行できる
- cron:定期的に実行するジョブ(crondとcrontabコマンドから構成されている)
- at:1回のみ実行するジョブ
- ユーザ単位でアクセス制御が可能
- cron:「/etc/cron.allow」、「/etc/cron.deny」で制御可能
- allow→denyの順で利用可能(両方共ない場合、全ユーザが利用可能)
- at:「/etc/at.allow」、「/etc/at.deny」で制御可能
- allow→denyの順で利用可能(両方共ない場合、rootユーザーのみ利用可能)
- cron:「/etc/cron.allow」、「/etc/cron.deny」で制御可能
- 定期的に実施する作業(バックアップやログ管理等)を自動的に実行できる
- ローカライゼーションと国際化
1. ユーザアカウント、グループアカウント、および関連するシステムファイルを管理する
- Linuxは複数のユーザーが同時に利用できるマルチユーザーシステム
- ユーザー情報はテキストファイルに保存されている
ユーザーアカウント
- ユーザーアカウント情報は「/etc/passwd」ファイルに保存されている
- 1行につき1ユーザーアカウント
- 項目は「:」で区切られている
/etc/passwdの書式例) student:x:501:503::/home/student:/bin/bash ① ② ③ ④ ⑤ ⑥ ⑦ ①ユーザー名:システム内で一意のアカウント名 ②パスワード:シャドウパスワードが使われているので「x」が表示される ③UID:ユーザーID(0:管理ユーザー、1~99:システムユーザー、100〜:一般ユーザー) ④GID:グループID(「/etc/group」ファイルに定義されている) ⑤GECOS:コメント ⑥ホームディレクトリ ⑦デフォルトシェル
グループアカウント
- グループ情報は「/etc/group」ファイルに保存されている
- ユーザーは複数のグループに所属できる
- プライマリグループ:ユーザーにとって基本となるグループ
- サブグループ:ユーザーが参加しているグループ
- ユーザーは複数のグループに所属できる
/etc/groupの書式例) test:x:502:student,lpic ① ② ③ ④ ①グループ名 ②グループパスワード ③GID:グループID ④グループメンバー:所属するユーザー名が入る、複数所属する場合「,」で区切られる
コマンドを用いたユーザーとグループ管理
ユーザー
- 「useradd」コマンドでユーザーアカウントを作成できる
useradd [オプション] ユーザー名
オプション | 説明 |
---|---|
-c コメント | コメントフィールドを指定 |
-d パス | ホームディレクトリを指定 |
-g グループ名/GID | プライマリグループを指定 |
-G グループ名/GID | サブグループを指定 |
-s パス | ログインシェルを指定 |
-D | デフォルトの設定値を表示または設定 |
-m | ホームディレクトリを自動作成 |
ユーザー作成例) # useradd -c "lpic user" -d /home/lpic -s /bin/bash lpicuser
- 「usermod」コマンドで既存ユーザーアカウントを変更できる
usermod [オプション] ユーザー名
オプション | 説明 |
---|---|
-c コメント | コメントフィールドを変更 |
-d パス | ホームディレクトリを変更 |
-g グループ名/GID | プライマリグループを変更 |
-G グループ名/GID | サブグループを変更 |
-s パス | ログインシェルを変更 |
-L | パスワードをロックして一時的に無効化 |
-U | パスワードのロック解除 |
- 「userdel」コマンドでユーザーアカウントを削除できる
userdel [オプション] ユーザー名
オプション | 説明 |
---|---|
-r | ホームディレクトリも同時に削除 |
- 「passwd」コマンドでパスワードを変更できる
- スーパーユーザーの場合、全ユーザーのパスワードを変更できる
- 一般ユーザーの場合、自分のパスワードのみ変更できる
passwd [オプション] [ユーザー名]
オプション | 説明 |
---|---|
-l | パスワードをロックして一時的に無効化 |
-u | パスワードのロック解除 |
グループ
- 「groupadd」コマンドでグループを作成できる
groupadd グループ名
- 「groupmod」コマンドでグループ情報を変更できる
groupmod グループ名
オプション | 説明 |
---|---|
-g GID | GIDを変更 |
-n グループ名 | グループ名を変更 |
- 「groupdel」コマンドでグループを削除できる
- 削除対象グループをプライマリグループとするユーザーがいる場合削除出来ない
groupdel グループ名
- 「id」コマンドで所属しているユーザーを調べられる
id [ユーザー名]
idコマンドの使用例) [vagrant@localhost ~]$ id student uid=501(student) gid=503(student) 所属グループ=503(student),502(test)
ホームディレクトリのデフォルトファイル
シャドウパスワード
- 「/etc/shadow」ファイルに暗号化されたユーザーアカウントのパスワードが保存されている
[vagrant@localhost ~]$ ls -l /etc/passwd /etc/shadow -rw-r--r-- 1 root root 1307 8月 8 08:35 2015 /etc/passwd ---------- 1 root root 802 8月 8 08:35 2015 /etc/shadow [vagrant@localhost ~]$
2. ジョブスケジューリングによるシステム管理業務の自動化
- 定期的に実施する作業(バックアップやログ管理等)を自動的に実行できる
- cron:定期的に実行するジョブ
- at:1回のみ実行するジョブ
cron
- cronは、crondとcrontabコマンドから構成されている
- crond:スケジュール管理するデーモン
- crontab:スケジューリングを編集する
crontab(ユーザー)
- 「/var/spool/cron」ディレクトリ以下に「crontab」ファイルが置かれている(hogeというユーザーの場合、/var/spool/cron/hogeになる)
- ジョブを変更する場合、「crontab」ファイルの変更、または「crontab」コマンドで変更する
crontab [オプション]
オプション | 説明 |
---|---|
-e | crontabファイルを編集 |
-l | crontabファイルの表示 |
-r | crontabファイルの削除 |
-i | crontabファイルの削除(確認有り) |
-u ユーザー名 | ユーザーを指定してcrontabファイルを編集(rootユーザーのみ) |
crontabファイルの書式) # Daily Backup(毎日、2時と14時に「/usr/local/bin/backup」プログラムを実行) 0 2,14 * * * /usr/local/bin/backup 分 時 日 月 曜日 コマンド - 曜日:0~6(日〜土曜日)、7も日曜日 - 「,」で区切ると複数のタイミングで処理を実行する - 「/」で区切ると間隔で実行できる(「* */2 * * hoge.sh」の場合、2時間ごとに実行される)
crontab(システム)
- 「/etc/crontab」ファイルは、システム用のcrontabファイル
- 「/etc/crontab」ファイルは「/etc/cron.*」ディレクトリ内のファイルを呼び出す
- 「/etc/crontab」ファイルの書式は、ユーザー用crontabファイルにユーザー名を追加した形式
- 毎月スクリプトを実行したい場合、「/etc/cron.monthly/」ディレクトリにスクリプトファイルを置く(毎時:cron.hourly、毎日:cron.daily、毎週:cron.weekly、それ以外:cron.d)
# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
atコマンド
- 「at」コマンドで1回限りの実行スケジュールを登録できる
- 登録方法には「対話式」と「ファイル指定」がある
対話式
at [オプション]
オプション | 説明 |
---|---|
-d ジョブ | 予約中のジョブIDを指定し削除(「atrm」コマンドと同じ) |
-l | 予約中のジョブを表示(「atq」コマンドと同じ) |
スケジュール登録例) $ at 5:00 tomorrow at> /usr/local/bin/backup at> ^D # Ctr+Dで対話終了
ファイル指定
at [-f ファイル名] 日時
cronとatのアクセス制御
- ユーザー単位で制御できる
cron
- 「/etc/cron.allow」、「/etc/cron.deny」で制御可能
- cron.allow:cronの利用許可ユーザー
- cron.deny:cronの利用拒否ユーザー
- ファイルの実行順
- cron.allowがある場合、そこに記述されたユーザーはcron利用可能
- cron.allowがない場合、cron.denyに記述されていないユーザーはcron利用可能
- どちらのファイルもない場合、全てのユーザーがcron利用可能
at
- 「/etc/at.allow」、「/etc/at.deny」で制御可能
- at.allow:atの利用許可ユーザー
- at.deny:atの利用拒否ユーザー
- ファイルの実行順
- at.allowがある場合、そこに記述されたユーザーはat利用可能
- at.allowがない場合、at.denyに記述されていないユーザーはat利用可能
- どちらのファイルもない場合、rootユーザーのみat利用可能(全てのユーザーでatを利用可能にしたい場合、空のat.denyを作成する)
3. ローカライゼーションと国際化
- ローカライゼーションとは、言語や通貨単位、日付の書式を国に合わせること
- 国際化とは、最初から多言語、他地域に対応するようにソフトウェアが作られていること
ロケール
- ロケールとは、カテゴリ(出力言語、通貨、日時の書式等)別の地域情報
- 環境変数に「LC_ALL」を設定すると全てのカテゴリがまとめて変更できる
- 「locale」コマンドで設定を確認できる
- 「locale」を変更する場合、「/etc/sysconfig/i18n」ファイルを変更すると次回のログイン時に変更される(i18nはinternationalisationの略)
カテゴリ | 説明 |
---|---|
LC_CTYPE | 文字の種類の規定 |
LC_COLLATE | 文字の照合や整理に関する規定 |
LC_MESSAGES | メッセージ表に使用する言語 |
LC_MONETARY | 通過に関数規定 |
LC_NUMERIC | 数値の書式に関する規定 |
LC_TIME | 日時や時刻の書式に関する規定 |
localeコマンドの例) [vagrant@localhost ~]$ locale LANG=ja_JP.UTF-8 LC_CTYPE="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_PAPER="ja_JP.UTF-8" LC_NAME="ja_JP.UTF-8" LC_ADDRESS="ja_JP.UTF-8" LC_TELEPHONE="ja_JP.UTF-8" LC_MEASUREMENT="ja_JP.UTF-8" LC_IDENTIFICATION="ja_JP.UTF-8" LC_ALL=
locale変更の例) [root@localhost ~]# vi /etc/sysconfig/i18n LANG="ja_JP.UTF-8" SYSFONT="latarcyrheb-sun16" [root@localhost ~]
文字コード
文字コード | 説明 |
---|---|
ASCII | 7ビットで表現される。128種類の英数字、記号、制御コードで構成される。 |
ISO-8859 | ASCIIを拡張した8ビットの文字コードで256種類の文字を表現できる。 |
Unicode | 32ビットで表現される。1つの文字コード体系で多言語処理を可能にするための文字コード。 |
UTF-8 | Unicodeを使った文字コード。1文字を1バイト~6バイトで表示。 |
EUC-JP | UNIX環境標準の日本語文字コード |
Shift_JIS | WindowsやMacOSで利用される日本語文字コード |
ISO-2022-JP | 電子メールで利用される日本語文字コード |
iconv [オプション] [ファイル名]
オプション | 説明 |
---|---|
-f 入力文字コード | 変換前の文字コードを指定 |
-t 出力文字コード | 変換後の文字コードを指定 |
-l | 扱える文字コードも表示 |
iconvの使用例) # UTF-8で開きeucjpで表示し別ファイルへ出力 $ iconv -f UTF-8 -t eucjp hoge.txt > hogeeuc.txt
タイムゾーン
$ ls /usr/share/zoneinfo Africa Canada GB Indian Mexico ROC Zulu America Chile GB-Eire Iran Mideast ROK iso3166.tab Antarctica Cuba GMT Israel NZ Singapore posix Arctic EET GMT+0 Jamaica NZ-CHAT Turkey posixrules Asia EST GMT-0 Japan Navajo UCT right Atlantic EST5EDT GMT0 Kwajalein PRC US zone.tab Australia Egypt Greenwich Libya PST8PDT UTC Brazil Eire HST MET Pacific Universal CET Etc Hongkong MST Poland W-SU CST6CDT Europe Iceland MST7MDT Portugal WET $
- 現在のタイムゾーンを確認したい場合は、「date」コマンドで確認出来る
- タイムゾーンを変更するには、次のような方法がある
- 「/etc/localtime 」ファイルを上書きする(シンボリックリンクでもOK)
- 「tzselect」コマンドで対話的に変更する
$ date 2015年 9月 6日 日曜日 23:00:48 EDT // 「/etc/localtime 」ファイルを上書きする例) # cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # date 2015年 9月 6日 日曜日 12:03:42 JST // 「tzselect」コマンドで対話的に変更する例) $ tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent or ocean. 1) Africa 2) Americas 3) Antarctica 4) Arctic Ocean 5) Asia 6) Atlantic Ocean 7) Australia 8) Europe 9) Indian Ocean 10) Pacific Ocean 11) none - I want to specify the time zone using the Posix TZ format. #? 5 Please select a country. 1) Afghanistan 18) Israel 35) Palestine 2) Armenia 19) Japan 36) Philippines 3) Azerbaijan 20) Jordan 37) Qatar 4) Bahrain 21) Kazakhstan 38) Russia 5) Bangladesh 22) Korea (North) 39) Saudi Arabia 6) Bhutan 23) Korea (South) 40) Singapore 7) Brunei 24) Kuwait 41) Sri Lanka 8) Cambodia 25) Kyrgyzstan 42) Syria 9) China 26) Laos 43) Taiwan 10) Cyprus 27) Lebanon 44) Tajikistan 11) East Timor 28) Macau 45) Thailand 12) Georgia 29) Malaysia 46) Turkmenistan 13) Hong Kong 30) Mongolia 47) United Arab Emirates 14) India 31) Myanmar (Burma) 48) Uzbekistan 15) Indonesia 32) Nepal 49) Vietnam 16) Iran 33) Oman 50) Yemen 17) Iraq 34) Pakistan #? 19 The following information has been given: Japan Therefore TZ='Asia/Tokyo' will be used. Local time is now: Sun Aug 9 00:48:17 JST 2015. Universal Time is now: Sat Aug 8 15:48:17 UTC 2015. Is the above information OK? 1) Yes 2) No #? 1 You can make this change permanent for yourself by appending the line TZ='Asia/Tokyo'; export TZ to the file '.profile' in your home directory; then log out and log in again. Here is that TZ value again, this time on standard output so that you can use the /usr/bin/tzselect command in shell scripts: Asia/Tokyo
使用した教材
102-2. ユーザインターフェイスとデスクトップ
- X11のインストールと設定
- 「/etc/X11/xorg.conf」ファイルでXサーバの設定(入出力デバイスとスクリーンの指定等)ができる
- ファイルセクションで各種設定出来る(ServerLayout, Files, Module, InputDevice, Monitor, Device, Screen)
- 「xhost」コマンドをXサーバで実行しXクライアントに利用許可をする
- xhost [+-] [ホスト名](「+ ホスト名」で追加、「- ホスト名」で削除。「+」で全部許可、「-」で制限。)
- Xクライアントコマンドでウィンドウのサイズや位置等の情報を表示したりできる(showrgb, xlsclients, xwininfo, xdpyinfo, xvidtune)
- 「startx」コマンドでX Window Systemが起動する
- 「/etc/X11/xorg.conf」ファイルでXサーバの設定(入出力デバイスとスクリーンの指定等)ができる
- ディスプレイマネージャの設定
- アクセシビリティ
1. X11のインストールと設定
X Window System
- X Window System(別称:「X11」・「X」)とは、UNIX系OSで利用されるグラフィカルユーザインターフェース(GUI)環境
X.Orgの設定
セクション | 説明 |
---|---|
ServerLayout | 入出力デバイスとスクリーンの指定 |
Files | フォントやカラーデータベースファイルのパス名 |
Module | ダイナミックモジュールの設定 |
InputDevice | キーボードやマウスなどの入力装置の設定 |
Monitor | モニターの設定 |
Device | ビデオカードの設定 |
Screen | ディスプレイの色深度(表示色数)や画面サイズの設定 |
ネットワーク経由でのXの利用
- 「xhost」コマンドでXクライアントがXサーバを利用できるよう許可を与えることが出来る
xhost [+-] [ホスト名]
オプション | 説明 |
---|---|
+ ホスト名 | 指定ホストを接続許可リストに追加 |
- ホスト名 | 指定ホストを接続許可リストから削除 |
+ | 全て接続許可 |
- | 接続続許可リストを有効 |
例) remotepc(Xクライアント) ↓ネットワーク localpc(Xサーバ) ↓ rxt(端末エミュレータ) [lpic@localpc]$ xhost +remorpc // Xサーバで実行 [lpic@remotepc]$ DISPLAY=localpc:0 // Xクライアントで実行 [lpic@remotepc]$ export DISPLAY // Xクライアントで実行 [lpic@remotepc]$ rxvt & // Xクライアントで実行(localpcのディスプレイにremotepcで実行されているrxvtのウィドウが表示される)
Xクライアントコマンド
- X Window System上で、設定を確認したり、様々な情報を集めるコマンドが用意されている
コマンド | 説明 |
---|---|
showrgb | 利用可能な色とRGB |
xlsclients | 実行中のXクライアントを表示 |
xwininfo | 指定したウィンドウのサイズや位置、色深度などの情報を表示 |
xdpyinfo | ディスプレイ情報を表示 |
xvidtune | ディスプレイの表示画面(垂直位置や水平位置など)を調整 |
Xサーバの起動
- X Window Systemの起動の流れは次の通り
2. ディスプレイマネージャの設定
ディスプレイマネージャ
- ディスプレイマネージャとは、ユーザ認証とシェルの起動を扱うソフトウェア
- ディスプレイマネージャには「XDM」「GDM」「KDM」などがある
- XDMでログイン後に特定のアプリケーションを自動起動させたい場合、「/etc/X11/xdm/Xsession」ファイルに起動させたいアプリケーションパスを記述する(全ユーザに適用される)
- ユーザ独自の設定を行いたい場合、ホームディレクトリの「.xsession」ファイルに記述
XDMの設定ファイル | 説明 |
---|---|
xdm-config | XDMの基本設定(パスや基本的なアクセス許可など) |
Xaccess | XDMへのホスト接続許可 |
Xresources | ログイン画面をデザイン |
Xservers | Xサーバとディスプレイの対応 |
Xsetup_0 | XDM起動時(ログイン前)にカラー設定や背景の指定 |
Xsession | ログイン後に起動するプログラムの設定 |
条件 | Xの重要な設定ファイルとディレクトリ | 説明 |
---|---|---|
/etc/X11/xorg.conf | X.orgの基本設定ファイル | |
/etc/X11/xinit/Xclient | デスクトップ環境やウィンドウマネージャの起動(システム全体) | |
~/.Xclients | ユーザごとのXclientsスクリプト | |
startxで起動する場合 | ||
/etc/X11/xinit/xinitrc | startxやinitコマンドで読み込まれるスクリプト | |
~/.xinitrc | ユーザごとのxinitrcスクリプト | |
XDMで起動する場合 | ||
/etc/X11/xdm/Xsession | /etc/X11/xinit/xinitrc.d/ディレクトリ以下のファイルを呼び出しやウィンドウマネージャの起動 | |
~/.xsession | ユーザごとのXsessionスクリプト | |
/etc/X11/Xresources | ログイン画面のデザインやXクライアントの設定 | |
~/.Xresources | ユーザごとのXクライアントの設定 |
ウィンドウマネージャ
- ウィンドウマネージャがXの外観(ウィンドウの外観、メニュー、アイコン等)を制御している
ウィンドウマネージャの種類 | 説明 |
---|---|
twm | 最小限の機能 |
tvwm | 少ないメモリでも軽快に動作 |
Sawfish | Gnomeでの利用にフォーカス |
enlightenment | 高度なカスタマイズが可能 |
Metacity | Gnome標準 |
Fluxbox | 警戒でカスタマイズ性の高い |
WindowMaker | NextStepに似たGUIを提供 |
KWin | KDE標準 |
デスクトップ環境
3. アクセシビリティ
- ユーザー補助機能全般をアクセシビリティという
- その中で、障害者を支援するためのソフトウェアを「AT(Assistive Technology)」という
キーボードのアクセシビリティ
アクセシビリティ | 説明 |
---|---|
スティッキーキー | 複数キー同時押しが困難な場合、同時に押さなくても押したと認識する機能 |
スローキー | 正確にキーを入力できない人のための補助機能、キー押下認識時間を遅くしたり |
バウンスキー | 素早く何度も押したり押し続けた場合、入力を無視する |
トグルキー | キーロック時に音を出して認識させる |
マウスキー | マウスの代わりにテンキーでマウスのポインタを移動させたり、クリック操作をする機能 |
その他のアクセシビリティ機能
アクセシビリティ | 説明 |
---|---|
ハイコントラスト | 視覚障害者用にコントラストを強調 |
スクリーンリーダー | スクリーン上の文字を点字データや音声に変換 |
点字ディスプレイ | 文字データを点字に変換して表示する点字端末 |
スクリーン拡大鏡 | スクリーンの一部を拡大 |
オンスクリーンキーボード | マウスを使ってキーボード入力が出来る |
アクセシビリティを実現するソフトウェア | 機能 |
---|---|
Orca | スクリーンリーダー、スクリーン拡大鏡など |
GOK(Gnome Onscreen Keyboard) | オンスクリーンキーボード |
emacspeak | エディタEmacsにスクリーンリーダ機能を追加 |