上川純一
日本ヒューレット・パッカード株式会社
コンサルティング・インテグレーション統括本部
2005/5/31
FUSEをユーザー権限でどう扱う?
先月でも紹介した、ユーザー空間のアプリケーションでファイルシステムを提供するFUSE(Filesystem in Userspace)を利用すると、ファイルシステムを一般ユーザー権限でマウントできるようになります。
便利そうな機能ですが、問題がないわけではありません。例えば「/tmpに何か別なものをマウントできるようになるのはまずいのではないか」という意見がありました。FUSEの用途としてsshfsなどが考えられているため、一般ユーザーがマウントしたとしても、ほかのユーザーは見ることができない機構が必要だ、という意見も出ています。また、ユーザーがファイルを作成でき、適当な権限でファイルを見せることができるため、setuidなどを実装して利用するのは難しいだろう、という議論もあります。ほかにも、FUSEのインターフェイス自体がユーザー権限やアクセス権をオーバライドするべきか否かなど、難しい問題がいろいろと出てきています。
Miklos Szerediは前提条件として、次の5点を実現したいと主張しました。
- FUSEの使用によって、本来の権限では不可能な操作をファイルやディレクトリに対して行えるようになってはならない(/binにファイルシステムをマウントするなど)
- マウントポイント以下については、suidとデバイスファイルの機能を提供しない
- マウントポイント以下については、rootであってもアクセスできないようにする
- uid/gidや権限が矛盾する場合(別サーバのファイルシステムをマウントした場合など)でも、マウントしたオーナーについてはアクセスが制限されないようにする
- 可能な限りの情報は、ファイルシステム経由で提供できるようにしたい
しかし、この前提条件についても意見は一致せず、UNIXの既存の概念との整合性やセキュリティの問題などについて議論が続きました。
Miklos Szerediは、FUSEが必要とする一部の機能を実現するために、Private Mountの機能を提案しました。これは、あるユーザーからのみマウントポイントが見えるようにする機能です。このパッチがLKMLに流れるやいなや、Al Viroは「アプリケーションがsuidだからといって、パス名の解決方法が変わってしまうような機構は、既存の多くのアプリケーションで問題となるだろう。そんなものは導入できない」と反論しました。
FUSEを実現するには、UNIXの従来の概念とは違う視点で物事を実装していく必要があります。それをLinuxの既存のシステムにスムーズに入れるためには、まだいろいろと解決すべき問題があるようです。
参考リンク: | ||
FUSE | http://fuse.sourceforge.net/ | |
FUSEベースの ファイルシステム |
http://fuse.sourceforge.net/filesystems.html |
2.6.11.yツリーに適用すべきパッチとは?
Greg K-Hがメンテナンスしているカーネル2.6.11.yツリーのリリースを見てみましょう。2.6.11.yツリーについては、先月お伝えしたとおりです。
- 2.6.11.7
4月5日にGreg K-Hがレビューのアナウンスを出し、4月7日にリリース
- 2.6.11.8
4月27日にGreg K-Hがレビューのアナウンスを出し、4月29日にリリース
レビュー期間には、「-stable review」というタイトルでパッチのメールを出し、10個程度のパッチレビューが行われました。Alan Coxはいくつかのパッチについて「Don't see why this one is a critical bug.(このバグが致命的だとは思えないんだが)」というようなコメントを出していました。
どのようなパッチが適切なのかについては、まだ議論が尽きないようです。
参考リンク: | ||
2.6.11.7のChangeLog | http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.11.7 | |
2.6.11.8のChangeLog | http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.11.8 |
カーネルの割り込み頻度を動的に
Linuxカーネルは、1秒間に100〜1000回程度タイマ割り込み処理をしています。その頻度は「HZ」というマクロの値で定義されており、カーネルのコンパイル時に固定されてしまいます。HZの値が大きい方が、ユーザーの操作に対する反応が鋭敏に返ってくるようになります。逆にHZの値を小さくすると、CPUの負荷やオーバーヘッドが少なくなります。
DynTickは、これまで静的に定義していたタイマ割り込み処理の頻度を動的に変更できるようにするパッチです。動的に変更することにより、アイドル時の電力消費節約といった効果があるそうです。すでにOMAPツリーには適用されており、実績があるそうです。
参考リンク: | ||
DynTick | http://www.muru.com/linux/dyntick/ |
モジュールじゃなくても機能のオン/オフ
カーネルモジュールとして提供されている機能は、モジュールをロードするか否かによって、その機能のオン/オフを選択できます。カーネルモジュールとして提供されておらず、カーネルに直接組み込まれている機能の場合は、その機能をオン/オフするためにカーネルを再構築する必要があります。
非カーネルモジュールな機能も、カーネルの再構築を行わずにオン/オフを選択可能にしましょうと、Magnus Dummが提案しました。あるドライバの初期化ルーチンが起動時に動くと必ずクラッシュする、という状況に陥った場合などに便利そうです。
Magnus Dummの提案に対して、Herbert Xuは「そもそもオン/オフを切り替えたいような機能については、モジュールにしようよ」と反論しました。
この機能がすぐに取り込まれることはなさそうですが、あれば便利かも?
(以上、敬称略)
2/2
|
|
|
||||
|
連載 Linux Kernel Watch |
Linux Squareフォーラム Linuxカーネル関連記事 |
連載:Linux Kernel Watch(連載中) Linuxカーネル開発の現場ではさまざまな提案や議論が交わされています。その中からいくつかのトピックをピックアップしてお伝えします |
|
連載:Linuxファイルシステム技術解説 ファイルシステムにはそれぞれ特性がある。本連載では、基礎技術から各ファイルシステムの特徴、パフォーマンスを検証する |
|
特集:全貌を現したLinuxカーネル2.6[第1章] エンタープライズ向けに刷新されたカーネル・コア ついに全貌が明らかになったカーネル2.6。6月に正式リリースされる予定の次期安定版カーネルの改良点や新機能を詳しく解説する |
|
特集:/procによるLinuxチューニング[前編] /procで理解するOSの状態 Linuxの状態確認や挙動の変更で重要なのが/procファイルシステムである。/procの概念や/procを利用したOSの状態確認方法を解説する |
|
特集:仮想OS「User
Mode Linux」活用法 Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 |
|
Linuxのカーネルメンテナは柔軟なシステム カーネルメンテナが語るコミュニティとIA-64 Linux IA-64 LinuxのカーネルメンテナであるBjorn Helgaas氏。同氏にLinuxカーネルの開発体制などについて伺った |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|