ShellShock: サポート切れ Ubuntu 8.04 の bash にパッチを当てる
何と Ubuntu 8.04 のインストールされたサーバがまだ動いていました。
ShellShock に対応しようと思いましたが、Ubuntu 8.04 はサポート切れなので apt-get
でアップデートはできません。
以下、手動でインストールする手順:
mkdir src && cd src
wget http://ftp.gnu.org/gnu/bash/bash-3.2.48.tar.gz
tar zxvf bash-3.2.48.tar.gz
cd bash-3.2.48for i in $(seq -f "%03g" 49 52); do
wget -nv http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-$i
patch -p0 < bash32-$i
done./configure && make
sudo make install
sudo mv /bin/bash /bin/bash.old
sudo ln -s /usr/local/bin/bash /bin/bash
次のコマンドを実行して「vulnerable」と表示されなければOK:
env x='() { :;}; echo vulnerable' bash -c echo
参考資料:
Rails: モデルオブジェクトの特定の属性を選んで to_hash/to_json
今、ある Rails アプリケーションの User モデルクラスに id, name, email, created_at, updated_at という5つの属性があるとします。id = 1 の User オブジェクトに関して、name と email だけの値をハッシュまたはJSON文字列として返すにはどうすればいいでしょうか。
答え:
(1) ハッシュ化
u = User.find(1)
u.attributes.slice('name', 'email')
(2) JSON化
u = User.find(1)
u.attributes.slice('name', 'email').to_json
u.attributes.slice('name', 'email')
の代わりに u.attributes.except('id', 'created_at', 'updated_at')
としても構いません。多くの属性の中から少数の属性だけを省きたい場合は、こちらの方が便利です。
Rails 4.1: Implicit join references were removed
Rails 4.0 から Rails 4.1 にアップグレードすると、次のような警告が出ることがあります。
DEPRECATION WARNING: Implicit join references were removed with Rails 4.1.
Make sure to remove this configuration because it does nothing.
config/application.rb
等に次のような記述が残っているためです。
config.active_record.disable_implicit_join_references = true
この記述は不要(implicit join references は Rails 4.1 で廃止)なので、消してください。
Google Compute Engine: Ubuntu Server 14.04 LTS のイメージを登録する
2014年08月18日現在、残念ながら Google Compute Engine (GCE) の「イメージ」として Ubuntu を選択することはできません。
しかし、自分でイメージを作って登録すれば選べるようになります。
作り方は HOW TO INSTALL UBUNTU 14.04 LTS SERVER ON GCE に詳しく書いてあります。私は試していないのですが、たぶんうまく行くでしょう。
実は、既製のイメージも配布されていて、私はそちらを使いました。
イメージの登録は実に簡単。GCE のプロジェクト名を foo-bar-001 とすれば、次のコマンドを実行するだけです。
$ gcutil --project foo-bar-001 addimage ubuntu-14-04 gs://gcx-devops-images/ubuntu-14.04-image.tar.gz
ただし、他人が作った OS イメージをむやみに信用するのは危険です。配布者も「実運用環境では使うな」と言っています。
参考資料:
netbeans: プロジェクトウィンドウのエラーマークをリセットする方法(メモ)
NetBeans はファイルのパースエラーが解消した後も、エラーマークを表示し続けることがあります。
その場合は、NetBeans を終了し、キャッシュディレクトリを消して、再び NetBeans を起動すればエラーマークが消えます。
キャッシュディレクトリは、次の場所にあります。
- C:\Users\foobar\AppData\Local\NetBeans\Cache\8.0\ (Windows)
- /Users/foobar/Library/Caches/NetBeans/8.0/ (OS X)
- /home/foobar/.cache/netbeans/8.0/ (Linux)
foobarと8.0の部分は適宜読み替えてください。
参考文献:
サーバに設置したSSL証明書の確認(メモ)
サーバに設置したSSL証明書をターミナルから確認するコマンドは、次の通り:
openssl s_client -CApath /etc/ssl/certs -connect example.com:443 < /dev/null
OKな場合の結果:
Verify return code: 0 (ok)
NGな場合の結果の一例:
Verify return code: 21 (unable to verify the first certificate)