Udostępnianie terminala wielu użytkownikom (z ekranem lub w inny sposób)

11

Konfiguruję serwer, na którym wielu programistów pracuje nad wieloma aplikacjami.

Wymyśliłem, jak dać niektórym programistom wspólny dostęp do niezbędnych katalogów aplikacji za pomocą setgid biti default ACLsdać każdemu w grupie dostęp.

Wiele z tych aplikacji jest uruchomionych pod terminalem w fazie projektowania, co zapewnia łatwy dostęp. Kiedy pracuję sam, konfiguruję użytkownika dla aplikacji i uruchamiam ekran jako ten użytkownik. Ma to tę wadę, że każdy programista, który korzysta z tej aplikacji, screen sessionmusi znać hasło, a oddzielenie kont użytkowników i aplikacji jest trudniejsze.

Jednym ze sposobów, który może działać, jest korzystanie z funkcji wielu użytkowników ekranu. Nie działają one jednak od razu po wyjęciu z pudełka, ekran skarży się na potrzebę suid root. Czy dawanie ma jakieś wady? Jestem bardzo ostrożny z używaniem suid rootczegokolwiek. Może istnieje powód, dla którego nie jest to ustawienie domyślne?

Czy powinienem to zrobić, screenczy jest jakiś inny inteligentny sposób robienia tego, co chcę?

Varesa
źródło

Odpowiedzi:

24

Tak, możesz to zrobić, korzystając z screenobsługi wielu użytkowników.

Najpierw utwórz nową sesję:

screen -d -m -S multisession

Dołącz do niego:

screen -r multisession

Włącz obsługę wielu użytkowników:

Naciśnij Ctrl-ai wpisz

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

Teraz Ctrl-a di wypisz sesje:

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

Masz teraz sesję ekranową dla wielu użytkowników. Podaj nazwę multisessionużytkownika acl'd, aby mógł do niego dołączyć:

screen -x youruser/multisession

I to wszystko.

Jedyną wadą jest to, że screenmusi działać jako suidroot. Ale o ile wiem, jest to domyślna, normalna sytuacja.

Inną opcją jest zrobienie screen -S $screen_id -X multiuser on,screen -S $screen_id -X acladd authorized_user

Mam nadzieję że to pomoże.

Scyld de Fraud
źródło
1
Właśnie tego próbowałem, aż ekran narzeka na potrzebę suid root. Doszedłem do wniosku, że zapytam, czy to preferowany sposób, zanim
dodam
Dziwne. Mój screenjest suidrootem.
Scyld de Fraud
Myślę, że może to być coś zależnego od dystrybucji. Próbowałem na CentOS 6 lub 7 (trzeba sprawdzić)
varesa
Za to, co jest warte, nie screenma go również suid rootna Ubuntu 16.04.
icedwater
6
screen -S $screen_id -X multiuser on, screen -S $screen_id -X acladd authorized_user zamiast kontroli-polecenia byłyby dobrym dodatkiem do odpowiedzi
ribamar