Despite using mesg y
, the ?
next to both the username is not changing to +
because of which I'm not able to use write/wall
command
shaunx333@Aspire:~$ who -w tempuser ? :0 2021-06-25 13:27 (:0) shaunx333 ? :1 2021-06-25 13:27 (:1)
Is there any way to change it to +
?
`
The phenomenon that is hinted at in the question is the following. Users on a multiuser Linux system are able to write messages to each other using the
write
command. The message would show up on the console. Also, aroot
user would be able to send a message to all users at once using thewall
command.If you are busy, you may turn off these messages by entering the command
mesg n
, and turn them back on withmesg y
. The default isy
.To show which users are logged on, and which are listening to messages, you can use the
who -w
command. It will show a+
for users who allow messages to come through, and a-
for those who don't. If the system can't determine what themesg
status of the user is, it will display a?
.These days most of us will use a graphic environment and a terminal emulator, rather than a text console. A terminal emulator establishes what is called a "pseudo tty device". The
who
command (you can find its source by searching for thecoreutils
package) tries, but fails, to determine themesg
state of a pseudo tty device.However, if you open a different console, e.g. by pressing Ctrl + Alt + F3, and login, the
who -w
command will display:This is a genuine
tty
device and not a pseudoterminal. Notice the+
that indicates I'm prepared to read messages from my co-users on this console.