複数のアプリケーションで作業する複数の開発者がいるサーバーをセットアップしています。
特定の開発者にsetgid bit
とdefault ACLs
を使用して必要なアプリケーションディレクトリへの共有アクセスを許可し、グループ内の全員にアクセスを許可する方法を理解しました。
これらのアプリケーションの多くは、簡単にアクセスできるように開発中のターミナルで実行されます。一人で作業する場合、アプリケーションのユーザーを設定し、そのユーザーとして画面を実行します。これには、screen session
を使用するすべての開発者がパスワードを知っておく必要があるという欠点があり、ユーザーアカウントとアプリケーションアカウントを分離しておくことは困難です。
機能する1つの方法は、画面のマルチユーザー機能を使用することです。そのままでは機能しませんが、suid root
が必要であると画面に表示されます。それを与えることには欠点がありますか? suid root
の使用には細心の注意を払っています。多分それがデフォルトではない理由がありますか?
私はscreen
でそれを行うべきですか、それとも私がやりたいことを行う他のインテリジェントな方法がありますか?
はい、マルチユーザーをサポートするscreen
を使用して実行できます。
まず、新しいセッションを作成します。
screen -d -m -S multisession
それに添付:
screen -r multisession
マルチユーザーサポートを有効にします。
押す Ctrl-a
およびタイプ
:multiuser on
:acladd USER ← use username of user you want to give access to your screen
さて、Ctrl-a d
およびセッションをリストします。
$ screen -ls
There is a screen on:
4791.multisession (Multi, detached)
これで、マルチユーザー画面セッションができました。 acl'dユーザーにmultisession
という名前を付けて、アタッチできるようにします。
screen -x youruser/multisession
以上です。
唯一の欠点は、screen
がsuid
rootとして実行される必要があることです。しかし、私の知る限りでは、デフォルトの通常の状況です。
別のオプションは、screen -S $screen_id -X multiuser on
、screen -S $screen_id -X acladd authorized_user
お役に立てれば。