ディレクトリの作成またはファイルへの書き込み時にアクセスが拒否される

ディレクトリを作成するアクセス許可、またはディレクトリにファイルを書き込むアクセス許可がないというエラーが表示されることがあります。この場合は、ビルドを実行しているユーザーが所有していないディレクトリに、スクリプトが書き込みを試みていることが考えられます。

これは、多くのユーザーが CI 環境に移行するときのよくある問題です。

確認しておきたい大切なポイントは、MacOS ビルドの場合は distiller ユーザーとして、Linux ビルドの場合は一般的に ubuntu として、ビルドが実行されるということです。 これらのユーザーは、自分の $HOME フォルダーと、/tmp などの場所にのみ書き込みアクセス許可があります。 これは CI に固有の問題ではなく、ほとんどの Linux/Unix 環境のデフォルト設定です。

whoami コマンドを実行して、ビルドを実行しているユーザーを確認できます。

ソリューション

  1. 必要なファイルをビルド実行ユーザーがアクセス許可を持つフォルダーに保存します。
  2. 書き込みを試みる前に、chown コマンドを使用して、ディレクトリの所有権を変更します。

CircleCI では 1 番目のソリューションをおすすめします。 2 つ目のソリューションを使用する場合、MacOS と Linux の両方のビルドで、次のコマンドを使用できます。

chown -R $USER:$USER /path/to/directory

$USER は、現在ログインしているユーザーを示すグローバル環境変数です。

/path/to/directory は、書き込み先のパスに置き換えます。

この記事は役に立ちましたか?
748人中171人がこの記事が役に立ったと言っています

コメント

0件のコメント

記事コメントは受け付けていません。