One Hat Cyber Team
Your IP :
3.17.62.86
Server IP :
192.145.235.60
Server :
Linux ngx365.inmotionhosting.com 5.14.0-427.33.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 30 09:45:56 EDT 2024 x86_64
Server Software :
Apache
PHP Version :
8.2.27
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
opt
/
tier1adv
/
bin
/
Edit File:
addlocaldomain
#!/opt/imh-python/bin/python3 """Moves a domain between /etc/remotedomains and /etc/localdomains""" from argparse import ArgumentParser from pathlib import Path import sys # addlocaldomain is symlinked to rmlocaldomain ADDING = 'addlocal' in sys.argv[0] ADD_PATH = Path('/etc/localdomains') if ADDING else Path('/etc/remotedomains') RM_PATH = Path('/etc/remotedomains') if ADDING else Path('/etc/localdomains') def parse_args() -> list[str]: """Obtain list of domains from CLI args""" parser = ArgumentParser(description=f"move a domain to {ADD_PATH}") parser.add_argument( 'domain', metavar='DOMAIN', nargs='+', help=f'list of domains to move to {ADD_PATH}', ) args = parser.parse_args() return args.domain def remove_domains(domains: list[str]) -> None: """Remove list of domains""" file_lines = RM_PATH.read_text(encoding='utf-8').splitlines() save = False for domain in domains: if domain in file_lines: print(f"Removing {domain} from {RM_PATH}.") save = True else: print(f"{domain} was not in {RM_PATH}.") if not save: return data = '\n'.join([x for x in file_lines if x not in domains]) save_data(RM_PATH, f"{data}\n") def add_domains(domains: list[str]) -> None: """Add list of domains""" file_lines = ADD_PATH.read_text(encoding='utf-8').splitlines() save = False for domain in domains: if domain in file_lines: print(f"{domain} was already in {ADD_PATH}.") else: print(f"Adding {domain} to {ADD_PATH}.") file_lines.append(domain) save = True if not save: return data = '\n'.join(file_lines) save_data(ADD_PATH, f"{data}\n") def save_data(path: Path, data: str) -> None: """Save to a {path}.tmp then mv to {path} to avoid race conditions""" tmp_path = path.parent.joinpath(f"{path.name}.tmp") tmp_path.write_text(data, encoding='utf-8') tmp_path.rename(path) def main(): """Collect args, remove from local domains, add to remote, or vice versa if called through addlocaldomain""" doms = parse_args() remove_domains(doms) add_domains(doms) if __name__ == '__main__': main()
Simpan