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.txten 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_personalmessageen (p. Ej.)/usr/local/bin(Que debería estar en$PATHy hacerlo ejecutable (!) (Sin extensión)Crea un lanzador en
/etc/xdg/autostartLa suspensión 10 es para asegurarse de que el escritorio esté "listo" para abrir la ventana.
Explicación
/etc/xdg/autostartcomandos 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.getpassmó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
getpasspara 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.txten 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
.desktopentrada que se colocará en el/etc/xdg/autostartdirectorio. Eso hará que el script se muestre para cada usuario. Alternativamente, puede colocar el.desktoparchivo en el~/.config/autostartdirectorio 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
/tmpcarpetafuente
/home/message. Sería bueno copiar el archivo de mensaje reciente y guardarlo allí como referencia.cpcomando, el primer argumento es la copia del administrador y el segundo argumento/home/$( _get_username )/messages/$FILE.txtque 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