以下イベントの発表資料です。 https://forkwell.connpass.com/event/273179/
![Linuxカーネル学習の敷居を下げたいという思いを実現した本、「Linuxのしくみ」](https://cdn-ak-scissors.b.st-hatena.com/image/square/7d35724138d2197dc882dbc81461841bae661cb9/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F235d8977cd0a413fb2db50ab7c39a6e2%2Fslide_0.jpg%3F24560586)
Go で Web Server 書く 動作確認するだけのコードなのでなるだけシンプルに書く。んで、 Port 80 を Listen したいけどプロセスは root で走らせたくないので、 systemd でポート開いてそれをプログラム側で使うようにする。 ディスクリプタごにょる部分は coreos/go-systemd がドンピシャなのでこれを使う。 package main import ( "errors" "fmt" "log" "net" "net/http" "github.com/coreos/go-systemd/activation" ) func main() { // Mux を設定する m := http.NewServeMux() m.HandleFunc("/", handler) // Server を設定する s := &http.Server{ Handl
sudo su と sudo -s はほぼ同じ。実行されるシェルが異なることがある。 sudo su - と sudo -i もほぼ同じ。環境変数のクリア的な意味だと sudo su - の方が強い。 以下は別に読まなくてもいい。 su 別のユーザーでシェルを実行するコマンド。自分は「す」とか「えすゆー」とかと呼んでる。 元は super user とか switch user とか substitute user の略だったらしい。 デフォルトでは root になるが、引数でユーザー名を指定するとそのユーザーになる。 新ユーザーのデフォルトのシェルとして設定されているシェルが実行される。 入力するパスワードは新ユーザーのパスワード。 ~% su Password: (rootのパスワード) root@hostname:/home/tmtms# id uid=0(root) gid=0(r
CVE-2019-5736を覚えていますか?今年の2月に見つかったrunc(Dockerがデフォルトで利用しているコンテナのランタイム)の脆弱性で、ホストのruncバイナリを好き勝手にコンテナ内部から書き換えることができるというものです。 脆弱性の仕組みに興味があったので調べたところ、コンテナを攻撃する方法というのは他にもいろいろあって、runcは頑張ってそれを塞いでいるようです。これまとめると面白いかも、と思ったので以下のようなおもちゃを作りました。 Drofuneは簡単なコンテナランタイムです。drofune runとかdrofune execなどでコンテナを起動したり、入ったりすることができます、といえば想像がつくでしょうか。 これだけでは何も面白くないので、Drofuneはわざと安全でない実装になっています。なので、今回発見されたCVE-2019-5736を利用した攻撃も成立します
こんな感じ。 cat で連続して nowファイルの内容を表示している。ファイルを変更しているわけではないが、 表示するたびに内容が変わる。 # cat now 2018-12-27 00:21:20 # cat now 2018-12-27 00:21:21 # cat now 2018-12-27 00:21:23 Fuse-BindEx どういう仕掛けかというと、今回作成した bindex ファイルシステムを経由して、 上記ファイルにアクセスしているため。この bindex というファイルシステムは、 「実行ファイルが read されたら、そのファイルを execute した際の出力を内容として返す」 という動作をする。上記nowファイルの本当の内容はこちら。 #!/bin/bash date "+%F %T" 今回の場合、bindex 経由で cat (read) するたびに、dat
IIJ ネットワーク本部アプリケーションサービス部・(兼)社長室所属。 メールサービスの運用業務に従事し、日々世界の悪と戦う一児の父親。社内 Power Automate エバンジェリスト(自称)。M3AAWG member / openSUSE Users / WIDE Project メンバー。趣味は大喜利。はがき職人。 【IIJ 2018TECHアドベントカレンダー 12/19(水) の記事です】 皆さんはスマートフォンやビデオカメラで撮影した動画って、どうしていますか? 昔は動画を編集しようと思うと、ビデオデッキを 2台用意してリニアに編集するしかありませんでした。しかし、近年はお手元にあるスマートフォンでアプリを使って簡単な編集ができます。そしてもちろん、個人のパソコンでも十分高度な編集ができる世界になっています(※1)。でも、敷居が高い? しかも Linux で!? No! N
※ 2018/07/21 追記。 お読みいただきましてありがとうございます! すみません、実はタイトルの割には「現在回しているイケてない運用をちょっとした工夫でサクッと改善する」ことを主眼としており、セキュリティのベストプラクティスではありません。。。 本稿の例で挙げているコマンドのリスクにつきましては、 注意 の項を追加しましたのでご参照ください。 公開当初は「10いいねくらいもらえたら嬉しいなー」と思っていた程度だったのですが、まさかここまでたくさんの方に読んでいただけるとは。。。 もっと内容を精査しておくべきだったと反省しております。。。 いいねやコメント等反応頂けるのはとても励みになります。ありがとうございます! TL;DR 怖いですよね、セキュリティインシデント。 インフラ系でお仕事をしていると、 Linux にログインして操作する手順書を作る事が多くなります。手順書の中には認証
あるWebサービスのパスワードを変更しようとしたら、「8-20文字で、ローマ字、数字、ハイフン、アダーバー、ドットのみ利用可能」の条件があって困った。 パスワードを生成する時、いつもは pwgen で以下のように作っている。 $ pwgen -sy 20 1意味: 完全にランダムな英数記号で20文字のパスワードを1つ生成 記号は使いたいが、使えない記号があるので困る。 pwgen は利用する文字を細かく指定できないので、以下のようにして対応する事にした。 $ pwgen -1sy 20 10000 | egrep "[a-zA-Z0-9_.-]{20}"意味: 1行ずつ、セキュアで(完全にランダムな)、記号を含む、20文字のパスワードを 10000 個作る => その中からローマ字、数字、ハイフン、アダーバー、ドットを含むものを表示
はじめに 脆弱性対応のためのアップデート作業というものは頻繁に発生するものですが、本番運用しているシステムではサービスへの影響を最小限にしたいものです。 アップデートした後、出来ることなら必要なプロセスだけリスタートさせることで済ませたいのですが、どのプロセスをリスタートすれば良いのか、そもそもOS再起動しないと反映されないものなのか、判断が付かない場合が少なくありません。 そのような場合のため、再起動が必要なプロセスを見つけたり、OS再起動が必要かどうかアドバイスしてくれるコマンドがあります。 Redhat系 「yum-utils」パッケージに入っている「needs-restarting」コマンドを使います。 # needs-restarting -h Usage: needs-restarting: Report a list of process ids of programs th
Netflixのパフォーマンスエンジニアである筆者からの、topコマンドなどで表示されるCPU使用率(%CPU)は、いまや本当の使用率を表しておらず、チューニングなどのための指標として使えないという指摘。なぜそうなってしまったのか、何を見れば本当のCPU使用率がわかるのかをわかりやすく解説した記事。 私たちみんながCPU使用率として使っている指標は非常に誤解を招くもので、この状況は毎年悪化しています。CPU使用率とは何でしょうか?プロセッサーがどのくらい忙しいか?違います。CPU使用率が表しているのはそれではありません。私が話しているのは、あちこちで、あらゆる人たちに、あらゆる監視製品で、あるいはtop(1)でも使われている、"%CPU"という指標のことです。 あなたの考えているであろうCPU使用率90% : 実際 : "stalled"(訳注 : 以下ストールと言う)とは、プロセッサーが
インストールガイド 1. はじめに Expand section "1. はじめに" Collapse section "1. はじめに" 1.1. グラフィカルインストール 1.2. リモートインストール 1.3. 自動インストール 2. Red Hat Enterprise Linux のダウンロード 3. メディアの作成 Expand section "3. メディアの作成" Collapse section "3. メディアの作成" 3.1. インストール CD または DVD の作成 3.2. USB インストールメディアの作成 Expand section "3.2. USB インストールメディアの作成" Collapse section "3.2. USB インストールメディアの作成" 3.2.1. Linux での USB インストールメディアの作成 3.2.2. Wind
追記 直近の Docker 界隈について Linux コンテナ 参考 Linux コンテナとは Linux コンテナを構成する主な機能 OS リソース毎の Namespace cgroup サブシステム こんなにざっくりでは、Linux コンテナは語れないと思うけど haconiwa haconiwa とは haconiwa で何が出来ると? haconiwa 導入 はじめての haconiwa (1) はじめての haconiwa (2) 〜 コンテナ作成 〜 はじめての haconiwa (3) 〜 コンテナ起動 〜 haconiwa で学ぶ Linux コンテナ .haco ファイル再掲 namespace を弄る前に namespace uts namespace pid 俺は Linux コンテナについてなんにも解っていなかった(まとめ) haconiwa は Linux コンテ
GNU / Linux ディストリビューション上で Android アプリをネイティブに実行できるようにするオープンソースの Android アプリエミュレーター「Anbox(Android in a Box )」がリリースされました。 PC 上で Android アプリを実行する方法としては既に BlueStacks などのいくつかの Android エミュレーターが実現していますが、これら既存のエミュレーターは Android システムをまるごと仮想マシンとして実装しています。 Anbox はこれらエミュレーターとは異なり、ホスト PC のアプリと同様に Android アプリだけを実行することができるツールです。 Anbox では Android を LXC に基づくコンテナに入れ、ホスト PC のハードウェアやユーザーデータへのアクセスを許可せずにホスト PC の OS をブリッジ
このページではCentOS6以前の旧バージョンとCentOS7では何が違うのかをまとめてお伝えした。 かなり大きく変わっているため、戸惑うことも多いはずだ。参考にしていただければ幸いだ。 CentOSそのもののアップデート CentOSの特徴として長期サポートという点があげられる。 10年もコミュニティーによるサポート期限が設けられている。管理者や入門者の方にとって長期的で安定したLinuxディストリビューションというのは非常にありがたい存在だろう。 しかし長期サポートの恩恵を受けつづけていると、メジャーバージョンアップの際自分が浦島太郎のような状態になってしまっていることに気づくことになる。 このページではCentOS6とCentOS7の相違点をあげることにする。CentOS6とCentOS7での変更点は非常に多い。CentOS7で一気にモダンなLinuxディストリビューションへと変貌し
シェルからでも重い処理というのはちょこちょこあって、例えば超デカいログファイルを移動して圧縮したりというお仕事は世界中のあらゆる場所で毎日行われていたりする。コマンドラインからでも大量の圧縮済みログファイルをいっぺんに展開したい、とか。 あるディレクトリ以下に存在するたくさんのファイルを(圧縮済みのものを除いて)全部 bzip2 圧縮したい!と思ったら、とりあえずさくっと次のようにコマンドラインで叩けばいい。 $ find . -not -name '*.bz2' | xargs bzip2 これで、まあそんなに問題なく効率的にbzip2圧縮ができる。だがしかし。 最近は複数コアのCPUが普通に転がってるし、あまつさえHyperThreadingが有効になってたりしてOSから見える論理CPU数がハンパない。普通に8とかある。その一方で複数コアを使用してくれるコマンドというのはあんまりなくて
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く