How do I broadcast messages to all bash terminal in python using wall command with stdin?
10,285
Solution 1
It is indeed required to be a superuser to run wall
with an input file, man
says:
NAME
wall - write a message to users
SYNOPSIS
wall [file]
DESCRIPTION
Wall displays the contents of file or, by default, its standard input, on the terminals of all currently logged in users.
Only the super-user can write on the terminals of users who have chosen to deny messages or are using a program which automatically denies messages.
Reading from a file is refused when the invoker is not superuser and the program is suid or sgid.
But you can do this:
$ echo hello hello >text.txt
$ python
Python 2.7.1 (r271:86832, Mar 18 2011, 09:09:48)
[GCC 4.5.0 20100604 [gcc-4_5-branch revision 160292]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.system('cat text.txt | wall')
Broadcast Message from mak@vader
(/dev/pts/14) at 10:31 ...
hello hello
Broadcast Message from mak@vader
(/dev/pts/14) at 10:31 ...
hello hello
0
>>>
Solution 2
you can use "echo" and pipe "|" it to wall.it's nit necessary to echo to fill first.
echo hello | wall
Author by
Admin
Updated on June 05, 2022Comments
-
Admin almost 2 years
I wanted to broadcast message to all the bash terminal on my raspbian.
I understand that there's wall command to perform the step and I could use os.system python module to execute the command.
However, running the command "wall text.txt" requires sudo privilege. Is there any way to use wall command with stdin from python?
-
keyser over 9 yearsSo a
cat
circumvents this? Do you happen to understand why they put root privileges on file reading then? -
Admin over 9 yearsI've tried it and it works. Piping the file to wall command circumvent root privilege as it becomes a stdin
-
keyser over 9 yearsYes I know it works, and I know why it works. I just find it odd that wall puts such a privilege on file reading for no apparent reason.
-
piokuc over 9 yearsI have no idea what the motivation of the authors of
wall
was. I find it quite peculiar, too.