vimの文字化け
概要
windowsで新規作成したファイルを、windows上のvmware(CentOS)でデフォルトのvimで開くと文字化け発生。文字化けを直した記録。
登場人物
encoding(enc) 内部処理に使用するエンコーディング
- 確認 :set enc
fileencoding(fenc) 現在開いているファイルのエンコーディング
- 確認 :set fenc
fileencodings(fencs) ファイルを開く時に適用するエンコーディング(値は複数指定可能)
- 確認 :set fencs
CentOSの.vimrc
文字コードに関する箇所
:set encoding=UTF-8
なぜ文字化けが起きたのか
ファイルの文字コードを確認
:set fenc? fileencoding=latin1
fileencodingsの指定がないので、utf-8になるかと思いきやlatin1でした。ぐぐると、latin1になったときは何かしら文字コードの判別に失敗しているとのことでした。 windowsで新規作成しているファイルなので、文字コードをsjisにしてみる。
エンコードを指定して保存する
:set fenc=sjis
文字コードを指定してファイルを開き直す
:e ++enc=sjis
どうなった
文字化けが直りました。 vimで開く際に正しい文字コード判別するために.vimrcにfileencondingsを追加。 これでどのファイルも正しい文字コードで表示してくれるはず。
:set fileencodings=ucs-bom,iso-2022-jp-3,iso-2022-jp,eucjp-ms,euc-jisx0213,euc-jp,sjis,cp932,utf-8
参考
お互いに依存しているrpmファイルのインストール
問題
rpm -ivh A エラー: 依存性の欠如: AはBに必要とされています
rpm -ivh B エラー: 依存性の欠如: BはAに必要とされています
え、、インストールできない。。
解決方法
rpm -ivh A B
同時に指定するべし
Systemdメモ
基本
Unitの種類 * target 複数のUnitをグループ化する * service サービスを起動
Unit名の拡張子で種類が分かる
設定ファイル
systemd全体の設定ファイル * /etc/systemd/system.conf * /etc/systemd/user.conf
特に–unitでの指定が無ければ、下記が読み込まれる
Unitの定義ファイル
/usr/lib/systemd/system デフォルトの設定内容
パッケージをインストールしたらここに.serviceが置かれるみたい。
/etc/systemd/system デフォルトから変更した内容
httpd /usr/lib/systemd/system/httpd.service
変更を加える場合
/etc/systemd/system/httpd.service.d/を作成
limits.confを作成
[service} LimitNOFILE=65536
Unitの定義ファイル2
/usr/lib/systemd/system/には、RPMパッケージが提供するシステム標準の設定を配置しておき、システム管理者が設定変更する場合は、/etc/systemd/systemにファイルをコピーした上で修正を加えます。
頂点
「default.target」というUnitを頂点
依存関係の骨組み
targetタイプのUnitで依存関係の枠組みを作成する
例えば、 /lib/systemd/system/multi-user.target には Requires=basic.target みたいなの書かれている
Requiresを辿って、枠組みを知ることができる?
はじめ
systemd は default.targetにアクセス。
ただし
/etc/systemd/system/default.target
ll /etc/systemd/system/default.target lrwxrwxrwx. 1 root root 37 5月 18 16:03 /etc/systemd/system/default.target -> /lib/systemd/system/multi-user.target
このリンクが起動時のランレベルに相当し、このリンクを変えるとランレベルが変更される
「 AはBに依存する」の定義方法
A.service
[Unit] Wants=B.service
方法2.AのwantsディレクトリにBのシンボリックリンクを作成 A.serviceファイルが存在するディレクトリ上に「A.service.wants」ディレクトリを作成し、このディレクトリ内にB.serviceへのシンボリックリンクを作成
/etc/systemd/system/multi-user.target.wants/ など
起動シーケンス
/usr/lib/systemd/systemd 起動
systemdが起動すると、はじめに「default.target」から「Requires/Wants」の関係をたどって、起動するべきUnitの全体を把握
起動対象の各Unitの「After/Before」の依存関係から起動順序を決定
systemdの起動でのメリット
systemdは、順序関係の情報をもとにして、複数のUnitをできるかぎり並列に起動していきます。
参考
CVEメモ
脆弱性関連情報流通体制
発見者→IPA→JPCERT/CC→IPA,JPCERT/CC,JVNで公表→ユーザ企業(この時点でここで脆弱性を初めて知ることが多いと思われる)
用語について
CVEとは
- MITRE社が管理する脆弱性のユニークなID。世の中の脆弱性はこのIDが付いている
- 世の中にはCERT/CCやHP、IBM、OSVDB、Red Hat、Symantecなど80を超える主要な脆弱性情報サイトがあり、MITRE社ではこれらのサイトと連携して脆弱性情報の収集と、重複のない採番
- CVEの管理団体が米国であるために日本での脆弱性情報が網羅されているわけではない様子
番号の付け方
- CVEでは脆弱性にユニークな識別番号 「CVE-ID」(CVE-登録時の西暦-通し番号の形式)です。
- 例
- 脆弱性「Heartbleed」は、2014年4月7日にCVE-2014-0160として発表されました。つまり、CVE-ID の構成から、2014年に0160番として登録
NIST
アメリカ国立標準技術研究所(National Institute of Standards and Technology、通称NIST) が過去に管理していた脆弱性情報データベースである。現在は機能強化されたNVDに移行している。
NVDとは
- NISTが管理している脆弱性情報データベース
- NISTはMITRE/CVEのスポンサーであり、CVEで命名された脆弱性情報の詳細情報をNVDで提供するという住み分けを行なっている。また、他の脆弱性情報データベースとの違いとして、Common Vulnerability Scoring System(通称CVSS)による危険度の採点を行なっている点が挙げられる。
JVNとは
- IPAとJPCERT/CCが共同で運営
- いち早く一般に周知することを目的に、早期警戒パートナーシップで取扱われた脆弱性関連情報や、協力関係を結んでいる海外のCERT等からの脆弱性対策情報を掲載
- なのでJVNをチェックすればほぼ世の中のCVEは把握できそう
CERT/CC
- コンピュータやインターネットのセキュリティに関する研究や情報発信を行なっているアメリカの研究機関
JPCERT/CC
- 国内向けのセキュリティ関連情報の提供や各国代表CSIRTとの連携窓口となっている機関
JVN iPedia
- JVNよりもさらに日本向け情報に特化したもの
- JVN iPediaは、国内外問わず日々公開される脆弱性対策情報を収集、蓄積することを目的とした脆弱性対策情報データベースです。目的の脆弱性対策情報を容易にご利用いただくために、様々な検索機能をご用意しています。
JVN、JVN iPediaとMITRE社\
JVNとJVN iPediaの違い?
- JVN iPediaはJVNの情報に加えて、「脆弱性対策情報データベース(JVN iPedia=ジェイブイエヌ アイ・ペディア)」には日々発見される脆弱性対策情報が収録JVN iPediaは日々発見される脆弱性対策情報を蓄積することで幅広くご利用いただくことを目的としています。JVNに掲載される脆弱性対策情報のほか、国内外問わず公開された脆弱性対策情報を広く公開対象とし、データベースとして蓄積しています。
- 一方、JVNでは、いち早く一般に周知することを目的に、早期警戒パートナーシップで取扱われた脆弱性関連情報や、 協力関係を結んでいる海外のCERT等からの脆弱性対策情報を掲載しています。JVNの詳細については「JVNとは?」をあわせて参照下さい。
まとめ
どこから情報収集するのか
- 日本向けのサイトになると思われる。JVN、JPCERT、JVN iPedia
- JVNが海外と連携しているので、JVNをチェックしていれば、ほぼ一般的なシステムの脆弱性運用の脆弱性チェックは網羅しているはず
脆弱性の対応
- 各ベンダーのサイトで確認する
- 基本的には、パッチや、アップデートで済むんじゃないだろうか??