vs code でリモートサーバー開発でユーザのグループ追加を反映するには
vs code でクライアントのリモートサーバーで久しぶりに作業をした際、ハマったのでメモしておきます。
経緯
具体的には、apache権限になっているファイルを弄りたかったために、アカウント taka をapache グループについかして、プロジェクト内のファイル、ディレクトリを グループ権限で編集可にしました。
問題点
で、グループ追加を反映させるために、通常はログアウト、再ログインでよいのだけど、vs code は切断して、再接続しても、vs code を一旦閉じても、全然グループが反映されませんでした。
対応
vs code はサーバー側に、プロセスが生き残って、接続のために再利用するということがわかり、それを一旦停止する必要がありました。
具体的には、vs code で、一旦リモートを切断して、
Ctrl + Shift + P で、コマンドパレットを開いて、
Remote-SSH: Kill VS Code Server on Host
と入力します。
で、サーバーを入力するか、.ssh/config の設定から選択すればOKです。
ファイルアクセス権限変更のメモ
ちなみに、今回のように、ファイルの所有者じゃないためアクセスできないときの対応方法をメモしておきます。
今回のケースでは、すべてapache:apache の所有だったので、apacheグループに追加して、ディレクトリ、フォルダの権限を一括変更しました。
# 現在のユーザーをapacheグループに追加
sudo usermod -a -G apache $(whoami)
# ディレクトリとファイルの権限を一括設定
sudo find . -type d -exec chmod 775 {} \;
sudo find . -type f -exec chmod 664 {} \;
ディレクトリとファイルの権限設定は下記のようにやるとより高速でした。
find . -type d -print0 | sudo xargs -0 chmod 775
find . -type f -print0 | sudo xargs -0 chmod 664
グループ設定が反映されているかどうかは、groupコマンドでわかります。
[taka@server ~]$ groups
taka wheel apache