
私のユーザーアカウントでumask
myに設定します。しかし、rootになる方法(例えば、ttyからrootとして直接ログインしたり、sudoやsuを使って)に関係なく、rootにaを使うようにしたいと思います。 rootでttyにログインするとこれがわかりますので問題ありません。設定したので022
.bashrc
umask
077
077
sudo
/etc/sudoers
Defaults umask = 0022
Defaults umask_override
わかりました077
、またとても良いです。の場合はsu
/root/.bashrcで設定できます。
umask 022
私はそれを理解していますumask
が、077
それが正しい方法だとは確信していません。
どのように設定しますかumask
?su root
潜在的に関連性があるのは/etc/login.defs
私のことです。
UMASK 077
USERGROUPS_ENAB yes
答え1
この回答はbashに固有のものであり、他のシェルにも同様の機能がありますが、あなたの回答に記載されているので、.bashrc
Bashを使用しているとします。
あなたが経験しているのは、シェルがインタラクティブシェルまたはログインシェルとして呼び出される可能性があることです。
bash -l
- ログインbash -i
- インタラクティブ
Bashのマニュアルページの「INVOCATION」セクションを見ると、次の2つのコメントが表示されます。
ログイン
ログインシェルの引数を持たない最初の文字は、-または--loginオプションで始まります。
インタラクティブ
対話式シェルは、オプションではなく引数を取らず、-cオプションなしで標準入力とエラーが端末に接続されているか(isatty(3)によって決まります)、-iオプションで始まるシェルです。
bashが対話型の場合、PS1が設定され、$ -にiが含まれているため、シェルスクリプトまたは起動ファイルがこの状態をテストできます。
対話型およびログインシェルは、次の順序で構成ファイルを読み取ります。まず、次のようにします。
- /etc/設定ファイル
以下は、次の順序の1つです(最初に見つかった順序)。
- ~/.bash_profile
- ~/.bash_login
- ~/.プロフィール
インタラクティブシェル(ログインシェルではない)~/.bashrc
は追加の設定ファイルを読みません/etc/bashrc
。彼らは、~/.bashrc
次の理由で文書全体でこのセクションを読んでいます。
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
それでは、umaskはどうですか?
2種類のシェルから読み取ることができるようにするには、umask
2種類のシェル呼び出しで読み取ることができる上記のファイルの1つにそのファイルを含める必要があります/root/.bash_profile
。
答え2
ルートのumaskを設定/root/.profile
し、su
シェルがログインシェルで始まるように指示できます。
su -