web-dev-qa-db-ja.com

端末を複数のユーザーと共有する(画面などを使用)

複数のアプリケーションで作業する複数の開発者がいるサーバーをセットアップしています。

特定の開発者にsetgid bitdefault ACLsを使用して必要なアプリケーションディレクトリへの共有アクセスを許可し、グループ内の全員にアクセスを許可する方法を理解しました。

これらのアプリケーションの多くは、簡単にアクセスできるように開発中のターミナルで実行されます。一人で作業する場合、アプリケーションのユーザーを設定し、そのユーザーとして画面を実行します。これには、screen sessionを使用するすべての開発者がパスワードを知っておく必要があるという欠点があり、ユーザーアカウントとアプリケーションアカウントを分離しておくことは困難です。

機能する1つの方法は、画面のマルチユーザー機能を使用することです。そのままでは機能しませんが、suid rootが必要であると画面に表示されます。それを与えることには欠点がありますか? suid rootの使用には細心の注意を払っています。多分それがデフォルトではない理由がありますか?

私はscreenでそれを行うべきですか、それとも私がやりたいことを行う他のインテリジェントな方法がありますか?

10
varesa

はい、マルチユーザーをサポートする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

以上です。

唯一の欠点は、screensuid rootとして実行される必要があることです。しかし、私の知る限りでは、デフォルトの通常の状況です。

別のオプションは、screen -S $screen_id -X multiuser onscreen -S $screen_id -X acladd authorized_user

お役に立てれば。

20
Scyld de Fraud