Gitの脆弱性対応した話。 コマンドメモ
gitの脆弱性対応するよ
gitのcloneのオプションで再帰的にcloneする「recursive」を使うと脆弱性が再現できるらしい。。 どんな脆弱性かは
https://oss.sios.com/security/git-security-vulnerabiltiy-20170813
こちらをみるととてもよくわかる。
参考サイト
https://togetter.com/li/1141394
どうやら、このリポジトリをcloneするともりもりするらしい。。 なんだか楽しそう。。
もりもりする。
update前
$ rpm -q --changelog git
- 金 3月 18 2016 Petr Stodulka pstodulk@redhat.com - 1.7.1-4.1
fix heap overflow CVE-2016-2315 CVE-2016-2324 Resolves: #1318252
火 2月 26 2013 Adam Tkac
1.7.1-4 fix CVE-2013-0308
木 12月 16 2010 Adam Tkac
1.7.1-3 fix CVE-2010-3906
火 7月 27 2010 Adam Tkac
1.7.1-2 - fix CVE-2010-2542 (#618108) ~略
$ sudo su - # git clone --recursive https://github.com/greymd/CVE-2017-1000117.git test/
git cloneするともりもりした!!!!
もりもりしないようにupdateする
# yum update git # rpm -q --changelog git
* 金 8月 11 2017 Petr Stodulka pstodulk@redhat.com - 1.7.1-9 - prevent command injection via malicious ssh URLs Resolves: CVE-2017-1000117
* 木 12月 08 2016 Petr Stodulka pstodulk@redhat.com - 1.7.1-8 - fixes previous patch which add -f option for "git submodule add" which incorectly used unsupported option --ignore-missing for "git add --dry-run" - add control of GSSAPI credential delegation to enable HTTP(S)-SSO authentication Resolves: #1207253 #1368384 ~以下略
CVE-2017-1000117の脆弱性の修正がされている模様。 もう一度テストもりもり実行する。
$ git clone --recursive https://github.com/greymd/CVE-2017-1000117.git test
Initialized empty Git repository in /home/uchida/test/.git/
remote: Counting objects: 18, done.
remote: Compressing objects: 100% (5/5), done.
Unpacking objects: 100% (18/18), done.
remote: Total 18 (delta 1), reused 4 (delta 1), pack-reused 12
Submodule 'morimori' (ssh://-oProxyCommand=sh<file /morimori) registered for path 'morimori'
Initialized empty Git repository in /home/uchida/test/morimori/.git/
fatal: strange hostname '-oProxyCommand=sh<file ' blocked
Clone of 'ssh://-oProxyCommand=sh<file /morimori' into submodule path 'morimori' failed
もりもりしなくなったので これにて完了です
シンボリックを作成・削除したい話
何度もgoogle先生に聞いているのでいい加減覚えるためにメモ。
シンボリック作成
$ ln -s ファイルパス リンク名
例
$ ln -s /var/www/vhosts/myproject my_project $ ls -la lrwxrwxrwx. 1 vagrant vagrant 31 6月 5 15:00 2017 my_project -> /var/www/vhosts/myproject
シンボリックを削除
$ unlink シンボリック名
注意点
$ rm シンボリック名/
シンボリック名の後ろにスラッシュをつけると、実態が削除されてしまうので超絶注意すること!! 削除だからといって、いつもうっかりやってしまうので。。。
Vimのプラグイン管理ツール「neobundle」をインストールした話
neobundleをインストールするぞ
参考サイト
http://yukihir0.hatenablog.jp/entry/2013/08/17/222339 http://holypp.hatenablog.com/entry/20110321/1300722152
やること
設定ファイルをGit管理する
vimの設定ファイルは~/.vimrc これをGit管理して、会社のPCでも共有できるようにする。
具体的には、dotfilesというgit管理用のディレクトリを作成して、~/.vimrcを一度移動させ そのあとシンボリックで~/.vimrcをdotfiles/.vimrcに向ける
$ cd ~ $ mkdir dotfiles $ mv .vimrc dotfiles $ mv .bash_profile dotfiles $ mv .vim dotfiles
シンボリック作成
$ ln -s dotfiles/.vimrc .vimrc $ ln -s dotfiles/.bash_profile .bash_profile $ ln -s dotfiles/.vim .vim
git remote登録
$ git remote add origin git@github.com:harurururu/dotfiles.git $ git push origin master
neobundle install
$ curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh > install.sh $ chmod u+x install.sh $ ./install.sh
install.shを実行すると~/.vim/bundleができる
プラグインを使えるようにする
$ vim ~/.vimrc
こちらのサイトに記載があるvimrcの中身をコピぺする
http://qiita.com/puriketu99/items/1c32d3f24cc2919203eb
一回:wqで保存終了し、もう一度vimをたちあげる。 ノーマルモードで、:NeoBundleInstall とするとプラグインのインストールができる。。。はずだった
Error detected while processing /Users/uchidaharuka/.vimrc: line 10: E117: Unknown function: neobundle#begin line 14: E492: Not an editor command: NeoBundleFetch 'Shougo/neobundle.vim' line 17: E492: Not an editor command: NeoBundle 'Shougo/neosnippet.vim' line 18: E492: Not an editor command: NeoBundle 'Shougo/neosnippet-snippets' line 19: E492: Not an editor command: NeoBundle 'tpope/vim-fugitive' line 20: E492: Not an editor command: NeoBundle 'ctrlpvim/ctrlp.vim' line 21: E492: Not an editor command: NeoBundle 'flazz/vim-colorschemes' line 24: E492: Not an editor command: NeoBundle 'Shougo/vimshell', { 'rev' : '3787e5' } line 27: E117: Unknown function: neobundle#end line 34: E492: Not an editor command: NeoBundleCheck Press ENTER or type command to continue
なんだかすごい量のえらーが。。。 vimrcを見直してみる。
set runtimepath^=/home/vagrant/.vim/bundle/neobundle.vim/
このパスがあやしいので、以下に変更
set runtimepath^=~/.vim/bundle/neobundle.vim/
再度vimを起動し、:NeoBundleInstallと打つ
gitコマンド使うときパスワードを聞かれないようにしたい
毎度毎度、githubのログインIDとパスワードを求められてしまうので今回の対応を行う
参考サイト
http://qiita.com/suthio/items/2760e4cff0e185fe2db9
http://qiita.com/0084ken/items/2e4e9ae44ec5e01328f1
鍵ペア作成
$ ssh-keygen -t rsa -b 4096 -C "XXXX@gmail.com" -f ~/github_key
-Cで鍵にコメントがつけられるので、メールアドレスを記入する パスフレーズは今回は使用しない
githubに公開鍵登録
クリップボードにコピーする
$ pbcopy < ~/github_key.pub
githubのaccountsのsettingsから、SSH and GPG keysを選択し ペーストする 赤丸のところ
sshのconfigを設定
$ vi ~/.ssh/config
以下を追記
Host github.com
HostName github.com
Port 22
User git
IdentityFile ~/.ssh/github_key
TCPKeepAlive yes
IdentitiesOnly yes
設定は以上。 あとはリポジトリがhttps://~になっているのをsshにしてあげれば完了!
$ git remote set-url origin {{SSHのリポジトリ}}
マークダウンアプリ macdownをインストールしてみた
macdownをインストールしたいのだ
osをyosemiteからsierraにアップデートしたら マークダウンアプリのMouが使えなくなってしまった。。しょんぼり
調べてみたら、macdownとうアプリがmouの後継者らしいので インストールをしてみる。
zipでインストール
公式サイトから Download MacDownをクリックしてzipを落とす http://macdown.uranusjr.com/
ダウンロードしたzipを展開し、MacDown.appをApplicationフォルダに移動 いざ、起動
ひらけない。。。 これは、すべて許可したらセキュリティ的によくないのではないか。。??
brew installしてみる
これぞmac使い!ってコマンドbrewです まだ使い方がよくわからないけれど brew cask installってすると依存関係のライブラリをひっくるめて取得してくれるらしい。
$ brew cask install macdown
⇒ brew cask install macdown
==> Downloading https://github.com/MacDownApp/macdown/releases/download/v0.6.4/MacDown.app.zip ######################################################################## 100.0% ==> Verifying checksum for Cask macdown
==> Installing Cask macdown
Error: It seems there is already an App at ‘/ > Applications/MacDown.app’.
Error: nothing to install
すでにMacDown.appが存在していたのでエラーになりました。 再チャレンジ
⇒ brew cask install macdown
==> Downloading https://github.com/MacDownApp/macdown/releases/download/v0.6.4/MacDown.app.zip Already downloaded: /Users/uchidaharuka/Library/Caches/Homebrew/Cask/macdown–0.6.4.zip
==> Verifying checksum for Cask macdown
==> Installing Cask macdown
==> Moving App ‘MacDown.app’ to ‘/Applications/MacDown.app’.
==> Linking Binary ‘macdown’ to ‘/usr/local/bin/macdown’.
🍺 macdown was successfully installed!
無事成功です!
やたー
起動すると
かいてみる かっちょいい!
nkfコマンドで文字コードを判別する
ENT_NOQUOTESについて
htmlspecialcharsの第二引数にENT_NOQUOTESを指定すると
ダブルクオーテーションとシングルクォーテーションがへんかんされない。