デフォルトのファイル権限を666(umaskが設定される前)から04501に変更するにはどうすればよいですか?

デフォルトのファイル権限を666(umaskが設定される前)から04501に変更するにはどうすればよいですか?

CentOS 6.5のインストールでは、突然新しいファイルまたは再生成されたファイルに対するファイル権限の処理に問題が発生し始めました。タッチを使用してファイルを作成すると、通常の644または-rw-r--r--の代わりに-rs------xが新しいファイルに割り当てられた権限で表示されます。私はrootとしてログインし、個人の/home/myusernameディレクトリにこのファイルを作成しようとしています。

'strace touch filename 2>&1 | grep filename 'コマンドを使用してstrace on touchを実行すると、次のようになります。

open("filename", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 04501) = 3 04501 は通常、umask 設定を適用する前にファイルのデフォルト権限である 666 を表示する場所です (私は 0022)。

このボックスに対してAVGを実行し、rkhunterを実行し、数日間検索しましたが、アイデアはありません。

助けてくれてありがとう。

ベストアンサー1

とても悪いニュースのようです。 GNU coreutilsにはtouch次のコードが含まれています。

      int default_permissions =
        S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
      fd = fd_reopen (STDIN_FILENO, file,
                      O_WRONLY | O_CREAT | O_NONBLOCK | O_NOCTTY,
                      default_permissions);

これは、常にまったく同じ権限を持つファイルを生成し、default_permissions常に値0666(ソースコード内のシンボル定数で表される)を持つことを示しています。

あなたのコピーがtouch改ざんされているようです。特に疑わしい点は、set-user-id ビットが設定された権限を使用することです。

おすすめ記事