TenForward

技術ブログ。はてなダイアリーから移転しました

ケーパビリティバウンディングセット

今更感たっぷりな話題ですが、今頃ケーパビリティについて調べてます。これまで何度も調べてはよくわからなくて挫折を繰り返してるとこです。 ケーパビリティについては udzura.hatenablog.jp が詳しいのですが、「ケーパビリティバウンディングセット」の部…

ping コマンドの file capability(2)

(理解が不十分なので間違っている所があれば優しく教えてください) さて、ping コマンドの file capability(1) - TenForward で紹介したように ping コマンドの File capability は Permitted のみが有効になっていて、Effective ビットはオン(+e)にな…

ping コマンドの file capability(1)

(いまさらのお話とは思いますが自分用のメモに) Linux の Capability、何度も理解しようとして完全に理解できないままなんですが、ちょっとした理由で File capability を調べてます。最近は ambient capability なんてのもあって理解が遠のいてます。:-p …

セサミ mini を導入してみた(3)

DIY

前回、わざわざアダプターを作って送ってもらったけれども改善しなかったセサミminiの鍵を使って施錠した場合の問題。 tenforward.hatenablog.com セサミのサポートのメールで 硬めのクッション(セサミminiの箱の黒いクッションなど)をサムターンに貼って隙…

ShiftFS ふたたび 〜 Ubuntu 19.04で導入された ShiftFS を試してみた

ちょうど 2 年ほど前、Open Source Summit で話を聞いて ShiftFS について試したことがありました。 tenforward.hatenablog.com その後はとりあえずカーネルにパッチを当てたりはしてましたが、あまり使わないままでした。少し前に gihyo.jp の Ubuntu の記…

セサミ mini を導入してみた(2)

DIY

