サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
qiita.com/kawaz
追記:openssh-7.3 以降なら ProxyJump や -J が使えます ホスト名を + で繋げることで多段Proxy接続も簡単に、がコンセプトだった本エントリの設定ですが、OpenSSH 7.3 から ProxyJump という設定が使えるようになったので、使えるなら ProxyJump を使う方が健全だし柔軟で使い勝手も良いのでそちらを覚えて帰ることをオススメします。 使い方は簡単で以下のような感じです。多段も行けるし、踏み台ホスト毎にユーザ名やポート番号を変えることも出来ます。 # 1. bastion.example.jp -> internal.example.jp ssh -J bastion.example.jp internal.example.jp # 2. bastion.example.jp -> internal.example.jp -> super-de
SSLの認証局とか証明書とか勉強し始めはホント難いよね このへんのSSL/TLSの仕組みって勉強し始めの頃は凄く難しく感じるのよね。分かりやすく解説してくれてるサイトってあんま見たこと無いし。 んで、 >>300,304 みたいなことは僕も昔考えたことあったわー、と懐かしみを覚えたのでレスってみた。 証明書を発行できるかどうかは証明書のフラグで決まっている、という >>303 の指摘も重要よね。 以下2chスレより引用 丁寧過ぎると評判のレスをしてるID:UyEJo1f2が僕なわけだがw 2chだとそのうち倉庫に行っちゃうかもしれないのでここにメモ。 【認証局】SSLに関するスレ 2枚目【ぼろ儲け】 http://hayabusa6.2ch.net/test/read.cgi/mysv/1286532904/298-309 298 :DNS未登録さん:2013/05/31(金) 13:31
glibcの脆弱性対策(取り急ぎiptables/firewalldで叩き落とす!)for CVE-2015-7547LinuxSecurityiptablesfirewalldglibc はじめに glibcでヤバメな脆弱性キター! 「glibc」ライブラリに脆弱性、Linuxの大部分に深刻な影響 - ITmedia エンタープライズ Google Online Security Blog: CVE-2015-7547: glibc getaddrinfo stack-based buffer overflow CVE-2015-7547: Critical Vulnerability in glibc getaddrinfo - SANS Internet Storm Center Carlos O'Donell - [PATCH] CVE-2015-7547 --- glibc ge
課金ポイントは3つ そんなに難しいことはないと思いますが 課金ポイントは3つ あります。 ストレージ容量 単純に保存容量に対して課金されます。 低冗長化ストレージを指定すると2割くらい安くできます。 ログだとか家族写真の保存だとかメインだとデータ転送よりここにお金がかかってきます。(容量でかいけど古いやつは殆どアクセスしないようなのはライフサイクル設定でGlacierに移動する手もあります) データ転送 課金されるのは(S3からの)送信だけです。受信(S3へのアップロード)は無料です。 また、インターネットへの送信と別のAWSリージョンまたはCloudFrontへの送信で別料金が設定されてますが、小~中規模のシステムならサーバ群は1リージョンに纏まってることが多いでしょうから、CroudFront利用時くらいにしかその料金は発生しないと思います。しかもCroudFront利用時は殆どのトラ
#!/bin/bash # 既存プロセスの標準出力と標準エラーを奪う http://bit.ly/1neWKth # ターゲットのPID pid=$1 [[ -d /proc/$1/fd ]] || exit 1 # 出力先はttyやファイルを指定 out="$2" # 出力先の指定がない場合は現在のttyを出力先にする if [[ -z $out ]]; then # プロセスに紐付いたttyを取得する http://bit.ly/1eDpRpu function search_tty() { local pid=${1:-$$} tty="" while [[ 1 -lt $pid ]]; do [[ -d /proc/$pid/fd ]] || break tty=$(readlink /proc/$pid/fd/1 2>/dev/null | awk '{print $1}') [
DI (Dependency Injection)ってのは日本語では依存性注入とも呼ばれ、大雑把に言うとAngularJSがコントローラなどに必要とされているコンポーネント(オブジェクト)をいい感じに渡してやる機能です。 ここでは特にAngularJSのDIがどのような仕組で動いてるか、そしてその独特なDIの実装にまつわるトラブルケースを説明します。 AngularJSのコントローラの書き方 まずはAngularJSの中心的な機能であるコントローラの書き方には、簡単版と面倒版の複数の書き方があることを抑えておきましょう。 パターン1(グローバル関数パターン) サンプルとかでよく見るのは↓こういうグローバル関数の形のコントローラです。
コマンドのパスを知りたいんじゃなく、コマンドの存在をチェックしたいだけならwhichよりhashを使ったほうが良いかもっていう話。→追記: typeが最強っぽい。 追記: command -vも良い。プログラムの存在チェックorパスを探したいだけなら互換性を考えると一番良いかも。 比較してみる whichよりhashよりtype=command -vが高速→typeまたはcommand -vの勝ち whichは実ファイルという実体があるプログラムです。hashとtypeはbashの組み込みコマンドです。なので当然ですがプログラムの起動コストがない分hashやtypeの方が速いです。 $ time bash -c 'for((i=0;i<10000;i++));do which perl; done >/dev/null' real 0m7.739s user 0m2.928s sys 0m
今日自分が体験したトラブル事例に、ユーザビリティ向上のための気づきがあったのでメモしておきます。 ※本文よりまず、このコメント、こっちに言いたいことが集約されてるのでまずはこっちを読むと早いです。 ※本文よりまず、このコメント、こっちに言いたいことが集約されてるのでまずはこっちを読むと早いです。 ※本文よりまず、このコメント、こっちに言いたいことが集約されてるのでまずはこっちを読むと早いです。 事例:登録時のパスワードでログイン出来ない!? 今日、とあるWEBサイトでユーザ登録を行った際に、登録時に入力したパスワードでログイン出来ないというトラブルがありました。 普通は自分の入力ミスを疑うところですが、登録もログインもコピペで入力しているので入力ミスはありえ無いと思っていました。 お問い合わせフォームからバグ報告 というわけでこれはバグだろうと、お問い合せフォームから以下のような内容の報告
これはコマンドの標準出力を1行ずつ f という変数に読み込んで何らかの処理を行うってやつです。 whileの中でやることがファイル操作などの一般的なことならこれで全然問題ないんですが、実行中のシェル環境に対する処理(具体的には変数の設定など)を行おうとすると期待通りにいってくれなくなります。例えばこんな感じ↓ # findで見つけたファイル名をfilesという配列変数に詰め込みたい files=() find -type f | while read -r f; do files+=("$f") done echo "${files[@]}" # 確かにfilesに値を入れた筈なのに空が出力される?? これはパイプで繋げると後ろのwhileがサブシェルで実行されてしまうために起こる現象です。噛み砕いて説明すると… 現在findを実行中のbashとは別に、パイプの後ろでもう一つのbashが起
去年の11月くらい(?)からスライドシェアでスライドを見終わると「勝手に次のスライドに遷移する」という余計なお世話な超絶にうざい機能が導入されたのだが、いい加減うざすぎるので切れて、寝る前に無効化するChrome拡張書いた。 Chrome拡張 slideshare next-slide disabler 実装は凄いシンプルだけど拡張で簡単導入できたら嬉しい人はいるかと思って公開した。 実装 document_endのタイミングでコレ実行してるだけ。 'use strict'; !function(t){t.parentNode.removeChild(t)}(document.querySelector(".next-container"));
クレデンシャルの送信 クロスオリジンのAJAXリクエストでクレデンシャル(クッキーの送信またはBASIC認証)を必要とする場合は、それを許可するオプションをフロント側Javascriptで付けておく必要があります。デフォルトではCORSリクエストでクッキーは送信されませんし、BASIC認証は送れません。 Fetch API の場合 fetch(url, { mode: 'cors', //クロスオリジンリクエストをするのでCORSモードにする credentials: 'include' //クレデンシャルを含める指定 })
時々必要になってその度にググってるんだけど自分用にまとめメモ 追記2015-10-15: 最強の多段SSH設定 も出来たので合わせて読んでみてください。 ケース1 サーバ構成 よくある↓こんな構成を想定 [MyPC] | _人人人人人人人人_ > インターネット <  ̄Y^Y^Y^Y^Y^Y^Y^ ̄ | |(EIP:54.178.xxx.yyy) ┌─ [projectX-bastion] ─┐ │ _人 人_ ├ [projectX-web1] (10.123.1.80) > VPC < └ [projectX-web2] (10.123.2.80)  ̄Y^ Y^ ̄ 接続情報 こんな情報が与えられて、どのサーバも authorized_keys とかを勝手に修正しちゃいけないとする。 projectX-bastion ユーザ: bastion 秘密鍵: projectX-bastion.
はじめに vim のプラグイン管理ではこれまで NeoBundle がデファクトだったけど、今後は dein.vim を使えってことなので移行してます。 で dein#add で追加したプラグインの設定をどこでどう書くかを色々試した結果、TOML管理機能を使うのが一番よさげ、という結論に至ったので、こうしておくとよさそうという現時点での僕の設定を書いておきます。 設定例 init.vim (neovimじゃない場合は.vimrcと読み替えてOK) は最終的に↓こんな感じに凄くシンプルになった。 if !&compatible set nocompatible endif " reset augroup augroup MyAutoCmd autocmd! augroup END " dein settings {{{ " dein自体の自動インストール let s:cache_home =
例えばNode.jsとかで作ったWEBサービスを外部に公開しようとした時に、80番ポートで公開したいけど一般ユーザだと1024番より上のポートしか使えない、かと言ってrootで実行はしたくない。そんなときは iptables でREDIRECTまたはDNATしてしまうのが便利です。 雑然としたメモレベルだけど備忘録として書いておく。 簡単な例 3000番ポートで動かしているサービスを80番で公開する例はこんなコマンドを打てはOK。
多分現在主流のRSSリーダーであるFeedlyが少し前にようやくAPIを公開してくれたので、オレオレリーダーを作る為の下調べをしてみた。最初戸惑ったが色々API叩いてるうちに大体わかってきたのでメモる。 APIドキュメント: http://developer.feedly.com/v3/ IDの種類と形式 userId - user/:userId feedId - feed/:feedUri categoryId - :userId/category/:categoryName 特殊カテゴリ: global.all, global.uncategorized tagId - :userId/tag/:tagName 特殊タグ: global.saved 認証手順 普通のOAuth2.0だが現在はredirect_uriが制限されているためサイト間認証は使えない。 http://local
command1 > out1 command2 > out2 diff out1 out2 rm -f out1 out2 これは Process Substitution という名前の機能です。 ちなみに echo <(command) すると /dev/fd/63 などと表示されます。 これは一時的に作られたファイルディスクリプタの名前で、そのファイルディスクリプタは実行されたcommandの標準出力に繋がっており、他のプログラムからはファイルと同じように扱うことが出来る、というわけです。 とっても便利なので、覚えといて損はないです。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back use
必要になったので実は初めて設定してみた。その際に、やりかたをぐぐりながら参考にしたサイト情報が結構余分な設定があったりなんだりしたので、自分用にまとめ直し。 sftp専用ユーザはユーザ名のprefixを決めておくと楽 設定が以下のように設定一つにまとめられるのと、 後で/homeを見たときに一目で こいつらはsftp専用ユーザだな と分かるので。
SSLサーバ証明書の設定に必要なもの 取得したSSLサーバ証明書を実際に設定する際には通常以下の3点が必要になります。 秘密鍵(CSRを作るために使ったもの) サーバ証明書(認証局から発行されたもの) 中間CA証明書(基本は認証局が配布してるんだが、探すのが大変なことがある) 中間CA証明書がよくわからん! 必要なもののうち、秘密鍵とサーバ証明書は1つずつしか無いので混乱は無いのですが、中間CA証明書というのは認証局によってはどこで配布されてるのかあるのか分かりづらいことも多いです。今まで見たパターンには以下のようなものがありました。 メールで送られてくるパターン サーバ証明書と一緒に本文に書いてあるパターン(即コピペで済むので楽ちん系) サーバ証明書と一緒にzip添付されてくるパターン(zipの中にcrtがいっぱい入っててどれをどう使えばよいかよくわからん!) サイトから落とすパターン
このエントリの内容は pattern - Vim日本語ドキュメント を見れば全て書いてある。 個人的によく見直すものを自分なりに整理してまとめなおしたものです。 メモ vimの正規表現には \ でエスケープする必要な文字がオプションによって変わる。これには magic / nomagic / very magic / very nomagic と4つのモードがあるけど、vim では magic モードを基本とします。 繰返し制御系(量指定子) a* は0回以上の a の繰り返しにマッチする。(最長一致) a+ は単に a+ という文字列にマッチする。 a\+ は1回以上の a の繰り返しにマッチする。(最長一致) a? は単に a? という文字列にマッチする。 a\? は0または1個の a にマッチする。 a\= は0または1個の a にマッチする。(\? と基本同じだが \? は後方検索
※ここに書いた僕のコードはBashの基本ルールを確認しながら構築した手法って感じですが、コメントでは別の良いやり方が紹介されてるのでそちらも要チェックです! ※この記事の手法は、区切り文字が1文字のみが対象です。2文字以上の区切り文字でjoin/splitをしたい場合はこの記事の手法は使えないので他の方法を頑張ってください。
はじめに 今どきのブラウザはではルールに従うことでクロスドメイン(クロスオリジン)のAJAXが出来ます。ルールというのは最低限、AJAXで取得するデータがある先のサーバがAccess-Control-Allow-Originヘッダを返すことです。 ただしこの仕様には関連ヘッダがやたら沢山あるので、やりたいことにたいして適切な設定するには記事後半の関連ヘッダまとめまで目を通しておくことをおすすめします。 単純なケースの .htaccess による設定例(オリジンの許可例) これらの設定サンプルは認証を必要としないシンプルなGETリクエストでCORSを行う為の設定です。 全て許可 一番簡単なのは以下のような設定です。これを .htaccess ファイルに書いておけばそのサイト上のコンテンツは他サイトから取得し放題ということになります。
Subject Alternate Names の略で、サーバ証明書のCN(Common Name)の別名というか追加名のこと。 普通サーバ証明書を買うと www.example.com など一つのホスト名がCNとして設定されたものが発行される。 ブラウザ等はサブドメインまで含めて完全一致でこのホスト名をチェックするから、www2.exmaple.com や example.com なんかのホスト名でアクセスすると証明書エラーが出る。でも www.example.com と example.com はサイトの中身同じだしどっちでもアクセスできるようにしたい。 だけどその為に証明書2枚も買うのはもったないし設定も面倒…。というのに対する一つの回答がSANという機能と思えば良い。より詳しいことは「Subject Alternate Names」でググれば分かる。 要は一つの証明書の中に2つ以上
今時のバージョンのOpenSSHではknown_hostsがハッシュ化されてて手動管理がしにくいし、スマートに決めたいのでコマンドでやってみる。 コマンド 結論から書くと↓こんな感じでOK。(target-hostnameのホストキーが変わった場合の例) host="target-hostname" ssh-keygen -R $host ssh-keyscan -H $host >> ~/.ssh/known_hosts ssh-keygen -R hostname は ~/.ssh/known_hosts から対象ホストのホストキーを削除してくれる。 複数あれば全部消してくれるしハッシュ化されてるのもされてないのも全部消してくれるので便利。 known_hostsファイルをエディタで開いてエラーメッセージで指摘された行数まで移動して手で削除するのなんかより100倍楽。 ssh-keys
作業の痕跡を探るにはhistoryコマンドが使えます。でも更に、このコマンドを実行したのは何時頃だっけ?ということを調べたくなったりします。例えば何かトラブルをやらかしてしまったときの原因調査の時とかね。ですがデフォルトでは実行時刻は分かりません。 そんな時に困ることが無いよう、普段から以下の設定をしておけばhistoryで各コマンドの実行時刻が表示出来るようになります。環境変数にexportせず単に変数をセットしておくだけでOKです。
.bashrc とかに以下の設定を書いておくと、bash -x や set -x 状態でスクリプト実行したときに、出力がリッチになってデバッグが捗ります。 # PS4の設定でシェルスクリプトのデバッグが捗る http://bit.ly/1gncKrn export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME:+$FUNCNAME(): }'
SSLサーバ証明書の設定で一番やらかしがちなのは中間CA証明書の設定ミスです。 PCブラウザでの鍵マーク確認だけじゃダメ! いまどきのPCブラウザだと証明書に記載されている Authority Information Access 拡張フィールドから中間CA証明書を自動DLしてくれたりキャッシュしたりする機能がある為、サーバに中間CA証明書が正しく設定されていなくても問題なく閲覧出来てしまう。 便利だが、それ故に確認ツールとしてブラウザを使ってしまうと中間CA証明書の設定漏れに気が付かずに置かれた結果、中間CA証明書の自動DL機能のない(主には)携帯端末などからアクセスできなくなって初めて設定漏れに気付く。 なんてことがよくあるのでブラウザじゃなくちゃんとした手順で確認することを覚えましょう! SSLサーバ証明書チェッカー 認証局がチェッカサイトを提供しているのでこれを使うのが一番簡単で確
一括請求(Consolidated Billing)とは? 複数のAWSアカウントの請求を1つのアカウントに紐付けて請求を一本化する機能です。 主に複数プロジェクトを抱える組織などで便利な機能だと思いますが、これを活用することで受けられるメリットもいくつかあるので覚えておくと良いです。 一括請求に関する詳細は、公式ドキュメントや、ぐぐれば他にもっと手順や何やらを詳しく説明しているサイトがあるのでそっちを見てください。 ここはそれらのざっとググった情報からは見つけることが出来なかった、一括請求に関する細かい点を調査して補足するメモです。前半にざっとメリットなども書いてますが、 後半の「注意点」以降がこの記事のメイン です。 メリット 請求を1箇所にまとめられる 一番よくある活用方法は、プロジェクトや顧客ごとに新規AWSアカウントを作って分けて使うことでしょう。こうすることでプロジェクト毎の利
Bashで文字列をエスケープするのは案外面倒くさい。 そういえばシェル文字列をエスケープするコマンドとかありそうなのに知らないし…。まぁ僕が知らなかっただけで元からあるよって場合は誰か教えて下さい。 結論を先に書いておくと、今時の新規スクリプトは printf %q "$v" を使うのが一番確実かなと思う。Bash 4.3未満で~がエスケープされないバグとかあったけど未来の保守だけ考えれば良くて過去に持ち帰る必要が無いという要件が殆どだろうしやらないよりは1万倍マシ。 手順 面倒とはいえやらなきゃいかん。 で、とりあえず 'シングルクオート最強! $a "ho ge"' てな感じでシングルクオートで囲っておけば日本語や空白文字や変数やダブルクオートとかが入ってても何でもそのまま文字列として扱える。これは特定文字にバックスラッシュを付けるとかよりよっぽど簡単だし、簡単ということはミスや漏れも
CentOS7のカーネルバージョンは 3.10 で、これだとDocker 1.9 の swarm network で overlay ネットワークが使えません。またデフォカーネルではreiserfsが使えなかったりと色々不便だったので新しくしたい。でも kernel を自分でビルドするのは更新まで考えると面倒なので yum で入れたい。そこで ElRepo です。 ElRepo これはRHELに新しいカーネルやファイルシステムやドライバ等を提供してくれるリポジトリで、ここを使うとより新しいカーネルをyumでインストール出来るようになる。 セットアップ手順は上記URLに書いてある通り以下のようにすれば elrepo-release が入る。 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://w
次のページ
このページを最初にブックマークしてみませんか?
『@kawazのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く