LPIC1のメモ
LPICレベル1を目指して。。。2018年6月5日更新 P443〇Linuxの仕組み的なTCP Wrapper/etc/hosts.allow/etc/hosts.denyを読み込むhttpはTCP Wrapperで保護されない。GPG設定ファイルの格納ディレクトリ~/gnupgSSHのknown_hostsに格納される情報・ホスト名・IPアドレス・公開鍵/etc/ssh_known_hosts:すべてのユーザがreadできる。PermitRootLogin=noでrootはSSHでログインできないsshのプロキシssh -o ProxyCpmmand="ssh -p 221 -W Server2:222 server1" localhostsshクライアントで「ForwardX11 yes」、サーバで「X11 Forwarding yes」を設定することで、X11のポート転送が可能サーバ側で公開鍵を保存するファイルauthorized_keysssh-agent:複合化された秘密鍵をメモリに保存するエージェントcups:Linuxのプリントサービス/etc/cups/printers.confに設定情報ありlpadminコマンドでプリンタの設定や削除を行うlpq、lpc、lpstat:プリンタのキューを表示するコマンドGhostScript:PostScriptデータを非PostScriptデータに変換する〇ネットワーク関連代表的なメール転送エージェントPostfix、Sendmail、Exim(イクシム)※現時点では、Eximのシェアが大きい。参考サイトhttp://www.securityspace.com/sspace/index.html2018年分ネットワークアプリケーションはnsswitch.confを参照し、名前解決を行う。/etc/nsswitch.conf内のhosts:行にDNSサーバを指定するユーザがroot権限でアプリケーションを実行できるかどうかの判断/etc/sudoersinetd、xinetdはネットワークからのリクエストを受け付けるデーモン設定ファイルはそれぞれ、/etc/inetd.conf/etc/xinetd.confメールの配送/var/mail or /var/spool/mail不正アクセスを11.22.33.44から受けている場合ip route add 11.22.33.44 gw 127.0.0.1 lo/etc/hostsipアドレス ホスト名/etc/resolv.conf問い合わせを行うDNSサーバについて記載/etc/services:サービス名 ポート番号/プロトコル 別名ネットワークを介したサービスのやり取りを記載Linuxの起動シーケンス1.電源投入2.BIOSの起動3.ブートローダの読み込み4.カーネルの読み込み5.initプロセスの実行6.システムタスク、サービスの実行7.ログイン画面の表示GRUBGRUBとはOSを起動するために必要なブート・ローダと呼ばれるプログラムの1つ。ブート・ローダでLinuxで主に使われているのがGRUB(GRand Unified Bootloader)。GRUBの設定ファイル/boot/grub/grub.conf/boot/grub/menu.listGRUBの設定ファイル内の記載root(hd1,4)読み方の例として、「hd0,0」の場合、一つ目のHDDの一番最初のパーティションとなる。〇コマンドgpg:GPGの暗号化コマンド。「-edit-key」を付けることでユーザの鍵管理を対話形式で行うssh-keygen:SSHで使用する公開鍵、秘密鍵の生成newaliases:メールアドレスのエイリアスを作成(メールアドレスの追加なし)mailq:メールの配送キューの情報を表示※もしくはメールキューのディレクトリのファイルをlsで表示することでも可能dig、host:ホスト名に対応するIPアドレスを名前解決するroute add {-host or -net} 172.16.0.0 netmask 255.255.0.0 gw172.16.255.254ip:ルーティングテーブルの表示や、ネットワークインターフェースの表示lsof:プロセスがオープンしているファイルを表示するコマンドifconfig:ネット―枠の表示、設定コマンドnetstat:アクティブなネットワーク情報やルーティンぎテーブルを表示する※反応がない場合に考えられる問題⇒DNSの応答がないiconv:ファイルの文字コードを変更lsof:ファイルシステムにアクセスしているプロセスを表示locale:現在のロケール情報(言語、国などの情報)を表示するlogger:任意のファシリティ、プライオリティのメッセージをsyslogに送るlogrotate:古いlogを別名で保存し新しいファイルを作成するコマンドhwclock:マザーボード上のハードウェアクロックとシステムクロック間の同期を取るコマンドdate:上記に対して、システムクロックのみを設定するコマンドリファレンスクロック→原子時計、stratum0。NTPサーバはstratum1。また、時刻同期にはroot権限が必要crontab:決められた時刻に特定のコマンドを実行するコマンドcronはジョブスケジューラcrontabは/etc/crontabに配置cronコマンドのフィールドの見方分 時 日 月 曜日 コマンド※各行の区切りは改行anacron:システム保守のためのログの削除コマンドなどを実行/etc/cron.daily等を参照する。ユーザのパスワードの有効期限やパスワード失効期限を設定するコマンド・usermod・passwd・changelast:最近ログインしたユーザを表示。/var/log/wtmpを参照する。who:現在ログインしているユーザを表示する。/var/run/utmpを参照する。ulimit:プログラムのリソースを制限するコマンド。gok:Gnome Onscreen Keyboard。スクリーンキーボードの起動。emacspeak:目の不自由な人のためのテキストを読み上げる機能groups:自身のグループ名を表示する。groupadd:グループの追加groupdel:グループの削除usermod:ユーザのグループ変更useradd:ユーザの作成コマンド。-Dオプションでインアクティブの期間後に無効化する。change:ユーザの有効期間の変更・「-l」で参照userdel -r ユーザ名userdel -force -remove ユーザ名:ユーザとホームディレクトリを削除する2つのをキー入力を同時にできない人のための機能後押しで、同時入力と同等とする機能スティッキー・キースロー・キーバウンス・キーuseradd:ユーザの登録コマンド。初期登録時は/etc/passwdは「x」表示、/etc/shadowは!!表示となる。seq:seq 数字でその数字まで1ずつ足して表示する。コマンドに$$をつけると自身のプロセスIDを表示する。[root@localhost ~]# echo $$56634$0はシェルの名前を表示[root@localhost ~]# echo $0-bashfunction関数を使うと、プロセスを呼ばずにシェルスクリプトのように動作できるfunction 関数名(){コマンド、echo等}alias:コマンドに別の名前を付けて、短い名前で実行させる。※削除はunalias※¥をつけると一時的にaliasを解除する。df:ファイルシステムの使用状況を表示するコマンドtune2fs:ファイルシステムをチェックする最大時間間隔を設定renice:プロセスの優先度を変更するtr:引数の文字列を削除するcat << 文字列上記のようにすると「文字列」を入力するまでプロンプトが表示され、文字列を入力するとそれまで入力したものが表示される。[root@localhost ~]# cat << END> line 1> line2> ENDline 1line2[root@localhost ~]#こんな使いかたも可能[root@localhost ~]# cat << END > test> line1~> line11> END[root@localhost ~]# cat testline1~line11xargs:標準入力から受け取ったファイルを引数にコマンドを実行[root@localhost ~]# head testline1~(headはファイルの先頭10行を表示するコマンド)line10上と同じ結果をxargsを使って実行[root@localhost ~]# ls test | xargs headline1~line10[root@localhost ~]#dd:指定されたブロックサイズでブロックを書き込むtee:標準入力を標準出力とファイルに書き出す。[root@localhost ~]# ls | tee testfileanaconda-ks.cfginitial-setup-ks.cfgtestfile[root@localhost ~]# cat testfileanaconda-ks.cfginitial-setup-ks.cfgtestfile[root@localhost ~]#dmseg:システム起動時にカーネルが画面に表示するメッセージを表示uname:マシンアーキテクチャやカーネルリリース情報を確認init 1/telinit 1(ランレベル)ほかのユーザのセッションを断ち切って管理者がメンテナンス実施ランレベル1はrootユーザのみのシングルユーザモードwall:ログインしているユーザ端末にメッセージ送付systemctl:systemdに管理されたサービスの起動、停止コマンドuname:マシンアーキテクチャやカーネルバージョンの情報を表示するコマンドwall:ログインしているユーザにメッセージを送る wall メッセージgrep:「-v」オプションをつけることで指定した文字列を含まない行を出力。expand:タブをスペースに変換するコマンド標準出力などLinuxに限らず大体のOSには「標準入力」「標準出力」「標準エラー出力」の三つがある。Linuxではデフォルトで・標準入力には0・標準出力には1・標準エラー出力には2が割り当てられる。2>&1のように「&」をつけることによって、2と1の出力を同一にできる。〇設定ファイル/etc/nologinこのファイルを「touch /etc/nologin」のようなコマンドで作成すると、それ以降、root以外のユーザはログインできなくなる。/etc/inittabシステムのランレベルの変更Ctrl+Alt+Delでもシャットダウンさせないという定義も可能/etc/skel配下のファイル、ディレクトリはuseraddでユーザ作成時に各ユーザに配布される。/etc/passwdすべてのユーザに読み取り権限がある/etc/shadowのパスワード暗号化方式は変更しても既存のものには影響はないまた、第2フィールドに*を入れるとログイン拒否が可能~/.bash_historyログアウト時にコマンドの実行履歴が保存されるなお、「~」はユーザのホームディレクトリ「\」等の特殊文字を文字として扱いたい場合は「\」でエスケープする。○ネットワーク関連Linuxをルータにするには、ネットワークインタフェース間の転送を許可する必要があるcat /proc/sys/met/ipv4/ip_forward〇vi関連i:カーソルの前に文字を入力I:カーソル行の先頭に文字を入力a:カーソルの後ろに文字を入力o:カーソル行の下に新しい行を作成し、先頭に文字を入力yy:カーソル行をコピーする。yyの前に数字を入れるとその行数コピーする。〇シェルスクリプト関連#!/bin/sh:シェルスクリプトの先頭行にあり、インタプリタを指定している。「$bash シェルスクリプト名」でも結果は同じ。シェルスクリプトのIF構文 if コマンド1 コマンド2 fi ※コマンド1の戻り値が0ならコマンド2を実行「test」コマンドは以下の形式で後続の条件式を判定する。「test 条件式」○その他プロセスの受け取るシグナル1 SIGHUP 制御端末(controlling terminal)のハングアップ検出、または制御しているプロセスの終了2 SIGINT キーボードからの割り込み (Interrupt)3 SIGQUIT キーボードによる中止 (Quit)4 SIGILL 不正な命令5 SIGTRAP トレース/ブレークポイント トラップ, IOT トラップ。SIGABRT と同義6 SIGABRT abort(3) からの中断 (Abort) シグナル7 SIGBUS バスエラー (不正なメモリアクセス)8 SIGFPE 浮動小数点例外9 SIGKILL Kill シグナル18 SIGCONT 一時停止したプロセスを再開するプロセスの優先度:-20~19、プロセスの優先度は「nice値」root以外でuidが500未満のユーザは、デーモンやディレクトリの所有者として利用するシステムアカウントで使われる。Linuxのオンラインマニュアルは/usr/share/manに配置される。Linuxのウィンドウマネージャ・metacity・kwinX windowのstartxはシェルスクリプトstartx→xinit→xinitrc→XClientsの順番で起動/etc/local以下のbinにはインストールするディレクトリxdplyinfo:Xwindo画面の色深度を表示するコマンドxwininfo:Xwindo画面の色深度を表示するコマンドxorg.confX window systemの解像度の設定ファイルFontの設定はFiles内のパラメータで変更xfs:Xorgのフォントサーバxhost +ホスト名:あるクライアント上の画面をネットワーク経由で配信する。※上記の問題点として、認証なしにサーバにアクセスできてしまう問題がある。xmodmap:キーボードのマッピングを変えるコマンドシステムのランレベルを3⇒5に変更した場合、ログイン画面が表示される。⇒画面はディスプレイマネージャが表示する。xresources:ログインの背景画面の設定ファイル。 グリーティングメッセ―ジの変更も可能。xdm-config:xdmが参照する基本設定ファイルXsetup_0:xdmの壁紙を変更linuxスワップパーティションは82(コード)/etc/inittabのファイルにランレベルを規定する=SysV init≒Upstartディストリビューションによって異なる。Systemctlで管理⇒systemdsystemdのターゲットsystemdはカーネルから起動される最初のプロセスPIDは1が割り当てられる。ターゲットはsystemdの管理対象で、ランレベルに相当するもの。RPM 【RedHat Package Manager】RPMとはRedHat社が開発したソフトウェアのパッケージ管理システム。RPMでパッケージ管理を行うディストリビューションを「RPM系ディストリビューション」などと呼ぶことがある。rpmコマンドを用いてバイナリをインストールしたり、ソースコードからバイナリを生成してインストールしたりすることができる。遠隔のサーバからHTTPやFTPでパッケージをダウンロードして展開することもできる。〇Xシステム関連Xサーバの強制終了:Ctrl+Alt+Backspace〇SQL関連事項・updateで変更する値はsetで指定・項目を消すのはdelete〇Linux関連事項pinglogger:pingの受信ログを見るツール/var/logのログboot.log :システムの起動や停止cron :crondのログdmesg :システム起動時にコンソールに表示されるログlastlog :ユーザのログインのログmaillog :メールサーバログmessages :ログインやデーモンの起動・停止ログsecure :セキュリティに関するログwtmp :ログイン・ログアウトxferlog :FTPによるファイル転送ログaccess_log :Webサーバのアクセスログerror_log :WebサーバのエラーログSSHのポートフォワーディングクライアントとサーバの間に仲介サーバとしておくことで、クライアントと仲介サーバ間の通信をSSHにより暗号化、接続先のサーバとの通信は平文で行うスーパーサーバ方式プロセスは非常駐、リクエスト受信するとxinetdにより起動される。スタンドアロンプロセスは常駐のため、レスポンスが早いセキュリティ的な話/bootは別パーティションが望ましい〇syslog関連Linuxにおけるsyslog収集ソフトウェアは以下のとおり・syslog・rsyslog(syslogの機能強化、互換性あり)・syslog-ng(syslogと互換性はない)・systemd journal(syslog、rsyslogとの互換性あり) journalctlコマンドで収集したログを表示できる/etc/syslog.confの書き方ファシリティ.プライオリティ アクション(出力先)アクションに「none」を指定すると、ログsの出力を無効化する/etc/protocolsTCP/IPで使えるプロトコルとIPヘッダの対応表を記載したファイル