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

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

これは、多くのユーザーが CI 環境に移行するときに体験することがある失敗です。

確認しておきたい大切なポイントは、MacOS ビルドの場合は distiller ユーザーとして、Linux ビルドの場合は一般的に ubunutu として、ビルドが実行されるということです。 これらのユーザーは、自分の $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 は、書き込み先のパスに置き換えます。

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

コメント

0件のコメント

ログインしてコメントを残してください。