お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2008-09-29 23:26:47

Ron
メンバ
登録日: 2008-04-09

[解決済み]ユーザーのumaskを変更するには?

 
こんにちは。

システム全体ではなく、個別ユーザーのumaskを変更したいのですが、
どこの設定を変更すれば良いのでしょうか?

宜しくお願い致します。

最後の編集者: Ron (2008-09-30 21:34:16)

オフライン

 

#2 2008-09-29 23:36:09

kk
メンバ
From: Hyogo
登録日: 2008-03-30

Re: [解決済み]ユーザーのumaskを変更するには?

もしかしたら他の方からBest solutionが出るかもしれませんが、
基本的には、各ユーザディレクトリにある.bash_profileにumask値を設定しておけばよいかと思います。

umaskが異なるユーザを登録する場合は、スケルトンディレクトリを複数もっておいて、
useraddで各ユーザの登録時にスケルトンディレクトリを切り替えるというのはどうでしょうか。

オフライン

 

#3 2008-09-30 01:02:57

Ron
メンバ
登録日: 2008-04-09

Re: [解決済み]ユーザーのumaskを変更するには?

 
ありがとうございます。

ユーザディレクトリに .bash_profile ファイルがありませんでした。
隠しファイルは表示する設定にしてあり、他の隠しファイルは表示されています。
無い場合には、自分で作成するのでしょうか?

勝手に作成してシステムに異常をきたすと厄介なので試していませんが、
空のファイルを作成して、

umask 066

など、任意のumask値を書き込むだけで良いのでしょうか。

宜しくお願い致します。
 

オフライン

 

#4 2008-09-30 01:17:23

kk
メンバ
From: Hyogo
登録日: 2008-03-30

Re: [解決済み]ユーザーのumaskを変更するには?

個別のユーザとして自分だけ変更したいということであれば、
~/配下に.bash_profileを作成して

コード:

umask 066

で問題ありません。

オフライン

 

#5 2008-09-30 02:14:22

Ron
メンバ
登録日: 2008-04-09

Re: [解決済み]ユーザーのumaskを変更するには?

 
ありがとうございます。

770   ディレクトリ
660   ファイル
この様なパーミッションにしたかったので、

/home/ユーザー名/.bash_profile

を作成し、

umask 007

と記述し保存、再起動後にコマンドライン端末で、

umask

で確認してみたところ umask値は元の 022 のままでした。
このパソコンは私1人しか使わず、登録してあるユーザーも1つです。

何か他に設定すべき箇所があるのでしょうか?
宜しくお願い致します。
 

オフライン

 

#6 2008-09-30 08:07:33

ry
メンバ
登録日: 2008-07-30

Re: [解決済み]ユーザーのumaskを変更するには?

umask は .profile で設定しているようです

コード:

#umask 022

上のようにコメントアウトされていたと思いますので、このコメント(#) を外して 022 を 007 (にしたいんですよね) に修正してログインし直せばいいはずです

必要なユーザーそれぞれのホームディレクトリにある .profile を変更してください
新規に作成するユーザーに対してもこの変更を有効にしたいのなら /etc/skel ディレクトリに .profile があるのでこれを修正します
ユーザーを作るときに /etc/skel にあるファイルが、ユーザーのホームディレクトリにコピーされます

全ユーザーの初期値を変更するなら、/etc/profile の中に umask の行があるのでこれを修正する方法もありますしてください
ただし、/etc/profile を修正すると、デーモン動作用のユーザー(mail や www-data など)も影響を受けますので、お勧めはできません


なお、デフォルトの状態では .bash_profile は存在していなかったような気がします
必要なければ、消しておく方がいいでしょう

オフライン

 

#7 2008-09-30 08:39:35

Ron
メンバ
登録日: 2008-04-09

Re: [解決済み]ユーザーのumaskを変更するには?

 
ありがとうございます。

ユーザーディレクトリには .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

という記述しか無い事になりますが、上記の記述が無くファイルを作っても大丈夫でしょうか?
宜しくお願い致します。
 

オフライン

 

#8 2008-09-30 12:19:23

ry
メンバ
登録日: 2008-07-30

Re: [解決済み]ユーザーのumaskを変更するには?

まずは、ごめんなさい
.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)

オフライン

 

#9 2008-09-30 21:29:01

Ron
メンバ
登録日: 2008-04-09

Re: [解決済み]ユーザーのumaskを変更するには?

 
ありがとうございます。

/etc/skel/.profile を編集・その他のファイルと共にコピーし、
ユーザーのumask値を変更する事が出来ました。

新規作成のディレクトリやファイルにきちんとパーミッションが反映されています。


丁寧で分かり易い解説をして頂きまして、ありがとうございました。
おかげさまで解決する事が出来ました。
 

オフライン

 

Board footer

Powered by FluxBB