ねもぷらす

ふぁいんでぃんぐねもの日記。プログラミングとか育児とか

負け戦

ユーザインタフェースとデスクトップ

  • X Window System(X11)、主流は X.org
    • 設定ファイル:/etc/X11/xorg.conf
    • 設定はセクションごとに設定。
    • リモートPC が ローカルPC の X サーバを使う。あべこべ。
    • ローカルPC は xhost コマンドでリモートPCの利用を許可する。 xhost +リモートPC
    • リモートPCは環境変数DESPLAY に Xサーバを指定する。export DISPLAY=ローカルPC:0
  • Xクライアントコマンド
    • showrgb:使える色を表示
    • xlsclients:実行中のXクライアントを一覧
    • xwininfo:ウィンドウ情報を表示
    • xdpyinfo:ディスプレイ情報を表示
  • ディスプレイマネージャ
    • ユーザ認証とシェルの起動を扱うソフトウェア
    • ディスプレイマネージャがウィンドウマネージャを呼び出す。
    • 主なディスプレイマネージャ:XDM、GDM、KDM
    • /etc/X11/ の下にディスプレイマネージャ名のディレクトリが作られ、その下に設定ファイルが置かれる。
  • ウィンドウマネージャ
    • Xの概観を制御。いろいろあるよ
    • GNOMEとかがコレ。
  • アクセシビリティLinuxは人に優しい
    • スティッキーキー:修飾キーを押したままの状態(ラッチ)にする
    • バウンスキー:連続でキーを押しても入力とみなさない
    • スローキー:キーの認識にあわせて音を出したり。ゆっくりしていってね
    • トグルキー:NumLockとかランプの光るキーについて音も出す機能
    • マウスキー:マウスをキーボードで

システム管理(序)

  • /etc/passwd
    • hoge:x:1001:1001:hoge hoge:/home/hoge:/bin/bash
    • ユーザ名
    • パスワード、/etc/shadow に暗号化されておる。
    • ユーザID
    • プライマリグループID
    • コメント
    • ホームディレクトリ
    • デフォルトシェル
  • /etc/group
    • 「s」をつけたら腹を切ること。
    • foo:x:1001:hoge,bar
    • グループ名
    • グループパスワード、どう使えるのか不明
    • グループID
    • メンバ
  • useradd
    • コメント:-cコメント
    • ホームディレクトリ: -d パス
    • プライマリグループ: -g グループ名 or ID
    • サブグループ: -G カンマ区切り
    • ログインシェル: -s パス
    • デフォルトの表示: -D
    • さいごにユーザ名。
    • ちなみにホームディレクトリの雛形は /etc/skel
  • usermod
    • ロック:-L ユーザ名
    • アンロック: -U ユーザ名
  • userdel
    • ホームディレクトリも削除:-r
  • passwd
    • ログインパスワードを変更
    • ロック(-l)、アンロック(-u)もできちゃう
  • グループ関連
    • groupadd : 追加
    • groupmod : -g…GID変更、-n…グループ名変更
    • groupdel : 削除、プライマリグループの設定ユーザがいる場合削除できない。
  • cron
    • crontab で設定。
    • /var/spool/cron/ 下にユーザ名のファイルが作られる。
    • /etc/cron.allow があれば、記載されたユーザのみ利用可
    • 上記が無くて /etc/cron.deny があれば、記載されたユーザは利用できない
    • どっちもなければ全員利用可
  • at
    • 予約中ジョブ一覧:-l
    • ジョブ削除:-d ジョブ (=atrm)
    • ファイル指定: -f ファイルパス
    • 利用者制御はcronと同じでファイル名が「at」

