Chciałbym móc sprawdzać postęp i wyniki moich istniejących screen
sesji, ale tylko w trybie do odczytu, aby zapobiec wystąpieniu błędu z powodu błędu użytkownika. Czy jest na to sposób?
źródło
Chciałbym móc sprawdzać postęp i wyniki moich istniejących screen
sesji, ale tylko w trybie do odczytu, aby zapobiec wystąpieniu błędu z powodu błędu użytkownika. Czy jest na to sposób?
Niestety myślę, że odpowiedź brzmi „nie”. Pytający tego pytania przestawił się na tmux, ponieważ ma tę funkcję (przekazujesz -r
flagę podczas dołączania), więc jeśli masz opcję przełączania multiplekserów, to prawdopodobnie najlepszy wybór
Możesz spróbować:
aclchg username -w "#"
jeśli działasz screen
w trybie wielu użytkowników (ale nie musiałem robić nic specjalnego, aby działał podczas testowania go jako pojedynczy dołączony użytkownik). Jeśli musisz przejść do trybu wielu użytkowników, użyj multiuser on
.
Możesz użyć *
nazwy użytkownika, aby wpłynąć na wszystkich użytkowników.
Używanie +w
zamiast -w
włącza tryb zapisu.
Od man screen
:
aclchg lista
nazw użytkowników lista uprawnień chacl lista nazw użytkownikówZmień uprawnienia dla listy użytkowników oddzielonych przecinkami. Bity uprawnień są reprezentowane jako „r”, „w” i „x”. Prefiks „+” przyznaje uprawnienie, „-” usuwa je. Trzeci parametr to rozdzielona przecinkami lista poleceń i / lub okien (określona liczbą lub tytułem). Specjalna lista „#” odnosi się do wszystkich okien, „?” do wszystkich poleceń. jeśli nazwy użytkowników składają się z jednego „*”, dotyczy to wszystkich znanych użytkowników. Polecenie można wykonać, gdy użytkownik ma do niego bit „x”. Użytkownik może wpisać dane wejściowe do okna, gdy ma ustawiony bit „w” i żaden inny użytkownik nie uzyska blokady zapisu dla tego okna. Inne bity są obecnie ignorowane. Aby wycofać writelock od innego użytkownika w oknie 2: „aclchg nazwa użytkownika -w + w 2”. Aby zezwolić na dostęp tylko do odczytu do sesji: 'aclchg nazwa użytkownika -w "#"'. Gdy tylko nazwa użytkownika będzie znana z ekranu, może dołączyć do sesji i (domyślnie) ma pełne uprawnienia do wszystkich poleceń i okien. Zezwolenie na wykonywanie poleceń acl, `at 'i innych również powinno zostać usunięte lub użytkownik może odzyskać uprawnienia do zapisu. Praw do specjalnej nazwy użytkownika nikt nie może zostać zmieniony (patrz polecenie „su”). „Chacl” jest synonimem „aclchg”. Tylko tryb wielu użytkowników. a inne również powinny zostać usunięte lub użytkownik może odzyskać uprawnienia do zapisu. Praw do specjalnej nazwy użytkownika nikt nie może zostać zmieniony (patrz polecenie „su”). „Chacl” jest synonimem „aclchg”. Tylko tryb wielu użytkowników. a inne również powinny zostać usunięte lub użytkownik może odzyskać uprawnienia do zapisu. Praw do specjalnej nazwy użytkownika nikt nie może zostać zmieniony (patrz polecenie „su”). „Chacl” jest synonimem „aclchg”. Tylko tryb wielu użytkowników.
screen
tylko do odczytu jest dołączana wszędzie sesja ekranowa, która wygląda inaczej niż to, o co poprosił OP.aclcng
polecenie może określać konkretnych użytkowników, określone polecenia i / lub określone okna, więc jest to dość drobna ziarnistość. Więc to nie jest „wszędzie”.Znalazłem dość proste obejście, które pozwala bezpiecznie monitorować wyjście.
Uruchom następujące polecenia natychmiast po wejściu do sesji ekranowej:
Odłącz sesję Ctrl-A di śledź dane wyjściowe skryptu, np .:
źródło
Moje obecne rozwiązanie tego problemu polega na ustawieniu widoku terminala na Tylko do odczytu .
Może to zbyt oczywiste. Pytanie nie wymagało jednak rozwiązania
screen
.źródło
napisałem skrypt php o nazwie
readscreen
... dołączający do sesji ekranowych w trybie tylko do odczytu. zapisz go/usr/bin/readscreen
i uruchomchmod 0555 /usr/bin/readscreen
, i upewnij się, że masz zainstalowane php-cli z rozszerzeniem php-pcntl, areadscreen
następnie możesz napisać, a następnie dowolne polecenie, którego użyjesz do połączenia z normalnym ekranem, na przykład:i będziesz połączony z sesją foo w trybie tylko do odczytu . zwróć uwagę, że nie jest to dokładnie testowane, ale wydaje się działać dobrze. kod źródłowy ekranu odczytu:
źródło