chroot.create_user(): add optional uid and non_unique parameter
This commit is contained in:
parent
17669ea8d2
commit
5329f7a5b0
1 changed files with 11 additions and 6 deletions
|
@ -311,17 +311,21 @@ class Chroot(AbstractChroot):
|
||||||
|
|
||||||
def create_user(
|
def create_user(
|
||||||
self,
|
self,
|
||||||
user='kupfer',
|
user: str = 'kupfer',
|
||||||
password='123456',
|
password: Optional[str] = None,
|
||||||
groups=['network', 'video', 'audio', 'optical', 'storage', 'input', 'scanner', 'games', 'lp', 'rfkill', 'wheel'],
|
groups: list[str] = ['network', 'video', 'audio', 'optical', 'storage', 'input', 'scanner', 'games', 'lp', 'rfkill', 'wheel'],
|
||||||
|
uid: Optional[int] = None,
|
||||||
|
non_unique: bool = False,
|
||||||
):
|
):
|
||||||
user = user or 'kupfer'
|
user = user or 'kupfer'
|
||||||
|
uid_param = f'-u {uid}' if uid is not None else ''
|
||||||
|
unique_param = '--non-unique' if non_unique else ''
|
||||||
install_script = f'''
|
install_script = f'''
|
||||||
set -e
|
set -e
|
||||||
if ! id -u "{user}" >/dev/null 2>&1; then
|
if ! id -u "{user}" >/dev/null 2>&1; then
|
||||||
useradd -m {user}
|
useradd -m {unique_param} {uid_param} {user}
|
||||||
fi
|
fi
|
||||||
usermod -a -G {",".join(groups)} {user}
|
usermod -a -G {",".join(groups)} {unique_param} {uid_param} {user}
|
||||||
chown {user}:{user} /home/{user} -R
|
chown {user}:{user} /home/{user} -R
|
||||||
'''
|
'''
|
||||||
if password:
|
if password:
|
||||||
|
@ -329,8 +333,9 @@ class Chroot(AbstractChroot):
|
||||||
else:
|
else:
|
||||||
install_script += f'echo "Set user password:" && passwd {user}'
|
install_script += f'echo "Set user password:" && passwd {user}'
|
||||||
result = self.run_cmd(install_script)
|
result = self.run_cmd(install_script)
|
||||||
|
assert isinstance(result, subprocess.CompletedProcess)
|
||||||
if result.returncode != 0:
|
if result.returncode != 0:
|
||||||
raise Exception('Failed to setup user')
|
raise Exception(f'Failed to setup user {user} in self.name')
|
||||||
|
|
||||||
def try_install_packages(
|
def try_install_packages(
|
||||||
self,
|
self,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue