From from-tomoyo-users @ I-love.SAKURA.ne.jp Thu Apr 1 22:38:29 2010 From: from-tomoyo-users @ I-love.SAKURA.ne.jp (Tetsuo Handa) Date: Thu, 1 Apr 2010 22:38:29 +0900 Subject: [Tomoyo-dev 1227] =?iso-2022-jp?b?VE9NT1lPIExpbnV4IDEuNy4yIBskQiRyJWolaiE8JTkbKEI=?= =?iso-2022-jp?b?GyRCJDckXiQ3JD8hIxsoQg==?= Message-ID: <201004012238.CDB35965.GVFtPtSPTNSUPTNPZ@I-love.SAKURA.ne.jp>  熊猫です。  TOMOYO Linux 1.7.2 をリリースしました。 ccs-patch-1.7.2-20100401.tar.gz MD5:5555725f3fc8cb7c203a20cc9ee1ffc8 ccs-tools-1.7.2-20100401.tar.gz MD5:aaaa18f4573e3b02c3c6f56877f9e0fc カーネル 2.6.34-rc3 に対応した他、 Ubuntu 10.04 / RHEL 5.5 などに 対応しています。  今回の目玉は、プログラムの実行を伴わないでドメイン遷移ができるようになった 点です。これにより、 Apache のバーチャルホスト単位やCGIプログラム単位で 異なる権限を与えることができるようになりました。 /proc/ccs/.transition に対して '\0' で終わる任意の文字列を書きこむことによりドメイン遷移が行われます。 例えば、 /usr/sbin/httpd ドメインで動作しているプロセスが "app=cgi1 id=10000" + '\0' という文字列を /proc/ccs/.transition に書き込むと /usr/sbin/httpd //app=cgi1\040id=10000 ドメインに遷移します。 この処理は Apache が提供している ap_hook_handler() 関数から呼び出します。 安全のために、自動的に // というプレフィックスが付与されるようになっています。 もし、 // というプレフィックスが付与されない場合、例えば /usr/sbin/sshd /bin/bash ドメインに対して /proc/ccs/.transition への 書き込みが許可されており、 /usr/sbin/sshd /bin/bash /usr/bin/passwd ドメインに対して /etc/shadow へのアクセスが許可されている場合、 /usr/sbin/sshd /bin/bash ドメインで動作している /bin/bash プロセスは /proc/ccs/.transition に対して "/usr/bin/passwd" + '\0' という内容を書き込む ことにより /etc/shadow へのアクセスが可能になってしまいます。 /bin/bash に対して /etc/shadow へのアクセスを認めるというのは望まない 結果でしょう。 プログラムの実行をともなわないでドメイン遷移を行うためのパーミッションは allow_transit キーワードによりチェックされます。 allow_execute キーワードとは 異なり、 allow_transit キーワードで指定する文字列はファイルシステム上の実行可能 ファイルを参照するものではありません。そのため、 LDAP の DN エントリのように 任意の文字列の組み合わせを allow_transit キーワードに指定することができます。  もう1つの目玉は、処理の大部分をローダブルカーネルモジュールとして切り出せる ようになった点です。今までは TOMOYO を無効にした状態で起動するには、カーネルの コマンドラインで CCS=disabled という指定をするで /sbin/ccs-init が無効モード用の プロファイルをロードするようにしていました。これはユーザレベルで無効化している 状態ですので、カーネル内の TOMOYO のフックは呼び出されており、パフォーマンスに 影響を与える場合がありました。 TOMOYO 1.7.2 では、カーネルのコマンドラインで ccsecurity=off という指定をする ことにより、カーネルレベルで TOMOYO を無効にした状態で起動できます。 TOMOYO の フック自体が呼び出されなくなるため、パフォーマンスへの影響もありません。 もし、ディストリビューションのカーネルに組み込む場合にも、 TOMOYO を使わない ユーザに対してパフォーマンスへの影響を与えないで済むようになりました。また、 ローダブルカーネルモジュールとしてコンパイルすることにより、 TOMOYO を使わない ユーザに対してファイルサイズ面でも影響を与えないで済むようになりました。  ツールに関しては、 ccs-sortpolicy が use_profile 行を出力するように修正 されました。 ccs-sortpolicy は元々 /proc/ccs/grant_log や /proc/ccs/reject_log を ドメイン名をキーとしてソートすることによりログを圧縮するために開発されました。 ccs-auditd によって /proc/ccs/reject_log が /var/log/tomoyo/reject_log.conf という名前で保存されるようになっている場合、 # grep -A 3 -F 'profile=2 mode=permissive' /var/log/tomoyo/reject_log.conf | /usr/sbin/ccs-sortpolicy > /var/log/tomoyo/log.conf # grep -A 3 -F 'profile=2 mode=permissive' /var/log/tomoyo/reject_log.conf | /usr/lib/ccs/convert-audit-log | /usr/sbin/ccs-sortpolicy > /var/log/tomoyo/log.conf のようにしてアクセスログからポリシーを作成することができます。このポリシーを # /usr/sbin/ccs-loadpolicy -d < /var/log/tomoyo/log.conf のようにすると /proc/ccs/domain_policy に、 # cat /var/log/tomoyo/log.conf >> /etc/ccs/domain_policy.conf のようにすると /etc/ccs/domain_policy.conf に追加できるようになっています。 use_profile 行はドメインのアクセス制御モードを変更します。例えば profile 1 が 学習モード用、 profile 3 が強制モード用として定義されている場合、 use_profile 1 という指定をすると学習モードに、 use_profile 3 という指定をすると強制モードに なります。しかし、 /var/log/tomoyo/reject_log.conf には、あるドメインに対して 相反する指定(例えば use_profile 1 と use_profile 3 の両方)が含まれているかも しれません。そのような指定が含まれたまま、 /var/log/tomoyo/log.conf の内容を /proc/ccs/domain_policy や /etc/ccs/domain_policy.conf に追加すると、 期せずしてアクセス制御モードを変更してしまう危険性があります。そのため、 /var/log/tomoyo/log.conf によって /proc/ccs/domain_policy や /etc/ccs/domain_policy.conf で指定されているアクセス制御モードを上書きして しまうことの無いようにするために、 ccs-sortpolicy は use_profile 行を 除去するようにしていました。 しかし、 /proc/ccs/domain_policy や /etc/ccs/domain_policy.conf を ccs-sortpolicy でソートできると便利ではないかという意見があったため、 ccs-sortpolicy が use_profile 行を出力するように修正しました。 ( /proc/ccs/domain_policy と同様、同じドメインに対して複数の use_profile 行が 含まれていた場合、最後に指定された use_profile 行だけが出力されます。) From henrich @ debian.or.jp Sun Apr 4 01:06:10 2010 From: henrich @ debian.or.jp (Hideki Yamane) Date: Sun, 4 Apr 2010 01:06:10 +0900 Subject: [Tomoyo-dev 1228] =?iso-2022-jp?b?Y2NzLXBhdGhtYXRjaCAbJEIkSCQ9JE40WE8iJEcbKEIgTWFr?= =?iso-2022-jp?b?ZWZpbGUgGyRCJE49JEA1GyhC?= Message-ID: <20100404010610.817f213b.henrich@debian.or.jp>  やまねです。  ccs-pathmatch とその関連で Makefile の修正を下記のようにしてみました。 --- ccstools-1.7.2-20100401.orig/man/ccs-pathmatch 2010-04-04 00:44:03.000000000 +0900 +++ ccstools-1.7.2-20100401/man/ccs-pathmatch 2010-04-04 00:44:22.000000000 +0900 @@ -33,7 +33,7 @@ [NOTES] - You unlikely need this program because TOMOYO 1.7.1 introduced recursive directory matching. For example, you can specify /var/www/ html/\{\*\}/\*.html for matching /var/www/html/\*/\*.html /var/www/html/\*/\*/\*.html /var/www/html/\*/\*/\*/\*.html etc. + You unlikely need this program because TOMOYO 1.7.1 introduced recursive directory matching. For example, you can specify /var/www/ html/\e{\e*\e}/\e*.html for matching /var/www/html/\e*/\e*.html /var/www/html/\e*/\e*/\e*.html /var/www/html/\e*/\e*/\e*/\e*.html etc . [AUTHORS] ----------------------------------- Add man8 for install and clean target Index: ccstools-1.7.2-20100401/Makefile =================================================================== --- ccstools-1.7.2-20100401.orig/Makefile 2010-04-04 00:44:03.000000000 +0900 +++ ccstools-1.7.2-20100401/Makefile 2010-04-04 00:44:11.000000000 +0900 @@ -6,12 +6,15 @@ ALIAS_LIST = ccs-auditd ccs-queryd ccs-pstree ccs-checkpolicy ccs-editpolicy ccs-findtemp ccs-ld-watch ccs-loadpolicy ccs-pathmatch ccs-patternize ccs-savepolicy ccs-setlevel ccs-setprofile ccs-sortpolicy ccs-diffpolicy ccs-selectpolicy -all: main misc +all: main misc man8 main: $(MAIN_FILES) misc: $(MISC_FILES) +man8: + (cd $(CURDIR)/man; $(MAKE)) + install: all mkdir -p $(INSTALLDIR)/usr/lib/ccs $(INSTALLDIR)/sbin $(INSTALLDIR)/usr/sbin chmod 755 $(INSTALLDIR)/usr/lib/ccs From henrich @ debian.or.jp Sun Apr 4 01:07:31 2010 From: henrich @ debian.or.jp (Hideki Yamane) Date: Sun, 4 Apr 2010 01:07:31 +0900 Subject: [Tomoyo-dev 1229] Re: =?iso-2022-jp?b?VE9NT1lPIExpbnV4IDEuNy4yIBskQiRyJWolaiE8GyhC?= =?iso-2022-jp?b?GyRCJTkkNyReJDckPyEjGyhC?= In-Reply-To: <201004012238.CDB35965.GVFtPtSPTNSUPTNPZ@I-love.SAKURA.ne.jp> References: <201004012238.CDB35965.GVFtPtSPTNSUPTNPZ@I-love.SAKURA.ne.jp> Message-ID: <20100404010731.a53d7e6f.henrich@debian.or.jp> On Thu, 1 Apr 2010 22:38:29 +0900 Tetsuo Handa wrote: >  もう1つの目玉は、処理の大部分をローダブルカーネルモジュールとして切り出せる > ようになった点です。今までは TOMOYO を無効にした状態で起動するには、カーネルの > コマンドラインで CCS=disabled という指定をするで /sbin/ccs-init が無効モード用の > プロファイルをロードするようにしていました。これはユーザレベルで無効化している > 状態ですので、カーネル内の TOMOYO のフックは呼び出されており、パフォーマンスに > 影響を与える場合がありました。 > > TOMOYO 1.7.2 では、カーネルのコマンドラインで ccsecurity=off という指定をする > ことにより、カーネルレベルで TOMOYO を無効にした状態で起動できます。 TOMOYO の > フック自体が呼び出されなくなるため、パフォーマンスへの影響もありません。 > > もし、ディストリビューションのカーネルに組み込む場合にも、 TOMOYO を使わない > ユーザに対してパフォーマンスへの影響を与えないで済むようになりました。また、 > ローダブルカーネルモジュールとしてコンパイルすることにより、 TOMOYO を使わない > ユーザに対してファイルサイズ面でも影響を与えないで済むようになりました。  素晴らしい :)  この辺を英文で投稿している文章があったら教えてくださいませ。 -- Regards, Hideki Yamane henrich @ debian.or.jp/iijmio-mail.jp http://wiki.debian.org/HidekiYamane From from-tomoyo-dev @ I-love.SAKURA.ne.jp Sun Apr 4 08:57:54 2010 From: from-tomoyo-dev @ I-love.SAKURA.ne.jp (Tetsuo Handa) Date: Sun, 4 Apr 2010 08:57:54 +0900 Subject: [Tomoyo-dev 1230] Re: =?iso-2022-jp?b?VE9NT1lPIExpbnV4IDEuNy4yIBskQiRyJWolaiE8GyhC?= =?iso-2022-jp?b?GyRCJTkkNyReJDckPyEjGyhC?= In-Reply-To: <20100404010731.a53d7e6f.henrich@debian.or.jp> References: <201004012238.CDB35965.GVFtPtSPTNSUPTNPZ@I-love.SAKURA.ne.jp><20100404010731.a53d7e6f.henrich@debian.or.jp> Message-ID: <201004040857.IFG73412.UWNFPtZtPEPSNPG@I-love.SAKURA.ne.jp>  熊猫です。 Hideki Yamane さんは書きました: >  この辺を英文で投稿している文章があったら教えてくださいませ。 http://sourceforge.jp/projects/tomoyo/lists/archive/users-en/2010-April/000140.html と http://sourceforge.jp/projects/tomoyo/lists/archive/users-en/2010-March/000136.html で 宜しいでしょうか? それから、 Debian の "Bug#562486: please enable tomoyo" の件、 msg08758.html を 最後に止まってしまって、3/16時点ではまだ有効化されていませんでした。 linux-image-2.6.32-3-686_2.6.32-9_i386.deb 26-Feb-2010 linux-image-2.6.33-2-686_2.6.33-1~experimental.3_i386.deb 12-Mar-2010 21:19 ちょっと ping ( msg08758.html に返信)していただくことは可能でしょうか? よろしくお願いします。 From from-tomoyo-dev @ I-love.SAKURA.ne.jp Sun Apr 4 09:33:45 2010 From: from-tomoyo-dev @ I-love.SAKURA.ne.jp (Tetsuo Handa) Date: Sun, 4 Apr 2010 09:33:45 +0900 Subject: [Tomoyo-dev 1231] Re: =?iso-2022-jp?b?Y2NzLXBhdGhtYXRjaCAbJEIkSCQ9JE40WE8iJEcbKEIg?= =?iso-2022-jp?b?TWFrZWZpbGUgGyRCJE49JEA1GyhC?= In-Reply-To: <20100404010610.817f213b.henrich@debian.or.jp> References: <20100404010610.817f213b.henrich@debian.or.jp> Message-ID: <201004040933.HBJ81727.WUNtPFPtPPZNESG@I-love.SAKURA.ne.jp>  熊猫です。 Hideki Yamane さんは書きました: > >  やまねです。 >  ccs-pathmatch とその関連で Makefile の修正を下記のようにしてみました。 > > > --- ccstools-1.7.2-20100401.orig/man/ccs-pathmatch 2010-04-04 00:44:03.000000000 +0900 > +++ ccstools-1.7.2-20100401/man/ccs-pathmatch 2010-04-04 00:44:22.000000000 +0900 > @@ -33,7 +33,7 @@ > > [NOTES] > > - You unlikely need this program because TOMOYO 1.7.1 introduced recursive directory matching. For example, you can specify /var/www/ > html/\{\*\}/\*.html for matching /var/www/html/\*/\*.html /var/www/html/\*/\*/\*.html /var/www/html/\*/\*/\*/\*.html etc. > + You unlikely need this program because TOMOYO 1.7.1 introduced recursive directory matching. For example, you can specify /var/www/ > html/\e{\e*\e}/\e*.html for matching /var/www/html/\e*/\e*.html /var/www/html/\e*/\e*/\e*.html /var/www/html/\e*/\e*/\e*/\e*.html etc > . > help2man の仕事は (1) man ページのフォーマットに合わせて .SH NAME や .SH SYNOPSIS などを挿入する (2) man ページでエスケープが必要な文字をエスケープする の2つあると思っていて、上記のように (2) が行われていないというのは help2man のバグなのではないかと思っているのですが、修正されないところをみると ( help2man の man には書かれていないけれども) -i オプションで取り込まれる テキストについては (1) しか行われないという仕様のようですね。 --help オプションの出力の中で [NOTES] セクションも指定できれば (2) も help2man に処理させることができるのになぁ。 > [AUTHORS] > > > ----------------------------------- > Add man8 for install and clean target > Index: ccstools-1.7.2-20100401/Makefile > =================================================================== > --- ccstools-1.7.2-20100401.orig/Makefile 2010-04-04 00:44:03.000000000 +0900 > +++ ccstools-1.7.2-20100401/Makefile 2010-04-04 00:44:11.000000000 +0900 > @@ -6,12 +6,15 @@ > > ALIAS_LIST = ccs-auditd ccs-queryd ccs-pstree ccs-checkpolicy ccs-editpolicy ccs-findtemp ccs-ld-watch ccs-loadpolicy ccs-pathmatch > ccs-patternize ccs-savepolicy ccs-setlevel ccs-setprofile ccs-sortpolicy ccs-diffpolicy ccs-selectpolicy > > -all: main misc > +all: main misc man8 > > main: $(MAIN_FILES) > > misc: $(MISC_FILES) > > +man8: > + (cd $(CURDIR)/man; $(MAKE)) ここは $(MAKE) -C man/ で大丈夫だと思います。 > + > install: all > mkdir -p $(INSTALLDIR)/usr/lib/ccs $(INSTALLDIR)/sbin $(INSTALLDIR)/usr/sbin > chmod 755 $(INSTALLDIR)/usr/lib/ccs こちらのほうは、 ncurses を準備するのが困難な環境向けに ccs-editpolicy-agent を 用意したけれども、 ccs-loadpolicy や ccs-savepolicy などは ncurses を準備するのが 困難な環境であっても使いたいので、 ncurses に依存したマルチコールバイナリという状態を 解消して必要なプログラムだけを選べるようにするつもりです。ライブラリ化の要望が 出ているため、共有ライブラリを使う形で作成する手順について勉強し、6月下旬の http://www.apc.ehdo.go.jp/seminar/course/10semi22294.html までに CAT760 ( http://tomoyo.sourceforge.jp/incoming/cat760.avi )でも使えるような 状態にしたいと考えています。 From henrich @ debian.or.jp Sun Apr 4 13:30:38 2010 From: henrich @ debian.or.jp (Hideki Yamane) Date: Sun, 4 Apr 2010 13:30:38 +0900 Subject: [Tomoyo-dev 1232] Re: =?iso-2022-jp?b?VE9NT1lPIExpbnV4IDEuNy4yIBskQiRyJWolaiE8GyhC?= =?iso-2022-jp?b?GyRCJTkkNyReJDckPyEjGyhC?= In-Reply-To: <201004040857.IFG73412.UWNFPtZtPEPSNPG@I-love.SAKURA.ne.jp> References: <201004012238.CDB35965.GVFtPtSPTNSUPTNPZ@I-love.SAKURA.ne.jp> <20100404010731.a53d7e6f.henrich@debian.or.jp> <201004040857.IFG73412.UWNFPtZtPEPSNPG@I-love.SAKURA.ne.jp> Message-ID: <20100404133038.29b0956e.henrich@debian.or.jp> On Sun, 4 Apr 2010 08:57:54 +0900 Tetsuo Handa wrote: > http://sourceforge.jp/projects/tomoyo/lists/archive/users-en/2010-April/000140.html と > http://sourceforge.jp/projects/tomoyo/lists/archive/users-en/2010-March/000136.html で > 宜しいでしょうか?  はい、十分です。 > それから、 Debian の "Bug#562486: please enable tomoyo" の件、 msg08758.html を > 最後に止まってしまって、3/16時点ではまだ有効化されていませんでした。 > > linux-image-2.6.32-3-686_2.6.32-9_i386.deb 26-Feb-2010 > linux-image-2.6.33-2-686_2.6.33-1~experimental.3_i386.deb 12-Mar-2010 21:19 > > ちょっと ping ( msg08758.html に返信)していただくことは可能でしょうか?  見ておきます(本当に ping するだけかもしれませんけど :) -- Regards, Hideki Yamane henrich @ debian.or.jp/iijmio-mail.jp http://wiki.debian.org/HidekiYamane From henrich @ debian.or.jp Sun Apr 4 11:01:57 2010 From: henrich @ debian.or.jp (Hideki Yamane) Date: Sun, 4 Apr 2010 11:01:57 +0900 Subject: [Tomoyo-dev 1233] Re: =?iso-2022-jp?b?Y2NzLXBhdGhtYXRjaCAbJEIkSCQ9JE40WE8iJEcbKEIg?= =?iso-2022-jp?b?TWFrZWZpbGUgGyRCJE49JEA1GyhC?= In-Reply-To: <201004040933.HBJ81727.WUNtPFPtPPZNESG@I-love.SAKURA.ne.jp> References: <20100404010610.817f213b.henrich@debian.or.jp> <201004040933.HBJ81727.WUNtPFPtPPZNESG@I-love.SAKURA.ne.jp> Message-ID: <20100404110157.a66a180a.henrich@debian.or.jp> On Sun, 4 Apr 2010 09:33:45 +0900 Tetsuo Handa wrote: > help2man のバグなのではないかと思っているのですが、修正されないところをみると > ( help2man の man には書かれていないけれども) -i オプションで取り込まれる > テキストについては (1) しか行われないという仕様のようですね。  どうなんでしょうね、単に作業する人がいないだけだったりして…  ところで man/man8 は空のままでリリースしてもらうと消す作業が省けるので  お願いできませんか。 -- Regards, Hideki Yamane henrich @ debian.or.jp/iijmio-mail.jp http://wiki.debian.org/HidekiYamane From from-tomoyo-dev @ I-love.SAKURA.ne.jp Tue Apr 6 21:08:05 2010 From: from-tomoyo-dev @ I-love.SAKURA.ne.jp (Tetsuo Handa) Date: Tue, 6 Apr 2010 21:08:05 +0900 Subject: [Tomoyo-dev 1234] =?iso-2022-jp?b?Y2NzdG9vbHMgGyRCJE4lXiVrJUElMyE8JWslUCUkJUobKEI=?= =?iso-2022-jp?b?GyRCJWoycj5DJCokaCRTNiZNLSVpJSQlViVpJWoyPSRLJEQkJCRGGyhC?= In-Reply-To: <201004040933.HBJ81727.WUNtPFPtPPZNESG@I-love.SAKURA.ne.jp> References: <20100404010610.817f213b.henrich@debian.or.jp> <201004040933.HBJ81727.WUNtPFPtPPZNESG@I-love.SAKURA.ne.jp> Message-ID: <201004062107.AGD02503.PPttZGFNNPWESUP@I-love.SAKURA.ne.jp>  熊猫です。 > こちらのほうは、 ncurses を準備するのが困難な環境向けに ccs-editpolicy-agent を > 用意したけれども、 ccs-loadpolicy や ccs-savepolicy などは ncurses を準備するのが > 困難な環境であっても使いたいので、 ncurses に依存したマルチコールバイナリという状態を > 解消して必要なプログラムだけを選べるようにするつもりです。ライブラリ化の要望が > 出ているため、共有ライブラリを使う形で作成する手順について勉強し、6月下旬の > http://www.apc.ehdo.go.jp/seminar/course/10semi22294.html までに > CAT760 ( http://tomoyo.sourceforge.jp/incoming/cat760.avi )でも使えるような > 状態にしたいと考えています。  ということで、マルチコールバイナリ状態を解消し、 ncurses に依存する ccs-editpolicy と ccs-queryd 以外は ncurses ライブラリとリンクさせない形に 変更してみました。また、共有ライブリとして /usr/lib/ccstools.so.1 を利用し、 個々のプログラムのサイズの増加を抑えられるようにしました。 http://sourceforge.jp/projects/tomoyo/svn/view/trunk/1.7.x/ccs-tools/ccstools/?root=tomoyo  どのように使われる共有ライブラリにするかが未定なので、どの処理をライブラリに 含めるかで迷っています。ということで、(特に宍道さんに)質問です。 どのように共有ライブラリを使おうと考えていますか? (1)ccstools パッケージに含まれていない別のアプリケーション(例えばGUI    プログラム)から /usr/lib/ccstools.so.1 をリンクしたいと考えていますか?    それとも、 ccstools パッケージ(に含まれている /usr/sbin/ccs-\* )から    だけしかリンクされないと考えていますか? (2)(1)が前者の場合、 /usr/lib/ccstools.so.1 のソースは    ccs-tools パッケージとは分離したほうが都合が良いですか? (3)(1)が前者の場合、別のアプリケーションから呼び出せるようにするために    /usr/lib/ccstools.so.1 には ccstools パッケージ内では1個のプログラム    からしか呼ばれない関数であっても詰め込んだ方が良いですか? (4)(1)が前者の場合、別のアプリケーションから呼び出せるようにするために    /usr/lib/ccstools.so.1 内の関数は static 関数として宣言しないように    する方が良いですか? Revision 3580 では(1)が後者で、 ccs-tools のリリース毎にバイナリ互換性が 無くなる(必要に応じて ccstools.so.2 ccstools.so.3 ・・・と増えていく)ことを 問題視しない方針で、 ccstools パッケージ内で1回しか呼ばれていない処理は ライブラリには含めない(個々のプログラムに直接埋め込む)ようにし、 ccstools パッケージのプログラムが直接呼び出さない変数や関数は static 変数/関数として 宣言するという仕様になっています。 From hiroshi.shinji @ gmail.com Fri Apr 9 17:25:29 2010 From: hiroshi.shinji @ gmail.com (Hiroshi Shinji) Date: Fri, 9 Apr 2010 17:25:29 +0900 Subject: [Tomoyo-dev 1235] Re: =?iso-2022-jp?b?Y2NzdG9vbHMgGyRCJE4lXiVrJUElMyE8JWslUCUkGyhC?= =?iso-2022-jp?b?GyRCJUolajJyPkMkKiRoJFM2Jk0tJWklJCVWJWklajI9GyhC?= =?iso-2022-jp?b?GyRCJEskRCQkJEYbKEI=?= In-Reply-To: <201004062107.AGD02503.PPttZGFNNPWESUP@I-love.SAKURA.ne.jp> References: <20100404010610.817f213b.henrich@debian.or.jp> <201004040933.HBJ81727.WUNtPFPtPPZNESG@I-love.SAKURA.ne.jp> <201004062107.AGD02503.PPttZGFNNPWESUP@I-love.SAKURA.ne.jp> Message-ID: 宍道です。 > ということで、マルチコールバイナリ状態を解消し、 ncurses に依存する > ccs-editpolicy と ccs-queryd 以外は ncurses ライブラリとリンクさせない形に > 変更してみました。また、共有ライブリとして /usr/lib/ccstools.so.1 を利用し、 > 個々のプログラムのサイズの増加を抑えられるようにしました。 小さいことですが、ライブラリ名は、ccstools とかではなく、libccs or libtomoyo などにしたほうが良くないですか? > (1)ccstools パッケージに含まれていない別のアプリケーション(例えばGUI > プログラム)から /usr/lib/ccstools.so.1 をリンクしたいと考えていますか? > それとも、 ccstools パッケージ(に含まれている /usr/sbin/ccs-\* )から > だけしかリンクされないと考えていますか? Yes. > (2)(1)が前者の場合、 /usr/lib/ccstools.so.1 のソースは > ccs-tools パッケージとは分離したほうが都合が良いですか? 特にこれはどちらでも良いかも。 ただ一緒の場合、makeするときにライブラリだけビルド、とかしてくれると うれしいですね。 > (3)(1)が前者の場合、別のアプリケーションから呼び出せるようにするために > /usr/lib/ccstools.so.1 には ccstools パッケージ内では1個のプログラム > からしか呼ばれない関数であっても詰め込んだ方が良いですか? > > (4)(1)が前者の場合、別のアプリケーションから呼び出せるようにするために > /usr/lib/ccstools.so.1 内の関数は static 関数として宣言しないように > する方が良いですか? 利用可能な関数は、取捨選択する必要はあります。 が、ちょっといまは、どれが欲しいとあげられる時間がないので、 すみません。 取り急ぎ。 2010年4月6日21:08 Tetsuo Handa : >  熊猫です。 > >> こちらのほうは、 ncurses を準備するのが困難な環境向けに ccs-editpolicy-agent を >> 用意したけれども、 ccs-loadpolicy や ccs-savepolicy などは ncurses を準備するのが >> 困難な環境であっても使いたいので、 ncurses に依存したマルチコールバイナリという状態を >> 解消して必要なプログラムだけを選べるようにするつもりです。ライブラリ化の要望が >> 出ているため、共有ライブラリを使う形で作成する手順について勉強し、6月下旬の >> http://www.apc.ehdo.go.jp/seminar/course/10semi22294.html までに >> CAT760 ( http://tomoyo.sourceforge.jp/incoming/cat760.avi )でも使えるような >> 状態にしたいと考えています。 > > ということで、マルチコールバイナリ状態を解消し、 ncurses に依存する > ccs-editpolicy と ccs-queryd 以外は ncurses ライブラリとリンクさせない形に > 変更してみました。また、共有ライブリとして /usr/lib/ccstools.so.1 を利用し、 > 個々のプログラムのサイズの増加を抑えられるようにしました。 > http://sourceforge.jp/projects/tomoyo/svn/view/trunk/1.7.x/ccs-tools/ccstools/?root=tomoyo > > どのように使われる共有ライブラリにするかが未定なので、どの処理をライブラリに > 含めるかで迷っています。ということで、(特に宍道さんに)質問です。 > どのように共有ライブラリを使おうと考えていますか? > > (1)ccstools パッケージに含まれていない別のアプリケーション(例えばGUI > プログラム)から /usr/lib/ccstools.so.1 をリンクしたいと考えていますか? > それとも、 ccstools パッケージ(に含まれている /usr/sbin/ccs-\* )から > だけしかリンクされないと考えていますか? > > (2)(1)が前者の場合、 /usr/lib/ccstools.so.1 のソースは > ccs-tools パッケージとは分離したほうが都合が良いですか? > > (3)(1)が前者の場合、別のアプリケーションから呼び出せるようにするために > /usr/lib/ccstools.so.1 には ccstools パッケージ内では1個のプログラム > からしか呼ばれない関数であっても詰め込んだ方が良いですか? > > (4)(1)が前者の場合、別のアプリケーションから呼び出せるようにするために > /usr/lib/ccstools.so.1 内の関数は static 関数として宣言しないように > する方が良いですか? > > Revision 3580 では(1)が後者で、 ccs-tools のリリース毎にバイナリ互換性が > 無くなる(必要に応じて ccstools.so.2 ccstools.so.3 ・・・と増えていく)ことを > 問題視しない方針で、 ccstools パッケージ内で1回しか呼ばれていない処理は > ライブラリには含めない(個々のプログラムに直接埋め込む)ようにし、 ccstools > パッケージのプログラムが直接呼び出さない変数や関数は static 変数/関数として > 宣言するという仕様になっています。 > > _______________________________________________ > tomoyo-dev mailing list > tomoyo-dev @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/tomoyo-dev > -- 宍道 洋 hiroshi.shinji @ gmail.com http://d.hatena.ne.jp/hshinji/ From from-tomoyo-dev @ I-love.SAKURA.ne.jp Fri Apr 9 23:48:10 2010 From: from-tomoyo-dev @ I-love.SAKURA.ne.jp (Tetsuo Handa) Date: Fri, 9 Apr 2010 23:48:10 +0900 Subject: [Tomoyo-dev 1236] Re: =?iso-2022-jp?b?Y2NzdG9vbHMgGyRCJE4lXiVrJUElMyE8JWslUCUkGyhC?= =?iso-2022-jp?b?GyRCJUolajJyPkMkKiRoJFM2Jk0tJWklJCVWJWklajI9JEskRCQkGyhC?= =?iso-2022-jp?b?GyRCJEYbKEI=?= In-Reply-To: References: <20100404010610.817f213b.henrich@debian.or.jp> <201004040933.HBJ81727.WUNtPFPtPPZNESG@I-love.SAKURA.ne.jp> <201004062107.AGD02503.PPttZGFNNPWESUP@I-love.SAKURA.ne.jp> Message-ID: <201004092348.EJB90103.NPPUtPtGNWSPEFZ@I-love.SAKURA.ne.jp>  熊猫です。 Hiroshi Shinji さんは書きました: > 小さいことですが、ライブラリ名は、ccstools とかではなく、libccs or libtomoyo > などにしたほうが良くないですか? lib〜.so というのがライブラリの命名規則ですので、 /usr/lib/libccstools.so.1 が 正しいパス名です。いつも /usr/lib/ccs と入力しているので、 lib/lib という 繰り返しに気が付いていなかったようです。(^x^; > > (1)ccstools パッケージに含まれていない別のアプリケーション(例えばGUI > > プログラム)から /usr/lib/ccstools.so.1 をリンクしたいと考えていますか? > > それとも、 ccstools パッケージ(に含まれている /usr/sbin/ccs-\* )から > > だけしかリンクされないと考えていますか? > > Yes. (2)の返事から考えると、この Yes は前者の意味ですね。 すると、 ccs-tools のリリース毎にバイナリ互換性が無くなるというのは なるべく避けるべきということですね。 > > (2)(1)が前者の場合、 /usr/lib/ccstools.so.1 のソースは > > ccs-tools パッケージとは分離したほうが都合が良いですか? > > 特にこれはどちらでも良いかも。 > ただ一緒の場合、makeするときにライブラリだけビルド、とかしてくれると > うれしいですね。 > これは Makefile の中で libccstools.so: ccstools.c ccstools.h $(CC) $(CFLAGS) -fPIC ccstools.c -shared -Wl,-soname,libccstools.so.1 -o libccstools.so.1.0.0 ln -sf libccstools.so.1.0.0 libccstools.so のようになっているので、 make all の代わりに make libccstools.so を実行すれば OKですね。 > > (3)(1)が前者の場合、別のアプリケーションから呼び出せるようにするために > > /usr/lib/ccstools.so.1 には ccstools パッケージ内では1個のプログラム > > からしか呼ばれない関数であっても詰め込んだ方が良いですか? > > > > (4)(1)が前者の場合、別のアプリケーションから呼び出せるようにするために > > /usr/lib/ccstools.so.1 内の関数は static 関数として宣言しないように > > する方が良いですか? > > 利用可能な関数は、取捨選択する必要はあります。 プログラム単位ではなく関数単位で取捨選択するとなると、デフォルトでは ccstools.c に含まれる全ての関数を static に設定し、コンフィグを使って関数毎に static キーワードを除外できるようにすれば、参照されなかった static 関数を コンパイラの最適化機能により切り捨ててもらうことができる・・・かな? From from-tomoyo-users @ I-love.SAKURA.ne.jp Mon Apr 12 21:55:34 2010 From: from-tomoyo-users @ I-love.SAKURA.ne.jp (Tetsuo Handa) Date: Mon, 12 Apr 2010 21:55:34 +0900 Subject: [Tomoyo-dev 1237] =?iso-2022-jp?b?MS43LjIgGyRCJE4lUSVDJUEkciVqJVUlbCVDJTclZSQ3GyhC?= =?iso-2022-jp?b?GyRCJF4kNyQ/ISMbKEI=?= In-Reply-To: <201004012238.CDB35965.GVFtPtSPTNSUPTNPZ@I-love.SAKURA.ne.jp> References: <201004012238.CDB35965.GVFtPtSPTNSUPTNPZ@I-love.SAKURA.ne.jp> Message-ID: <201004122155.GGD87534.FtPPTPZUPSSNGtTVN@I-love.SAKURA.ne.jp>  熊猫です。  ccs-patch-1.7.2-20100401.tar.gz に含まれている ccs-patch-$version.diff ($version <= 2.6.24)にバグが見つかりました。 TOMOYO の関数に渡すパラメータの型を統一するために、 2.6.24 以前向けの ccs-patch-$version.diff では struct nameidata から struct path への変換を 呼び出し側で行っていたのですが、その変換を行うために導入したマクロがC言語の 規約に違反していたため、 gcc 4.x でコンパイルされた場合には allow_pivot_root が 正常に動作していませんでした。 この問題を修正した tar ball をアップロードしました。 http://sourceforge.jp/frs/redir.php?f=/tomoyo/43375/ccs-patch-1.7.2-20100412.tar.gz MD5: 1111e0154b330d3de8941edc4737d85b 2.6.24 以前のカーネルで使用するために ccs-patch-1.7.2-20100401.tar.gz を ダウンロードされた場合は、 ccs-patch-1.7.2-20100412.tar.gz をダウンロード してください。 2.6.25 以降のカーネルで使用するために ccs-patch-1.7.2-20100401.tar.gz を ダウンロードされた場合は、 ccs-patch-1.7.2-20100412.tar.gz をダウンロード する必要はありません。