システム管理(破)

  • hwclock ハードウェアクロック
    • 表示:-r
    • システムクロックを更新:-w or --systohc (システム TO ハードクロック)
    • ハードクロックをシステムクロックで上書き:-s or --hctosys
  • ntpdate タイムサーバ
    • 自ネットワーク内にNTPサーバを立てる。/etc/init.d/ntpd start
    • 設定ファイルは /etc/ntp.conf
  • syslog :システムログ
    • 設定ファイルは /etc/syslog.conf
      • kern.* /var/log/kernel
      • カーネルの出すメッセージはプライオリティに問わずログファイルに書き込み
    • ファシリティ: メッセージ出力元。カーネルや実行中プロセスを指す
      • auth : 認証
      • cron : クーロン
      • deamon : 各種デーモン
      • kern : カーネル
      • lpr : 印刷システム
      • mail : メールシステム
      • syslog : syslog機能
      • local0〜local7 : 独自に設定
    • プライオリティ優先度
      • emerg : エマージェンシ、緊急事態
      • alert : アラート、早急な対応が必要
      • crit : クリティカル、危険な状態
      • err : 一般的なエラー
      • warning : 警告
      • notice : 重要な通知
      • info : 通知
      • debug : デバッグ
      • none : ファシリティを無効にするとき使用。
    • 出力先
      • ファイル名:ファイルへ出力
      • @ホスト名:指定したホストのsyslog へ移管
      • ユーザ名:ユーザ端末に表示
      • * : すべてのユーザ端末に表示
    • logger : syslog設定のテスト
      • logger -p ファシリティ.プライオリティ -t タグ メッセージ
  • 監視
    • who:ログイン中のユーザを一覧
    • w : ログインユーザ+システム情報
    • last : 最近ログインしたユーザ
    • lastlog : ユーザごとの最終ログイン情報
  • logrotate
    • /etc/logrotate.conf
  • メール管理
    • mail : メールの送受信
    • mailq : 送信待ちメールの確認
    • 転送
      • /etc/aliases → newaliases
      • ~/.forward
  • 印刷関連コマンド: 試してない。丸暗記でなんとか…
    • 印刷: lpr -#部数 -P プリンタ名 ファイル名
    • キュー確認: lpq -P プリンタ名
    • 印刷キュー削除:lprm -P プリンタ名 - ::ハイフンを付けると全削除

ネットワークの基礎

あ、プレゼントね、デブ。
アプリケーション層
プレゼンテーション層
セッション層
トランスポート層
ネットワーク層
データリンク層
物理層

クラス IPアドレス サブネットマスク プライベートアドレス
A 0.0.0.0〜127.255.255.255 255.0.0.0 10.0.0.0〜10.255.255.255
B 128.0.0.0〜191.255.255.255 255.255.0.0 172.16.0.0〜172.31.255.255
C 192.0.0.0〜223.255.255.255 255.255.255.0 192.168.0.0〜192.168.255.255
  • ウェルノウンポート
ポート サービス
20,21 FTP
22 ssh
23 telnet
25 SMTP
53 DNS
80 HTTP
110 POP
161 SNMP(ネットワーク監視)
443 HTTPS
$ whois google.co.jp
[ JPRS database provides information on network administration. Its use is    ]
[ restricted to network administration purposes. For further information,     ]
[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]

Domain Information: [ドメイン情報]
a. [ドメイン名]                 GOOGLE.CO.JP
e. [そしきめい]                 ぐーぐるかぶしきかいしゃ
f. [組織名]                     グーグル株式会社
g. [Organization]               Google Japan
k. [組織種別]                   株式会社
l. [Organization Type]          corporation
m. [登録担当者]                 DL152JP
n. [技術連絡担当者]             TW184JP
p. [ネームサーバ]               ns1.google.com
p. [ネームサーバ]               ns2.google.com
p. [ネームサーバ]               ns3.google.com
p. [ネームサーバ]               ns4.google.com
[状態]                          Connected (2011/03/31)
[登録年月日]                    2001/03/22
[接続年月日]                    2001/03/22
[最終更新]                      2010/04/01 01:21:27 (JST)
  • ネットワーク設定
    • /etc/hostname : GNU/Linux系のホスト名設定ファイル
    • /etc/hosts : ホストとIPアドレスを対応付け
    • /etc/nsswhich.conf : 名前解決順序
    • /etc/resolv.conf : DNSサーバ、ドメイン名を設定。
    • /etc/sysconfig/network : RedHat系で使用。ネットワーク機器の設定
    • /etc/sysconfig/network-scripts/ : ネットワークインターフェースの設定ファイル格納
  • ネットワークのトラシュー
    • ping ホスト名: ICMP
    • traceroute ホスト名: パケットの経路を一覧
    • tracepath ホスト名: tracerouteとおなじ
    • host ホスト名 : DNSサーバへ問い合わせてホスト・ドメインの情報を取得
    • hostname : 自端末のホスト名を表示。引数を渡すと変更する
    • netstat:重要
      • netstat -atun : すべてのソケット、TUP、UDP、アドレス・ポート番号での表示
      • netstat -r : ルーティング表示。routeコマンドと同じ
    • route:ルーティングの表示・設定
      • route
      • route add -net 192.168.0.0 netmask 255.255.255.0 gq 172.30.0.254
  • ネットワークインターフェース
    • ifconfig

