私のアプリケーション(.out)は所有者専用の権限でフォルダに書き込んでその内容にアクセスできません。

私のアプリケーション(.out)は所有者専用の権限でフォルダに書き込んでその内容にアクセスできません。

Visual Studio Cross-Platform Buildを使用してアプリケーション(.out)ファイルをビルドするRaspberry Pi 3があります。 (.out) ファイルには全員の権限があります。これを実行すると、Piにいくつかの出力データを含むいくつかのテキストファイルを保持するフォルダが作成されます。ただし、データにアクセスするためにフォルダを開こうとすると、「開くエラー...権限が拒否されました」というエラーが発生します。何らかの理由で出力フォルダの権限は「所有者のみ」です。権限を変更するたびに「chmod」を使用する必要があります。これは非常に不便です。奇妙なことに、同じ「.out」を持つ他のPiデバイスがありますが、ファイルにアクセスでき、権限の問題はありません。この特定のデバイスに新しいOSイメージをインストールしようとしましたが、同じ問題が発生しました。どんなアイデアがありますか?

編集:これは出力フォルダを作成するために使用するコードです。

    if (mkdir(outputdir_time_tagged, 0700) == 0)
        printf("[INFO_] Output directory created successfully\n");

ベストアンサー1

プログラムが特権を設定しない限り、UMASKが使用されます。

でグローバルにUMASKを設定できます/etc/pam.d/common-session。現在のセッションにUMASKを設定できます

umask 007

特定のコマンドの場合でも:

(umask 002 &&  a.out)

おすすめ記事