web-dev-qa-db-ja.com

umaskをグローバルに設定する方法は?

プライベートユーザーグループの設定を使用しています。つまり、ユーザーfooのホームディレクトリはfoo:fooではなくfoo:usersによって所有されています。

これを機能させるには、umaskをグローバルに002に設定する必要があります。

簡単なgrep -RIi umask /etc/*の後、しばらくの間、/etc/login.defsUMASKエントリを変更することでうまくいくように思われました。それも行います-consoleログインの場合のみ。

デスクトップにログインしてそこでターミナルを開くと、デフォルトのumask 022が表示されます。メニューから起動したアプリから作成したファイルも同様です。どうやら、ディスプレイマネージャー(または責任のあるX11コンポーネント)は、コンソールログインとは異なる設定を取得し、それがどれであるかがわかれば気になります。 (/etc/init.d/rcの設定を変更しようとしましたが、役に立ちませんでした。)

X11デスクトップ環境でもメモを取得できるように、umaskグローバル(およびすべてのユーザー)をどのように/どこで設定しますか?

(システムはLinux Mint/Ubuntuであり、何かが変更された場合に備えて...)

6
DevSolar

ステートメントを導入することにより、umaskをグローバルに設定できます

 umask 022

(たとえば)/ etc/profileまたは/ etc/bashrcのいずれか。

または、Debianシステムを使用しているため、PAMを使用することもできます。これを有効にするには、最初にファイル/etc/pam.d/common-sessionを編集し、次の行を追加します。

 session optional pam_umask.so

次に、ファイル/etc/login.defsを編集し、行を追加(または変更)します。

 UMASK           002

これらの設定は次の再起動後に適用されますが、注意してください。どちらの方法でも、たとえばユーザー自身の〜/ .bashrcでユーザーが選択した設定に常に置き換えることができます。

Umaskを変更できないようにすることに本当に熱心な場合は、/ etc/fstabのディスク構成を使用できます。ご存知のように、使用可能なオプションと構文はファイルシステムのタイプによって異なります。

6
MariusMatutiae