ifup / ifdown

セキュリティ

  • 開いてるポートを確認
    • netstat -atun
    • lsof -i -n
    • nmap 対象ホスト名
  • find / -perm -u+s -ls : SUID が設定されているファイル一覧
  • find / -perm -u+g -ls : SGID が設定されているファイル一覧
  • chage : パスワード管理
    • changeと間違えたら腹を(ry
    • 対話型でも動くし、オプション指定でコマンドラインからも使える
    • chage -m [変更不可期間(日)] -M [最大有効期間(日)] -d [最終更新日(yyyy-mm-dd)] -W [警告開始日数] -l [有効期限経過後から使用不可にするまでの日数] -E [アカウント無効となる日(yyyy-mm-dd)] ユーザ名
    • 実行結果は /etc/shadow に反映される。
  • ログイン禁止
    • /etc/nologin ファイルを作成することで、rootアカウント以外ログインすることができなくなる
    • ユーザのログインシェルを /sbin/nologin とすると、該当アカウントはログインできなくなる。
      • usermod -s /sbin/nologin ユーザ名
  • sudo
    • visudo コマンドで利用者を管理
    • デフォルトエディタで /etc/sudoers が開かれる。
    • ユーザ/グループ名 ホスト名=(実行ユーザ) NOPASSWD:許可コマンド
    • wheelグループの全員がsudoコマンドを利用可能にする場合
      • %wheel ALL=(ALL) NOPASSWD:ALL
  • ulimit : リソースの制限
    • ulimit -a : 制限の設定値を表示
  • OpenSSH
    • sshd設定ファイルは /etc/ssh/sshd_config
    • クライアントが接続先に間違いないか、改ざんされてないか「ホスト認証」を行うことができる。
    • ~/.ssh/known_hosts にホスト認証鍵が記録される
  • 公開鍵認証
    • ssh-keygen : 公開鍵・秘密鍵ペアを作成
      • DSA秘密鍵: id_dsa
      • DSA公開鍵: id_dsa.pub
      • 作成した公開鍵を接続先ホストの ~/.ssh/authorized_keys に追記する
      • 次回ログイン以降、ssh-keygen コマンドで入力したときのパスフレーズを聞かれる事となる
      • パスフレーズの入力を省くには ssh-agent を使う。
      • ssh-agent bashssh-agent の子プロセスのbash を立ち上げ、ssh-add コマンドで登録。
      • ssh-add -l で登録の一覧を見れる
GnuPG : ファイルの暗号化
  • 準備
    • gpg --gen-key : 公開鍵・秘密鍵ペアを作成
    • gpg --list-keys : 作成した鍵を確認
    • gpg -o [失効証明ファイル名] --gen-revoke [メルアド] : 鍵の失効証明書
    • gpg --import [失効証明ファイル名] : 鍵を無効化する
  • 受け渡し
    • gpg -o [出力ファイル名] -a --export [メルアド] :送り元が鍵をエクスポート
    • gpg --import [ファイル名] : 送り先が鍵をインポート
      • gpg --list-keys : インポート済み公開鍵一覧
    • gpg --sign-key [メルアド] : 鍵を承認
    • gpg -e -a -r [送り先メアド] [暗号化ファイル名] : 送り元で暗号化
    • gpg [暗号化ファイル名].asc : 送り先で復号化。鍵作成時に付けたパスフレーズを入力する

おさらい終了。
結局赤本しか読んでない、今日の午後が正念場。