|
Mostrar Temas
|
Páginas: 1 [2] 3
|
11
|
Programación / Scripting / Problemas con script para visualizar y expulsar usuarios (Python3)
|
en: 11 Septiembre 2018, 17:52 pm
|
estoy realizando un script con python3 en linux para que me avise de cuando alguien se a conectado a mi sistema y que me permita echar al usuario que yo quiera. Tengo este script y funciona con interfaz gráfica con la librería tkinter. El problema es que cuando voy a introducir el tty del usuario en la variable cuadronombre y le doy a enviar, el código de la funcion elimiusr no funciona con: subprocess.run("sudo pkill -9 -t {0}").format(nombreusuario) 1.Me gustaría saber como introducir una variable de python en una orden de linux para que en este caso pueda echar al usuario. 2.También quiero saber si la forma de guardar el resultado de un Entry que yo realizo está bien. Por ejemplo: cuadrotexto=Entry() resultadoEntry=cuadrotexto.get() ¿Sería así como guardar lo que pongo en el cuadro de texto en la variable resultadoEntry? #! /usr/bin/python3 #-*- coding: utf-8 -*-
from tkinter import * import subprocess from tkinter import messagebox
a=subprocess.check_output("who|wc -l",shell=True) b=int(a.decode("utf-8").strip()) lista=subprocess.check_output("who",shell=True) lista2=subprocess.check_output('who| cut -d " " -f 1,4,6',shell=True)
def funelim():
def elimiusr():
subprocess.run("sudo pkill -9 -t {0}").format(nombreusuario)
raiz=Tk() raiz.title("Eliminar usuario") raiz.resizable(0,0) raiz.geometry("380x150")
texto=Label(raiz,text="Elige el tty del usuario que quieres eliminar") texto.grid(row=0,column=0,sticky="w") texto2=Label(raiz,text=lista2) texto2.grid(row=1,column=0,sticky="w",pady=10)
cuadronombre=Entry(raiz) cuadronombre.grid(row=2,column=0,sticky="w") cuadronombre.config(justify="center") nombreusuario=cuadronombre.get()
boton3=Button(raiz,text="Enviar",command=elimiusr) boton3.grid(row=2,column=0,sticky="e",padx=170)
raiz.mainloop()
def elimus():
if b>1:
def exit(): root.destroy() root=Tk() root.title("Alguien se a conectado al sistema") root.resizable(0,0) root.geometry("380x150")
miLabel=Label(root,text="Alguien se a conectado al sistema, ¿Que quiere hacer?") miLabel.grid(row=0,column=0) miLabel2=Label(root,text=lista).grid(column=0,row=1,pady=10,sticky="w")
boton1=Button(text="Elim.Usuario",command=funelim) boton1.grid(column=0,row=2,sticky="w")
boton2=Button(text="Salir",command=exit) boton2.grid(column=0,row=2,sticky="e") root.mainloop()
elimus()
|
|
|
12
|
Programación / Scripting / Error en modulos (Python3)
|
en: 1 Septiembre 2018, 18:44 pm
|
Quiero hacer un módulo pero no funciona y no se porque. Tengo en la misma carpeta dos archivos .py3: funcion_mates y llamar_funcion_mates. En funcion_mates tengo funciones que realizan operaciones y funciona. En llamar_funcion_mates tengo: import funcion_mates funcion_mates.sumar(3,3) Y me da este error: ModuleNotFoundError: No module named 'funcion_mates' Tengo que configurar el PATH de Python o algo así?
|
|
|
13
|
Programación / Scripting / Programa para avisar de una conexión en Linux (Python3)
|
en: 30 Agosto 2018, 15:47 pm
|
Hola, tengo un scipt con python que me avisa de cuando alguien se a conectado a mi sistema, el problema es que cuando lo ejecuto y me conecto con otro usuario me avisa, pero cuando me desconecto con el otro usuario mientras el programa se sigue ejecutando me sigue apareciendo que hay alguien conectado, este es mi script: #! /usr/bin/python3 import subprocess import time
import gi gi.require_version('Notify', '0.7') from gi.repository import Notify Notify.init("ssh2.py3")
a=subprocess.check_output("who|wc -l",shell=True) b=int(a.decode("utf-8").strip()) print(b) def funcion():
if b>1: subprocess.run("zenity --info --text 'Alguien se a conectado'", shell=True) subprocess.run("sudo xterm -e home/sergio/Escritorio/prueba.sh",shell=True)
if b==2: su1=subprocess.check_output("who|tail -2",shell=True) su2=su1.decode("utf-8").strip() print("Se a conectado: ") print(su2) Notify.Notification.new("Alguien se a conectado", su2).show()
if b==3: se1=subprocess.check_output("who|tail -3",shell=True) se2=se1.decode("utf-8").strip() print("Se a conectado: ") print(se2) Notify.Notification.new("Alguien se a conectado", se2).show()
if b>=4: si1=subprocess.check_output("who",shell=True) si2=si1.decode("utf-8").strip() print("Se an conectado mas de 4 usuarios: ") print(si2) Notify.Notification.new("Alguien se a conectado", si2).show()
while True: funcion() time.sleep(5)
Quiero que no siga apareciendo que alguien se a conectado si solo estoy yo. Si podeís mejorar mi programa hacerlo y explicarmelo, me gustaría aprender. Gracias
|
|
|
15
|
Programación / Scripting / UTF-8 (Python 3)
|
en: 22 Agosto 2018, 17:13 pm
|
¿Alguien me puede explicar que es utf-8? Lo e visto junto a un decode(utf-8) y arriba del todo en los scripts de Python
|
|
|
16
|
Programación / Scripting / Molestia en salida de comando (Python3)
|
en: 21 Agosto 2018, 18:55 pm
|
Hola, estoy haciendo llamadas al sistema con Python3 y me molesta por ejemplo que cuando almaceno la salida de un comando en una variable e imprimo esa variable, aparece por ejemplo esto: b'1\n' Esa salida es de subprocess.run("who > /home/sergio/Comandos/who.txt",shell=True) a=subprocess.check_output("wc -l /home/sergio/Comandos/who.txt",shell=True) print(a) Solo quiero que salga en número 1, y no el b'\n' ¿Alguien me ayuda?
|
|
|
17
|
Sistemas Operativos / GNU/Linux / Dudas sobre shell on
|
en: 21 Agosto 2018, 18:12 pm
|
Hola, me dijeron que haciendo un grep -r "shell on" en el directorio /var/log podría ver quien se conectó a mi sistema, el caso es que e creado otro usuario, me e metido con ese usuario y en shell on no me aparece nada sobre el usuario nuevo. Shell on solo muestra quien se a conectado a mi sistema ssh o muestra los usuarios conectados a mi sistema en general?
|
|
|
20
|
Sistemas Operativos / GNU/Linux / Introducir voz en linux
|
en: 19 Agosto 2018, 19:08 pm
|
Hola, estoy haciendo una especia de asistente sencillo con Python, ya tengo el método de que el asistente me hable, ahora quisiera saber como introducir mi voz por micro y que lo que yo diga se introduzca en la terminal o en el scirpt. Por cierto, uso el programa espeak, hago llamadas al sistema con Python para que espeak me hable. Si también sabéis algún otro parecido a espeak decidmelo, pero aún más importante es introducir ordenes a la terminal con mi voz
|
|
|
|
|
|
|