おはようございます、さとうです。
openSuSE10.3でsetgid(sgid)をディレクトリに対してchmodしてみたところ、
意図した通りになってくれません。以下の様にシェルを叩いてみました。
# groupadd hoge
# usermod -g hoge user1
# usermod -g hoge user2
# id user1
uid=10001(user1) gid=100(users) groups=100(users),1000(hoge)
# id user2
uid=10002(user2) gid=100(users) groups=100(users),1000(hoge)
# mkdir /share
# chgrp -R hoge /share
# chmod -R 2770 /share
/shareをuser1とuser2で利用したいと思い、sgidをセットしました。そして、
user1でファイルを作ると‥
% cd /share
% touch test.txt
drwsrws--- 2 root hoge 4096 2008-09-14 04:55 ./
drwxrwx--- 4 root root 4096 2008-09-14 04:16 ../
-rw-r--r-- 1 user1 hoge 0 2008-09-14 04:55 test.txt
あれ?
test.txtが770になるのを期待していたんですが、そうはならず、644に‥。こ
れはsgidが効いてないということなんでしょうか。
なんだか凡ミスをしているような気がするのですが、どうにもならな
かったので教えてください。
==-----------------------
ballistyx
お早うございます、山中です。 さとうさんと同じように検証してみました。 ただ、「usermod -g」だとデフォルトグループを変えて しまうので「usermod -G」にしてやりました。
% cd /share % touch test.txt drwsrws--- 2 root hoge 4096 2008-09-14 04:55 ./ drwxrwx--- 4 root root 4096 2008-09-14 04:16 ../ -rw-r--r-- 1 user1 hoge 0 2008-09-14 04:55 test.txt
あれ? test.txtが770になるのを期待していたんですが、そうはならず、644に‥。こ れはsgidが効いてないということなんでしょうか。
私も同じようになりました。でもこれは別におかしな事では ないのでは? そもそもディレクトリにsgidを付けた場合の動作は、 「sgidディレクトリ以下でファイルなどを作成すると、ファイルなど の所有グループがsgidディレクトリの所有グループと同じになる。」 です。 この場合だと、test.txtの所有グループがhogeになっているので 正しい動作だといえます。 (SUSEだけでなくCentOSでも検証したところ、同じ挙動でした) さとうさんのおっしゃるパーミッションはまた別のumaskの話では ないでしょうか?umaskが022(デフォルト)のユーザがファイルを 作成すると644になるのが普通です。 --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
今井です。 何度も送ってるんだけどブラックホールに吸い込まれる....。 シェルのumaskが効いてるんだと思います。 umaskの値を変更してみると良いのでは? それからtouchコマンドでファイル作るだけでは パーミッションで実行権まで付加されないはずですので 770ではなく664もしくは660になるはずです。 #さてこのメイルは3回目のチャレンジだ。 #最近ブラックホールに吸い込まれる確率が上昇中....。 #途中ですっぱり破棄されてるようだが....。 #こんなん続くようであればML購読する意味が半減。 日曜日 14 9月 2008 05:13:48 に ballistyx さんは書きました:
openSuSE10.3でsetgid(sgid)をディレクトリに対してchmodしてみたところ、 意図した通りになってくれません。以下の様にシェルを叩いてみました。
# groupadd hoge # usermod -g hoge user1 # usermod -g hoge user2 # id user1 uid=10001(user1) gid=100(users) groups=100(users),1000(hoge) # id user2 uid=10002(user2) gid=100(users) groups=100(users),1000(hoge) # mkdir /share # chgrp -R hoge /share # chmod -R 2770 /share
/shareをuser1とuser2で利用したいと思い、sgidをセットしました。そして、 user1でファイルを作ると‥
% cd /share % touch test.txt drwsrws--- 2 root hoge 4096 2008-09-14 04:55 ./ drwxrwx--- 4 root root 4096 2008-09-14 04:16 ../ -rw-r--r-- 1 user1 hoge 0 2008-09-14 04:55 test.txt
あれ? test.txtが770になるのを期待していたんですが、そうはならず、644に‥。こ れはsgidが効いてないということなんでしょうか。
なんだか凡ミスをしているような気がするのですが、どうにもならな かったので教えてください。
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 今井 優 mail: maimai@coral.ocn.ne.jp ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
さとうです。
山中さん、今井さんありがとうございます。ご指摘通り、sgidの問題というよ
りumaskの問題だったようです。ユーザ側でumaskを指定して解決しました。
手元のCentOS5.2やらubuntuやら他のディストリビューションでも試してみた
のですが、useraddした時のデフォルトが0002になっていたのがCentOSだけだっ
たので(それも不思議ですが)、「sgidビットを立てれば配下に作ったファイル
もディレクトリのパーミッションに従う」と言う思い違いをしていたようです。
巷のTipsでは、ユーザのumaskが0002というのが前提で解説されていたのです
が、そういうものなんでしょうか‥。
・複数のユーザーで共有ディレクトリを使いたい
http://www.itmedia.co.jp/help/tips/linux/l0461.html
・SGIDビッドとスティッキービットの設定例
http://www.thinkit.co.jp/cert/article/0604/1/2/3.htm
・特殊なアクセス権
http://itpro.nikkeibp.co.jp/article/COLUMN/20080219/294154/
ともあれ、とりあえずは解決です。
ありがとうございました。
==-------------------------------------------------
Tomoatsu *ballistyx* Sato
今井です。 月曜日 15 9月 2008 02:07:43 に ballistyx さんは書きました:
手元のCentOS5.2やらubuntuやら他のディストリビューションでも試してみた のですが、useraddした時のデフォルトが0002になっていたのがCentOSだけだっ たので(それも不思議ですが)、「sgidビットを立てれば配下に作ったファイル もディレクトリのパーミッションに従う」と言う思い違いをしていたようです。
巷のTipsでは、ユーザのumaskが0002というのが前提で解説されていたのです が、そういうものなんでしょうか‥。
運用方針、運用形態によるものではないかと思います。 大人数で協力してやる様な場合にはumask 0002が扱いやすく 少人数でそれぞれ独自に邪魔をしない(させない)様にやってる場 合や、少しでもセキュリティ面できっちり管理しておきたい場合 にはumask 0022の方が扱いやすいでしょうから。 umask 0022であっても、設定(個別だけでなく全体でも)によって umask 0002をデフォルトにできるので運用方針、形態に合わせて 変更すれば良いと思います。 openSUSEでもログインアカウント全体を一気に変えたい場合には /etc/login.defs等を変更することで可能ですから。 -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 今井 優 mail: maimai@coral.ocn.ne.jp web: http://www10.ocn.ne.jp/~masimai/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
participants (3)
-
ballistyx
-
Masaru Imai
-
Yamanaka Yuu