added more

This commit is contained in:
2023-03-10 15:15:42 +01:00
parent 82e1e2b8fa
commit cd77bbd38f
6 changed files with 163 additions and 40 deletions

View File

@@ -1,40 +0,0 @@
Ordner anlegen
mkdir -p ~/.config/autostart-scripts/ ok
mkdir -p ~/.config/plasma-workspace/shutdown/ ok
mkdir -p ~/.config/plasma-workspace/env/ ok
Skript erstelle : ~/.config/autostart-scripts/ssh-add.sh
#! /bin/zsh
sleep 10
SSH_ASKPASS=/usr/bin/ksshaskpass
export SSH_ASKPASS
ssh-add ~/.ssh/id_ed25519
Skript erstellen ~/.config/plasma-workspace/shutdown/ssh-agent-shutdown.sh
#!/bin/sh
[ -z "$SSH_AGENT_PID" ] || eval "$(ssh-agent -k)"
Skript erstelle ~/.config/plasma-workspace/env/ssh-agent-startup.sh
#!/bin/sh
[ -n "$SSH_AGENT_PID" ] || eval "$(ssh-agent -s)"
SSH_ASKPASS=/usr/bin/ksshaskpass
export SSH_ASKPASS
Rechte zum ausführen
chmod +x ~/.config/autostart-scripts/ssh-add.sh
chmod +x ~/.config/plasma-workspace/shutdown/ssh-agent-shutdown.sh
chmod +x ~/.config/plasma-workspace/env/ssh-agent-startup.sh
sudo vi /etc/profile.d/ksshaskpass.sh
#!/bin/bash
export SSH_ASKPASS=/usr/bin/ksshaskpass
sudo chmod +x /etc/profile.d/ksshaskpass.sh

View File

@@ -0,0 +1,51 @@
from OpenSSL import crypto
from Crypto.PublicKey import RSA
def generate_self_signed_cert(cert_country, cert_state, cert_organization,
cert_locality, cert_organizational_unit,
cert_common_name, valid_days, serial_number):
rsa_key = RSA.generate(2048)
pk = crypto.load_privatekey(crypto.FILETYPE_PEM,
rsa_key.exportKey('PEM', pkcs=1))
cert = crypto.X509()
sub = cert.get_subject()
sub.CN = cert_common_name
sub.C = cert_country
sub.ST = cert_state
sub.L = cert_locality
sub.O = cert_organization
# optional
if cert_organizational_unit:
sub.OU = cert_organizational_unit
cert.set_serial_number(serial_number)
cert.gmtime_adj_notBefore(0)
cert.gmtime_adj_notAfter(valid_days * 24 * 60 * 60) # Valid for a year
cert.set_issuer(sub)
cert.set_pubkey(pk)
cert.sign(pk, 'sha1')
cert_text = crypto.dump_certificate(crypto.FILETYPE_PEM, cert)
priv_key_text = rsa_key.exportKey('PEM', pkcs=1)
return str(cert_text), str(priv_key_text)
if __name__ == "__main__":
test = generate_self_signed_cert(cert_country="DE", cert_state="Dresden", cert_organization="IchAG", cert_locality="Sachsen", cert_organizational_unit="mandan01", cert_common_name="mandan01", valid_days=365, serial_number=12)
privatekey = test[1].rstrip("'").strip("b'")
cert = test[0].rstrip("'").strip("b'")
#print(privatekey)
for key in privatekey.split("\\n"):
with open("testkey", "a") as testcert:
print(key, file=testcert)
for cert_out in cert.split("\\n"):
with open("testcert", "a") as testcert_out:
print(cert_out, file=testcert_out)
#test2 = "xccj\njdkjd\n"
#print(test2)

24
my_backups/backup_main.py Normal file
View File

@@ -0,0 +1,24 @@
#! /usr/bin/env python3
import os, shutil, dirsync
backup_folders = [
os.path.join(os.sep, "home", "jonnybravo", "Projekte", "Schulung_Docker_k8s"),
os.path.join(os.sep, "home", "jonnybravo", "Projekte", "create_wireguard")
]
dest_backup = os.path.join(os.sep, "home", "jonnybravo", "Projekte", "backup_dest")
for folder in backup_folders:
try:
add_des_last_folder = dest_backup + os.sep + os.path.split(folder)[1]
if os.path.exists(add_des_last_folder):
output_dirsync = dirsync.sync(sourcedir=folder, targetdir=add_des_last_folder, action='sync')
else:
#full_dest_folder = dest_backup + "/" + last_folder[1]
destination = shutil.copytree(src=folder, dst=add_des_last_folder, dirs_exist_ok=True)
except:
raise PermissionError("Schau dir mal die berechtigungen an da stimmt was nicht")
finally:
output = folder + " wurde angelegt oder gesynct !!!"
print("#" * len(output), output, "#" * len(output), sep="\n")

43
read_all_user/main.py Normal file
View File

@@ -0,0 +1,43 @@
#!/usr/bin/env python3
def read_file(path: str) -> "List of lines":
#f = open(path, 'r')
with open(path, 'r') as f:
# f.read(buflen) - binary read
# f.readline() - 1 Textzeile lesen -> str
# f.readlines - alle Textzeilen lesen ->str
# f ist gleichzeitig Iterator
# 1 möglichkeit
#lines = list(map(lambda s : s.rstrip(), f))
# 2 möflichkeit
lines = list(map(str.rstrip, f))
# 3 möglichkeit
#lines = []
# for line in f.readlines():
# lines.append(line.rstrip())
# f.close()
return lines
def build_userlist(lines) -> "List of user dicts":
result = []
for line in lines:
result.append(parse_passwd_lines(line))
return result
def parse_passwd_lines(line: str) -> "Dict of passwd details":
parts = line.split(':')
userdict = {
"username": parts[0],
"uid": int(parts[2]),
"gid": int(parts[3]),
"realname": parts[4].split(',')[0],
"gecos": parts[4],
"home": parts[5],
"shell": parts[6]
}
return userdict
test = read_file("/etc/passwd")
userlist = [i['username'] for i in build_userlist(test)]
print(userlist)

39
ssh_with_sub/main.py Normal file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env python3.10
from subprocess import Popen, PIPE
from csv import DictReader
def read_csv(csv_file = str):
with open(csv_file, newline='') as csv:
read_server = DictReader(csv)
server_liste, user_liste = [] , []
for row in read_server:
user_liste.append(row['user'])
server_liste.append(row['\ufeffserver'])
return {
'server' : server_liste,
'user' : user_liste
}
def ssh_connection(con_server = str):
with Popen(['ssh', '-T', con_server],
stdin=PIPE, stdout=PIPE, stderr=PIPE,
universal_newlines=True) as p:
output, error = p.communicate("""
ls -lisaR /home
apt list --installed
""")
print(output)
print(error)
print(p.returncode)
if __name__ == "__main__":
for count in range(0,len(read_csv("test.csv")['server'])):
print("Server:", read_csv("test.csv")['server'][count], "User:", read_csv("test.csv")['user'][count], sep=" ")
ssh_connection(con_server=read_csv("test.csv")['server'][count])

6
ssh_with_sub/test.csv Normal file
View File

@@ -0,0 +1,6 @@
server,user, command
ubuntu,jonnybravo1,
debian,jonnybravo2,
3server,beuntzer2,
klana,beuntzer23,
bababa,dkdkd,
1 server user command
2 ubuntu jonnybravo1
3 debian jonnybravo2
4 3server beuntzer2
5 klana beuntzer23
6 bababa dkdkd