1

我正在尝试为 Kali Linux 构建一个基线工具安装程序,基本上,一个脚本可以安装我通常必须手动安装的所有工具,但也会创建一个新用户并切换到它。

到目前为止,我的脚本如下所示:

# --------------
# Imports
# --------------
import os
import getpass
# --------------
# Get Username
user = getpass.getuser()
# -
# Colors
colorGreen = "\033[1; 32; 40m end="""
# -
# --------------
# Functions
# --------------

# Update & Upgrade


def upgrade():
    os.system('sudo apt update && sudo apt upgrade')
# -

# Add new User


def addUser():
    print("### Creating a Low Priv User ###")
    user = input("Choose a username: ")
    os.system('sudo adduser ' + user)
    print("### Adding new user to Sudo ###")
    os.system("sudo usermod -aG sudo " + user)
    os.system("sudo chsh -s /bin/bash " + user)
    print("### Done ###")
    print("### Switching to new user... ###")
    os.system("su " + user)
    print("### Done! Welcome {}".format(user))


# --------------
# Function Calls
# --------------
upgrade()
addUser()
# -

一旦我到达结尾,即os.system("su " + user),脚本自然会停止。su %username% 是切换到新创建的用户的命令。

理想情况下,我希望脚本在那之后继续运行,这样我就可以在新创建的用户中安装这些工具。

有没有办法做到这一点?还是有其他方法可以做到这一点?我知道我可以使用类似的东西 git clone NewTool/home/{user}/opt/并从那里开始,但这似乎不方便。

如果有人能指出我正确的方向,那就太好了!

干杯

4

1 回答 1

0

进行了一些挖掘并找到了解决我的问题的方法。

我没有更改用户,而是简单地声明了一个user存储用户名的变量。

然后,一旦创建了用户,我就使用不同的语法,以便使用新用户进行安装。

例子:

user = "newUser"
os.system('sudo -u {} sudo apt install nixnote2 -y'.format(user))

这暂时解决了我的问题。

于 2020-02-03T08:55:14.563 回答