umaskがより制限的であるにもかかわらず、私のホームディレクトリのファイルが誰でも書き込み可能に生成されるのはなぜですか?

umaskがより制限的であるにもかかわらず、私のホームディレクトリのファイルが誰でも書き込み可能に生成されるのはなぜですか?

新しいファイルとディレクトリに対する権限の動作が少し奇妙であることに気づきました。まず、umaskは正解を返すようです。

$ umask
0002

これは、私のユーザーと私のグループが完全なアクセス権を持ち、残りの世界には書き込みアクセス権とsuidがないことを意味します。しかし、$ HOMEにファイルを作成すると、次のようになります。

$ ls -l testfile 
-rw-rw-rw- 1 robe robe 0 mar 16 12:58 testfile

つまり、全員に書き込み権限を付与します。ディレクトリでも同じことが起こります。

$ ls -ld testdir
drwxrwxrwx 2 robe robe 6 mar 16 13:00 testdir

これは0002ではなくumask 0000のような気がします。デフォルトの0002または0022を変更した一部のumaskインスタンスに対してすべての/ etcを検索しましたが、何も見つかりませんでした。これはデフォルトのCentOS 5.5インストールです。なぜこれが起こるのかわかりますか?

答え1

私の質問に答えるのが適切かどうかわかりません。それ以外の場合は、編集者にこれについてのアドバイスを求めます。よろしくお願いします。

私は謎を解決したと思います。問題は、XFSボリュームにデフォルトのACLがないことです。以下は、影響を受けるディレクトリの1つである/ srv / backupsのACLエントリです。

# file: srv/backups
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

「mkdir test」または「touch testfile」を実行するたびに777の権限が付与されます。だから私はこれをしました:

setfacl -m d:u::rwx /srv/backups

次のようにACLを保持します。

# file: srv/backups
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:other::r-x

以前はACLはありませんでしたが、今はあります。 「ls -l」を実行すると、「+」記号が追加された権限を表示できます。奇跡的に、「mkdir test」と「touch testfile」が予想される権限で動作します。

# ls -l testfile 
-rw-r--r-- 1 root root 0 Dec 20 10:00 testfile
# ls -ld testdir
drwxr-xr-x+ 2 root root 6 Dec 20 10:00 testdir

なぜこれが起こるのかわかりません。 XFSはデフォルトのACLがないのが好きではなく、ACLが発生すると奇妙に動作します。また、Debian / UbuntuではなくCentOSでのみこれが起こるのを見ました。それはおそらく、カーネルのXFSバージョン、または類似のものと関連があるかもしれません。全く知らない。

とにかくこの問題は解決されました。すべての提案に感謝します:-)

答え2

creat 呼び出しは、umask に優先する権限を明示的に指定できます。

どうやって作ったのか答えませんでしたtestfile,testdir

以下を使用してファイルを作成touch testfileします。

答え3

/etc/login.defsでUSERGROUPS_ENAB変数を見つけます。

無効にするようにコメントしました#USERGROUPS_ENABはい

現在のユーザーのumaskも変更するには、まず前の手順に従い、次の手順を実行する必要があります。

027を例に挙げてみよう

echo "umask 027" >> ~/.bashrc && pkill -KILL -u your_username_here

echo "umask 027" >> ~/.bashrc このコマンドは、構成ファイルのumaskのデフォルト値を設定します。

これにより強制終了します。

再ログイン後

umaskコマンドを再実行して動作することを確認してください。

関連情報