1

このコードを実行するとエラーCouldn't create backup sub-directory: Permission deniedが発生しますが、完全な権限を付与し、ubuntu で管理者アカウントを使用しているため、理由がわかりません。

umask(0777);
int folder_date_status = mkdir(filepath_W, 0777);

if(folder_date_status == -1){
    perror("Couldn't create backup sub-directory");
        return -1;
    }
4

2 に答える 2

2

デフォルトでは、管理者アカウントは完全な権限で実行されません。これは、実行するプログラムが予期せず特権ユーザーとして動作しないようにするためです (つまり、明示的に許可を与える必要があります)。

特権アクセスが必要なディレクトリにサブディレクトリを作成する権限をプログラムに与えるには、 を使用してみてくださいsudo

プログラム名が という名前の場合はmyprogram、次を実行してみてください。

sudo ./myprogram

次に、要求された場合はパスワードを入力します。

スーパーユーザーアクセスは、書き込みが制限されたディレクトリ (たとえば、root または別のユーザーが所有する制限されたディレクトリ) にサブディレクトリを作成しようとする場合にのみ必要であることに注意してください。また、親ディレクトリが存在することも確認してください (存在しない場合は、エラーが発生する可能性もあります)。

于 2013-04-19T23:44:48.580 に答える
0

filepath_w を確認しましたか? 読み取り、書き込み、実行の権限はありますか? 次のように、絶対パス名を使用して tmp ディレクトリを指すことをお勧めします。

filepath_w = "/tmp/ディレクトリ"

于 2013-04-20T00:12:03.020 に答える