Berbagi terminal dengan banyak pengguna (dengan layar atau lainnya)

11

Saya mengatur server di mana ada banyak pengembang yang bekerja pada beberapa aplikasi.

Saya telah menemukan cara untuk memberikan pengembang tertentu akses bersama ke direktori aplikasi yang diperlukan menggunakan setgid bitdan default ACLsuntuk memberikan siapa pun dalam akses grup.

Banyak dari aplikasi ini berjalan di bawah terminal saat dalam pengembangan untuk akses mudah. Ketika saya bekerja sendiri, saya mengatur pengguna untuk aplikasi dan menjalankan layar sebagai pengguna itu. Ini memiliki kelemahan yaitu setiap pengembang untuk menggunakan screen sessionkebutuhan untuk mengetahui kata sandi dan lebih sulit untuk memisahkan akun pengguna dan aplikasi.

Salah satu cara yang bisa bekerja adalah menggunakan fitur multiuser layar. Namun mereka tidak bekerja di luar kotak, layar mengeluh tentang kebutuhan suid root. Apakah memberi yang punya kerugian? Saya cukup berhati-hati dalam menggunakan suid rootapa pun. Mungkin ada alasan mengapa itu bukan default?

Haruskah saya melakukannya dengan screenatau ada cara cerdas lain untuk melakukan apa yang saya inginkan?

varesa
sumber

Jawaban:

23

Ya, Anda dapat melakukannya dengan screendukungan multiuser.

Pertama, buat sesi baru:

screen -d -m -S multisession

Lampirkan:

screen -r multisession

Aktifkan dukungan multi-pengguna:

Tekan Ctrl-adan ketik

:multiuser on
:acladd USER ← use username of user you want to give access to your screen

Sekarang, Ctrl-a ddan daftar sesi:

$ screen -ls
There is a screen on:
    4791.multisession   (Multi, detached)

Anda sekarang memiliki sesi layar multiuser. Berikan nama multisessionuntuk pengguna yang aktif, sehingga ia dapat melampirkannya:

screen -x youruser/multisession

Dan itu saja.

Satu-satunya kelemahan adalah yang screenharus dijalankan sebagai suidroot. Tapi sejauh yang saya tahu adalah default, situasi normal.

Pilihan lain adalah melakukan screen -S $screen_id -X multiuser on,screen -S $screen_id -X acladd authorized_user

Semoga ini membantu.

Scyld de Fraud
sumber
1
Inilah yang saya coba, hingga layar mengeluh tentang perlu suid root. Saya tahu saya akan bertanya apakah ini adalah cara yang disukai untuk melakukan sesuatu sebelum menambahkan izin root ke program yang tidak memilikinya secara default
varesa
Aneh. Saya screenadalah suidroot.
Scyld de Fraud
Saya pikir itu mungkin hal yang tergantung pada distro. Saya mencoba pada CentOS 6 atau 7 (perlu memeriksa)
varesa
Untuk apa nilainya, screenjuga tidak suid rootdi Ubuntu 16,04.
es
6
screen -S $screen_id -X multiuser on, screen -S $screen_id -X acladd authorized_user alih-alih kontrol-a perintah akan menjadi tambahan yang bagus untuk jawabannya
ribamar