複数の開発者が複数のアプリケーションを操作するサーバーを設定しています。
私は特定の開発者に必要なアプリケーションディレクトリへの共有アクセスを使用しsetgid bit
、default ACLs
グループ内のすべての人にアクセスを許可する方法を見つけました。
これらのアプリケーションの多くは、開発中に簡単にアクセスできるように端末で実行されます。自分で作業するときは、アプリケーションのユーザーを設定し、そのユーザーとして画面を実行します。欠点は、それを使用するすべての開発者がscreen session
パスワードを知る必要があり、ユーザーアカウントとアプリケーションアカウントを分離するのが難しいことです。
これを行う1つの方法は、画面マルチユーザー機能を使用することです。デフォルトでは機能しませんが、画面が必要だと文句を言いますsuid root
。欠点はありますか?私は私が使用するすべてに非常に注意を払いますsuid root
。たぶんデフォルトではない理由はありますか?
これを行う必要がありますかscreen
、それとも私が望むことをする他の合理的な方法はありますか?
ベストアンサー1
screen
はい、マルチユーザーサポートではこれを行うことができます。
まず、新しいセッションを作成します。
screen -d -m -S multisession
それに加えなさい:
screen -r multisession
マルチユーザーサポートを有効にします。
押してCtrl-a
入力します(注:Ctrl+a
すべてのコマンドの前に必要です、つまりここでは2回)。
: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
rootとして実行する必要があることですsuid
。しかし、私が知っている限り、これは基本的で正常な状況です。
別のオプションは次のとおりですscreen -S $screen_id -X multiuser on
。screen -S $screen_id -X acladd authorized_user
お役に立てば幸いです。