1)
Code:
#!/bin/bash
echo "This is a message to all users." | wall
This already send's it to all user's.
2)
I
think the script is run in a subshell, so it won't change the directory of the person running the script.
3) The only thing I found was '/etc/nologin', which can be used to prevent user login
and give the user's a message, just add the message in '/etc/nologin'...unfortunatly, that would prevent
all users.
However, what you could do is 'write' to the specified users terminal, notify them to see you, then lock their password with 'usermod -L <username>'.
That's the best I can come up with.