Is there a way to run 'screen' in read-only mode?
Unfortunately, I think the answer is no. The asker of this question switched to tmux specifically because it has that feature (you pass the -r
flag when attaching), so if you have the option to switch multiplexers it's probably your best choice
You can try:
aclchg username -w "#"
if you run screen
in multi user mode (but I didn't have to do anything special to make it work when testing it as a single attached user). If you do need to enter multiuser mode, use multiuser on
.
You can use *
for the username to affect all users.
Using +w
instead of -w
enables write mode.
From man screen
:
aclchg usernames permbits list
chacl usernames permbits listChange permissions for a comma separated list of users. Permission bits are represented as 'r', 'w' and 'x'. Prefixing '+' grants the permission, '-' removes it. The third parameter is a comma separated list of commands and/or windows (specified either by number or title). The special list '#' refers to all windows, '?' to all commands. if usernames consists of a single '*', all known users are affected. A command can be executed when the user has the 'x' bit for it. The user can type input to a window when he has its 'w' bit set and no other user obtains a writelock for this window. Other bits are currently ignored. To withdraw the writelock from another user in window 2: 'aclchg username -w+w 2'. To allow read-only access to the session: 'aclchg username -w "#"'. As soon as a user's name is known to screen he can attach to the session and (per default) has full permissions for all command and windows. Execution permission for the acl commands, `at' and others should also be removed or the user may be able to regain write permission. Rights of the special username nobody cannot be changed (see the "su" command). 'Chacl' is a synonym to 'aclchg'. Multi user mode only.
I have found a fairly simple work-around that allows one to monitor the output safely.
Run the following commands immediately after entering the screen session:
echo /tmp/$STY
touch /tmp/$STY
chmod 0600 /tmp/$STY
script -a -f /tmp/$STY
Detach the session with Ctrl-A d and follow the script output, e.g.:
tail -f /tmp/10751.test