
Ubuntu日本語フォーラム

ログインしていません。
こんにちは。
システム全体ではなく、個別ユーザーのumaskを変更したいのですが、
どこの設定を変更すれば良いのでしょうか?
宜しくお願い致します。
最後の編集者: Ron (2008-09-30 21:34:16)
オフライン
もしかしたら他の方からBest solutionが出るかもしれませんが、
基本的には、各ユーザディレクトリにある.bash_profileにumask値を設定しておけばよいかと思います。
umaskが異なるユーザを登録する場合は、スケルトンディレクトリを複数もっておいて、
useraddで各ユーザの登録時にスケルトンディレクトリを切り替えるというのはどうでしょうか。
オフライン
ありがとうございます。
ユーザディレクトリに .bash_profile ファイルがありませんでした。
隠しファイルは表示する設定にしてあり、他の隠しファイルは表示されています。
無い場合には、自分で作成するのでしょうか?
勝手に作成してシステムに異常をきたすと厄介なので試していませんが、
空のファイルを作成して、
umask 066
など、任意のumask値を書き込むだけで良いのでしょうか。
宜しくお願い致します。
オフライン
個別のユーザとして自分だけ変更したいということであれば、
~/配下に.bash_profileを作成して
umask 066
で問題ありません。
オフライン
ありがとうございます。
770 ディレクトリ
660 ファイル
この様なパーミッションにしたかったので、
/home/ユーザー名/.bash_profile
を作成し、
umask 007
と記述し保存、再起動後にコマンドライン端末で、
umask
で確認してみたところ umask値は元の 022 のままでした。
このパソコンは私1人しか使わず、登録してあるユーザーも1つです。
何か他に設定すべき箇所があるのでしょうか?
宜しくお願い致します。
オフライン
umask は .profile で設定しているようです
#umask 022
上のようにコメントアウトされていたと思いますので、このコメント(#) を外して 022 を 007 (にしたいんですよね) に修正してログインし直せばいいはずです
必要なユーザーそれぞれのホームディレクトリにある .profile を変更してください
新規に作成するユーザーに対してもこの変更を有効にしたいのなら /etc/skel ディレクトリに .profile があるのでこれを修正します
ユーザーを作るときに /etc/skel にあるファイルが、ユーザーのホームディレクトリにコピーされます
全ユーザーの初期値を変更するなら、/etc/profile の中に umask の行があるのでこれを修正する方法もありますしてください
ただし、/etc/profile を修正すると、デーモン動作用のユーザー(mail や www-data など)も影響を受けますので、お勧めはできません
なお、デフォルトの状態では .bash_profile は存在していなかったような気がします
必要なければ、消しておく方がいいでしょう
オフライン
ありがとうございます。
ユーザーディレクトリには .profile がありませんでしたが、
これも空のファイルを作ってumask値だけを記入しても良いのでしょうか?
/etc/skel/.profile を編集した場合はユーザー追加時にユーザーホームディレクトリに自動でコピーされるとの事ですが、
このファイルにはumask以外にも下記のような記述がありました。
================================
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
=================================
今回手動で .profile を作った場合には、
umask 007
という記述しか無い事になりますが、上記の記述が無くファイルを作っても大丈夫でしょうか?
宜しくお願い致します。
オフライン
まずは、ごめんなさい
.profile は独自に編集していたことを忘れていました
OSのインストールしたままの状態だと、umask は /etc/profile で設定しているだけのようです
ユーザーのホームディレクトリに .profile が無いのなら、/etc/skel/.profile の最後の行に umask を追加して、このファイルをホームディレクトリにコピーする方をお勧めします
このとき、/etc/skel の中のファイルを全部一緒にコピーした方が良いでしょう
編集、コピー後のファイル (/etc/skel/.profile および ユーザーのホームディレクトリの .profile) は以下のようになります
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
umask 007本当はこれらのファイルが何を行っているのかを理解した上で、どのファイルをコピーするかを決めるべきでしょうが、OSをインストールしてからホームディレクトリの同じ名前のファイルを編集していないのであれば、/etc/skel から全部コピーしても問題ないはずです
最後の編集者: ry (2008-09-30 12:23:37)
オフライン
ありがとうございます。
/etc/skel/.profile を編集・その他のファイルと共にコピーし、
ユーザーのumask値を変更する事が出来ました。
新規作成のディレクトリやファイルにきちんとパーミッションが反映されています。
丁寧で分かり易い解説をして頂きまして、ありがとうございました。
おかげさまで解決する事が出来ました。
オフライン