先日設置したセサミ mini ですが、先日も少し書いたとおり、ちょっとだけ問題がありました。 tenforward.hatenablog.com うちの鍵は サムターンが縦(12時)方向で解錠 サムターンが縦から右に45度回転した状態でチェーンがかかった状態 サムターンが横(3時…

セサミ mini を導入してみた

DIY

だーいぶ前に mizzy さんのブログでスマートロックなるものを知って、これはいいなと思いつつずっと買ってなかったのですが、最近は Qrio 以外にもセサミスマートロックという競合製品もあるってのを知って、これは良さげだなと思ってそろそろウチにも導入す…

xkbのファイルを書き換えてキーマップを調整する

Plamo 7.0 環境で、USB 切替器を使って USB キーボードを切り替えると、切り替え後に fcitx のオンオフができなくなってハマっていました。つまり USB キーボードを抜き差ししたあとに fcitx のオンオフができなくなっていました。 fcitx のオンオフはこのよ…

Linux 4.14 で導入された Namespaced file capabilities(おまけ)

4.14 で設定した Namespaced file capability を 4.13 以前のカーネルに戻したら まあ、こんな物好きなことをする人はいないでしょうが、確認してみました。 tenforward.hatenablog.com の環境のまま、ホスト環境のカーネルを 4.13 に戻して、コンテナを起動…

Linux 4.14 で導入された Namespaced file capabilities(2)

User Namespace 外から Namespaced file capability を設定する 前回、 tenforward.hatenablog.com では、非特権ユーザで起動したコンテナ内の root ユーザーで File capability を設定しました。 ここで、自作コンテナ派の皆様が気になるのは、この capabil…

Linux 4.14 で導入された Namespaced file capabilities(1)

Hosting Casual Talks #5 本題に入る前に、このブログエントリのネタを発表してきた勉強会の感想を。 ホスティング業界に関わるエンジニアが カジュアルに 情報交換をするという、全員発表型の勉強会 "Hosting Casual Talks #5" に参加してきました。飲みな…

Linux 4.14 で導入された cpuset の cgroup v2 mode

(2019-02-23 少し追記しています) 4.14 kernel から cgroup の cpuset コントローラーに cpuset_v2_mode というオプションが使えるようになりました。 しばらく見ないうちに cpuset コントローラーをマウントするとファイルがたくさん増えていますが、この…

Plamo 7.0 上で非特権な systemd コンテナを起動する

Plamo 7.0 では cgroupfs_mount パッケージと lxc パッケージを提供していますが、非特権コンテナを起動するための調整は特に行っていませんでした。 cgroupfs_mount パッケージは、Plamo 7.0 リリース直後は Ubuntu 14.04 あたりで cgroupfs をマウントする…

Linux 4.20 で導入の PSI 機能(2)

前回 はとりあえず /proc/pressure の中身を見てみましたが、PSI 機能は cgroup v2 とも連携しています。というわけで、今回は cgroup v2 をマウントしてみましょう(前回以上に中身なし)。 まずは cgroup v2 をマウントして、コントローラーを子 cgroup で…

Linux 4.20 で導入の PSI 機能(1)

以前から Facebook のスライドなんかでは見かけた PSI という機能が 4.20 カーネルで入ったようですね。 CONFIG_PSI: Collect metrics that indicate how overcommitted the CPU, memory, and IO capacity are in the system. If you say Y here, the kernel…

af-graft を LXC コンテナで試してみた

Twitter でコンテナ用の面白い仕組みを見つけたので試してみました。中身ほぼゼロです。 コンテナの中で開いたsocketがhost stackに生えるという不思議socketです。論文はこちら https://t.co/YyP67mDPt2 実装はこちら https://t.co/IaKO5RFfkG— upa (@upaa)…

cgroup v2 の nsdelegate オプション(2)〜 cgroup namespace 作成後の cgroup root を権限委譲の境界として扱う

cgroup v2 の nsdelegate オプション第 2 弾です。 前回紹介したのは、cgroup namespace を作ると cgroup root を超えたプロセスの移動が禁止されるという機能でした。 これはユーザに関わらず関係するお話でしたが、今回は一般ユーザで namespace(つまりコ…

LXDでコンテナごとに異なるユーザ権限でコンテナを起動する

$ lxc version Client version: 3.0.1 Server version: 3.0.1 な環境の Ubuntu 18.04 上で試してます。 以下で何の前提もなく書いてるサブ ID のお話は、私の連載 第16回 Linuxカーネルのコンテナ機能 [6] ─ユーザ名前空間 に書いていますのでそちらをどうぞ…

cgroup v2 の nsdelegate オプション(1)〜 namespace 外へのプロセス移動の禁止

cgroup v2がカーネルに導入された時点では、cgroup v2にはマウントオプションはありませんでした。 しかし、4.13 で nsdelegate というオプションが導入されました。これは現時点でも cgroup v2 唯一のマウントオプションです。 このオプションは初期の name…

LXD コンテナに物理NICを直接与える

あまり役に立たないメモです。 コンテナホスト上でコンテナを起動する場合、ホスト上にブリッジを作成し、そこにアタッチする veth インターフェースを接続する場合が多いかと思います。 しかし、ベアメタル上に物理 NIC が多数あったり、SR-IOV で物理 NIC …

LXC 3.0 新機能の予習

ここ最近、新バージョンリリース時と、ドキュメント(man pages)に更新があったときに翻訳する以外、新しい機能について全く調査していませんでした。 なんとなく見てると LXC 3.0 が近いようですので、どう変わるのかをまとめてみます。 cgroup ドライバの…

GnuPGで鍵取得しようとするとdirmngrに繋がらないと怒られる

単なるメモ。Plamo-7.0 開発中環境でのお話。 gnupg 2.1.19 までは大丈夫なんだけど、gnupg 2.1.23、2.2.0、2.2.1 にすると、dirmngr がうまく動かない… (2.1.20 〜 22 は作ってないので知らない)。 $ gpg --recv-keys (鍵) gpg: connecting dirmngr at '/ho…

Linux 4.10 で入った Overlayfs の redirect_dir 機能の動きを軽く追ってみた

ちょっと前にリリースされたカーネルですが、4.10 で overlayfs に変更が入っていましたのでちょっと調べてみました。 Overlayfs についてはこちらをどうぞ (ちょっと古い記事なのでカーネルにマージされる前の仕様も説明しています)。 Linuxで学ぶコンテナ…

shiftfs (s_user_ns version) 試してみた

Open Source Summit Japan 2017 で聞いた話に shiftfs の話があって、興味を持ったので試してみました。この機能の前提機能なんかに関する前提知識に欠けているため、以下には間違いが含まれている可能性が大きいです。是非指摘を頂きたいと思います。試して…

4.12 で nsfs の見た目がちょっと変わった

4.12 で nsfs に変更が加わってますね。 nsfs ってのは /proc/$PID/ns 以下の、そのプロセスがどの Namespace に所属しているのかを表している特殊なリンクがあるディレクトリです。 4.11 まではこんな感じ。 # ls -l /proc/self/ns total 0 lrwxrwxrwx 1 ro…

pivot_root できる条件

ふとしたきっかけで man 2 pivot_root の制限に疑問を持ったので、雑にカーネルのコードを読んでみたエントリです。かなり雑にみただけなので間違いの指摘を歓迎します。というか指摘を受けるために書いたようなもの pivot_root の使われ方 コンテナを起動し…

Linux 4.11 での cgroup 関連の話題

Linux 4.11 で cgroup に動きがありました。と言ってもしばらく新機能追えてないので、これまでも色々変更されているかも? 追加された事自体を忘れてしまいそうなのでメモしておくだけで、詳しく調べるわけではありません。 rdma controller rdma コントロー…

cgroup 初期化時の v1 の処理だけ抜き出して追ってみる

cgroup 初期化のメモ。間違っている可能性大なので信用しないでください。何度も同じところを繰り返し見てるので忘れないようにメモです。 サブシステム (cgroup_subsys) と各グループのサブシステムの状態 (cgroup_subsys_state) とそれらのセット (css_set…

cgroup の SUBSYS マクロ

Linux カーネルの cgroup 関連のコードのお話。 cgroup_subsys.h というヘッダがあって、cpuset の部分だけ抜き出すと #if IS_ENABLED(CONFIG_CPUSETS) SUBSYS(cpuset) #endif という風に SUBSYS マクロの中に cpuset のようなサブシステム名を与えているだ…

cgroup のデフォルトルート cgrp_dfl_root

このエントリはほぼ個人的なメモで、色々唐突です。cgroupのコアは kernel/cgroup.c に色々処理があります。その中に「デフォルトヒエラルキ(のルート)」という変数があります。4.1 kernel のコードです。 /* * The default hierarchy, reserved for the s…