UbuntuのSDKMANツールのフォルダとファイル権限

UbuntuのSDKMANツールのフォルダとファイル権限

私はLinux Mintを使用してローカルCIサーバーを設定したいJava開発者です。私が使用したい重要なツールの1つは、さまざまなバージョンのライブラリ/言語(Java / Scala / Mavenなど)を簡単にインストールして管理するためのツールであるSDKMANです。

これまで、私はいつも一般ユーザーとしてローカルコンピュータにこのプログラムをインストールしてきました。問題は、私が設定したシステムに複数の異なるユーザー(Jenkins / Docker /などの特定のユーザー)が必要であることです。

これらのユーザーがSDKMANを使用できるようにするためのガイドに従いました。ここに紹介- ほぼ成功しました。インストールはROOTで行われます。ユーザーがこのフォルダにアクセスできるようにするには、次の手順を実行しました。

sudo chmod -R a+w /usr/local/sdkman

わかりました、それをもたらします。他のユーザーとしてログインしました(ジェンキンス)最新バージョンのScalaをインストールしてみてください。設置プロセスは順調でした。ただし、もう一度ログインして別のユーザーとしてログインした場合(ルーストアバウト)Scalaをインストールしてみましたが、バージョンが異なります。これは質問を提起します。出力は次のとおりです

$ sdk install scala 2.12.7

Downloading: scala 2.12.7

In progress...

Installing: scala 2.12.7
mv: cannot move '/usr/local/sdkman/tmp/out/scala-2.12.7' to 
'/usr/local/sdkman/candidates/scala/2.12.7': Permission denied
Done installing!

Do you want scala 2.12.7 to be set as default? (Y/n): n

フォルダだと思います。/usr/local/sdkman/候補/スカラーユーザーが作成しましたジェンキンス権限/所有権を次のように設定します。

drwxrwxr-x  3 jenkins jenkins 4096 May  9 12:06 scala

したがって、ユーザーはルーストアバウト何も追加/修正できません!したがって、SDKMANの使用の完全な概念はここに適用されません!言語/ライブラリをインストールできますが、ユーザーはアクセス権がないため、他のバージョンをインストールできないようです。

私の質問は、目的の結果を得るためにここで権限を処理する方法です(各ユーザーは必要なものをインストールできます)。 SDKMANユーザー用に別々のグループを作成し、デフォルトフォルダの再帰グループの所有権を「sdk」に変更しようとしましたが、新しい候補が作成された場合、所有者/グループは操作を実行するユーザー名と同じで同じです。

一時的な修正方法は、グループソリューションを実行し、必要なすべてのバージョンのツール/言語をインストールしてから、次の手順を実行することです。

sudo chgrp -R sdk /usr/local/sdkman

フォルダに。しかし、もう少し強力なソリューションがありますか?

答え1

これはsdkmanフォーラムディスカッションからのものです。glitterのsdkman/ユーザーの問題:

sdkman現在は単にユーザースペースツールであり、そのように設計されています。明らかな理由から、このフォルダを共有しないことをお勧めします。複数のユーザーに共有フォルダの状態を変更させますかsdkman?私には匂いがしません。

関連情報