私はSSHを介してDebianサーバーに接続しており、同時に複数の接続を避けるためにtmuxを使用しています。
ディレクトリ(ここ/opt/syncserver
)の権限を変更し、所有者をgroupとuserに設定しましたwww-data
。このディレクトリに対する権限はの権限と同じです770
(chmod
所有者rwxrwx---
とグループに対する読み取り/書き込み/実行)。
その後、以前はグループにいなかったので、user1
デフォルトのユーザー(ここでそれを呼び出す)をグループに追加しました。www-data
その後、成功せずに新しく変更されたディレクトリでcdを試みました(Permission denied
エラー)。
同じtmuxセッション内に新しいシェルを作成しても問題は解決しません(この質問の重複を参照)。
同じユーザーを使用して別のSSHセッションを開始してみましたが、ディレクトリに入るのに問題はありませんでした。
tmuxセッションで作成された新しいシェルが権限の変更をどのように考慮しないのですか?この問題を解決する方法はありますか?それとも私が完全に間違っていて、そもそも何か間違っているのですか?
新しいtmuxセッションを作成しても(他のセッションはまだ接続されています)、問題は解決しません。 tmuxを完全に再起動すると問題は解決しそうですが、これを避け、なぜこれが起こるのかを知りたいです。
答え1
tmuxセッションで作成された新しいシェルが権限の変更をどのように考慮しないのですか?
プロセスに関連付けられているuid、gid、および補足グループは、ログイン時にのみリセットされます。 tmuxセッション内で作成された新しいシェルは新しいログインではなく、tmuxプロセスの新しいサブプロセスにすぎません。
グループメンバーシップを更新するには持つ再ログインするか、再初期化されたグループでサブシェルを起動する非常に小さなコマンドセット(newgrp
、、、)のいずれかを使用します(ただし、これらのコマンドは、tmuxなど、すでに実行されているプロセスの資格情報を再初期化するのに役立ちませんsu
。sudo
)。