La computadora está siendo utilizada por tres usuarios (+1 administrador) y utilizan el inicio de sesión de la unidad. Los tres usuarios vienen, usan la computadora y cierran sesión. Tengo que dar algunas instrucciones, noticias y detalles cada vez que inician sesión.
Quiero tener una utilidad / herramienta donde pueda escribir un mensaje personalizado para cada usuario. El último mensaje se mostraría en el escritorio (para cada usuario) (con la fecha de mi última edición) durante unos 10-15 segundos. Una copia del texto también estará disponible (para el usuario) en algún lugar con todos los mensajes y fechas como un registro.
* El administrador tiene acceso SSH al sistema.
No estoy seguro de si esto es posible (¡y es posible que esté buscando demasiado!).
fuente
Respuestas:
Puede hacerlo en la siguiente configuración, que producirá una ventana semitransparente, que se mantendrá durante un tiempo arbitrario:
Cree en un (cualquier) directorio, en el que cada uno de los usuarios tenga al menos permisos de lectura , para cada usuario, un archivo de mensaje, exactamente con el nombre de usuario de cada usuario (nombre de inicio de sesión), sin extensión, por ejemplo
Agregue texto al archivo como su mensaje. Si agrega un nuevo mensaje, comience con
###
, el script mostrará automáticamente el último mensaje. El texto puede contener lo que quiera, se verá exactamente como lo puso en el archivo.El último mensaje se copiará
latest_message.txt
en el directorio de inicio del usuario como referencia.Tal como está, la ventana permanecerá durante 15 segundos, pero puede establecerla en cualquier valor, incluso hacer que dependa automáticamente de la longitud del texto.
Un archivo de ejemplo podría verse así:
El mensaje entonces se vería así:
Copie la secuencia de comandos a continuación en un archivo vacío, edite en la sección principal de la secuencia de comandos la ruta a la carpeta en la que almacena los mensajes de los usuarios. Guarde el script como
show_personalmessage
en (p. Ej.)/usr/local/bin
(Que debería estar en$PATH
y hacerlo ejecutable (!) (Sin extensión)Crea un lanzador en
/etc/xdg/autostart
La suspensión 10 es para asegurarse de que el escritorio esté "listo" para abrir la ventana.
Explicación
/etc/xdg/autostart
comandos de ejecución para cada usuario al iniciar sesión.show_personalmessage
), que busca el mensaje personalizado en el directorio que definió. Adicionalmente. El mensaje más reciente se copia en el directorio de inicio del usuario.getpass
módulo -m, de modo que el script (ventana) busque un archivo con nombre específico para el usuario en un directorio. Mencione si eso sería necesario.Adicionalmente
La ventana (Gtk)
etcétera etcétera...
EDITAR
Para ahorrar tiempo escribiendo mensajes, como se discutió en el chat , debajo de una versión del script en la que puede incluir algunas secciones "permanentes":
premsg
, que debe estar justo debajo de "Bienvenido usuario x", y el cuerpo de su mensaje, ypostmsg
, que aparece como la sección inferior de su mensaje.Ambas secciones se pueden establecer en none, solo estableciéndolas
""
como un valor.La secuencia de comandos
Nota
Por supuesto, al igual que el cuerpo del mensaje , puede modificar el script para leer los mensajes previos y posteriores de un archivo, lo que hace que sea aún más conveniente mantenerlo. Lo hizo así, por razones de simplicidad en la respuesta.
fuente
getpass
para que cada usuario solicite atómicamente el archivo con nombre. ¿Qué camino tendrías en mente? Debe ser una ruta a la que cada usuario tenga acceso de lectura. Espera, lo/home/message
. Sería bueno copiar el texto del mensaje reciente (catenate, etc.) en un archivo fijo (para referencia)El siguiente script permite al administrador almacenar mensajes personalizados en forma
username_mm_dd_yyyy.txt
en un directorio definido por el administrador. Los nombres de usuario se determinan automáticamente y se comparan con el nombre de archivo y la fecha del archivo que se mostrará.El script también puede tener una
.desktop
entrada que se colocará en el/etc/xdg/autostart
directorio. Eso hará que el script se muestre para cada usuario. Alternativamente, puede colocar el.desktop
archivo en el~/.config/autostart
directorio de cada usuario individual .A continuación puede ver una pequeña demostración del script en acción. He creado el archivo en el formato especificado en mi
/tmp
carpetafuente
/home/message
. Sería bueno copiar el archivo de mensaje reciente y guardarlo allí como referencia.cp
comando, el primer argumento es la copia del administrador y el segundo argumento/home/$( _get_username )/messages/$FILE.txt
que necesito para dormir, pero puedo agregar eso por la mañana. Es solo una línea.cat $FILE >> /home/$( _get_username )/messages/Log_of_all_messages. txt