こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ファイルのデフォルトパーミッション設定が出来ません

Red Hat Linux 8.0を使っているLinux入門者です。
デフォルトパーミッションを、
所有者以外の読み書きが出来ない様にしたいのですが、
umaskの設定がうまくいかずに困っております(T.T)
~/.bash_profile に「umask 066」と
下記サイトに出ている通りに追記したのですが、
( http://www.atmarkit.co.jp/flinux/rensai/security02/security02c.html )
X(GNOME)のターミナル上で設定が全く反映されないのです。
テキストモードや仮想コンソールでは
確かに設定が適用になっているのですが.....。
あと、suを実行後に確認すると何故かちゃんとなっています。
/etc/profile の方もいじってみましたが駄目でした。
ちょっと分かり辛いかもしれませんが、大体下記の様な状況です。


~/.bash_profileを編集後、rootでログイン
 × Xのターミナルでumaskコマンドで設定を確認
 ○ umask 066とコマンドラインから実行、確認
 × su を実行して確認
 ○ su - を実行して確認
 × シェルスクリプトにumask 066と書いて実行、確認
 ○ Ctrl+Alt+F1で仮想コンソールに切り替え、確認
 ○ テキストログイン後、umaskコマンドで確認

その他のユーザーでログイン
 ○ su - ユーザー名 を実行して確認
   その他はrootと同じ

○=設定が反映されている ×=変化無し 


という感じで全くのお手上げ状態なのです。
何か考えられる原因はありますでしょうか?
何分、Linux初心者で基本的な事が抜けているのかもしれません。
お気づきの点がございましたら、
どんな事でも結構ですのでご指摘頂ければと思います。
情報が足りない部分があれば補足致します。

どうか宜しくお願いします。

投稿日時 - 2003-04-27 19:51:17

QNo.533541

困ってます

質問者が選んだベストアンサー

ログインシェル(/etc/passwdに指定されている)がbashの場合

●まず最初に、ログイン時は

/etc/profile
~/.bash_profile
が読み込まれます。

~/.bash_profileの最初のほうで
~/.bashrc
を読み込んでいます。

~/.bashrcの中で
/etc/bashrc
を読み込んでいます。

/etc/profile
~/.bash_profile
~/.bashrc
/etc/bashrc
の順番ですね。

●ログイン後にbashを起動させたら
~/.bashrc
/etc/bashrc

の順番で実行されますね。

後はGNOME上などでterminalを起動する毎に

~/.bashrc
/etc/bashrc

の繰り返しですね。

umaskはシェル毎に設定する必要がありますので
~/.bashrc
/etc/bashrc
に記述すれば良いです。

------------------------------------------
/etc/profile
/etc/bashrc
~/.bash_profile
~/.bashrc

がいつ実行されるか自分で調べてみてください。
たとえば各スクリプトのはじめの方に

echo "/etc/profile start" >> /tmp/log

みたいなデバッグ文をつけて実行してみたら、よくわかります。

スクリプトの中で、別のスクリプトをロードしている事もあるので
ソースをちゃんと読んでみましょう。

投稿日時 - 2003-04-29 02:12:39

お礼

再度のご回答どうもありがとうございます。(^_^)
~/.bash_profileから.bashrcなど連続して
読み込みをしているとは全く知りませんでした。
Xのターミナル上で設定を有効にする為にも
.bashrcに書き込んでおけば確実という事になるのですね。
詳細なご説明に感謝いたします。
分かりやすく解説していただいたお陰で
また一つ知識を深める事が出来ました。
教えて頂いた情報を参考にこれからじっくり研究致します。

xjdさん、本当にどうもありがとうございました。(^_^)

投稿日時 - 2003-04-29 22:50:43

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

xjd

~/.bashrcの「最後」に記述してみてはいかがでしょう?

投稿日時 - 2003-04-27 22:45:07

お礼

xjdさん、ご回答どうもありがとうございます。
教えて頂いた通りに「~/.bashrc」に追記した所、
見事設定が反映されました。
これで起動時に一々umaskコマンドを実行する
必要も無くなり快適になりそうです。
本当に助かりました。心から感謝いたします。(^_^)

同時に新たな疑問も沸いてきました。(^_^;;)
今まで見たサイトの情報から
「.bash_profile も .bashrc も
シェル起動時に読み込まれるもので
.bashrc はログインシェル以外の
一般のシェルを起動した時に実行される」
と見て、理解していたつもりになっていたのですが、
ログインシェルはデフォルト設定のままで「bash」なのに
.bash_profiles を読み込まずに
.bashrc を読んでいるというのは
設定がどこか狂ってしまったのでしょうか......。
シェルスクリプトを実行しても駄目というのも変ですよね。
(ls など他のコマンドも書き込んで試してみましたので、
スクリプトの書式が間違っているという事ではないはずです)
OSインストール後いじった事といえば、
@ITやZDNETなどの記事を参考に不要なサービスを停止したり、
使わないIDとグループ(サーバー用のものなど)を削除したり、
SUIDとSGIDを無効にしたりしたぐらいなのですが.....。
(su と passwdコマンド以外。
rootでも駄目なのでこれは今回の事には関係なさそうでしょうか)

何かお気づきの点がありましたら、アドバイス頂けると幸いです。
ご回答どうもありがとうございました。(^_^)

投稿日時 - 2003-04-29 00:12:16

あなたにオススメの質問