Skip to content

Commit 3310ab8

Browse files
committed
Fix refression for sudoers file
1 parent 363a96a commit 3310ab8

1 file changed

Lines changed: 9 additions & 6 deletions

File tree

archinstall/lib/installer.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1564,8 +1564,8 @@ def add_bootloader(self, bootloader: Bootloader, uki_enabled: bool = False):
15641564
def add_additional_packages(self, packages: str | list[str]) -> None:
15651565
return self.pacman.strap(packages)
15661566

1567-
def enable_sudo(self, entity: str, group: bool = False):
1568-
info(f"Enabling sudo permissions for {entity}")
1567+
def enable_sudo(self, user: User, group: bool = False):
1568+
info(f"Enabling sudo permissions for {user.username}")
15691569

15701570
sudoers_dir = self.target / "etc/sudoers.d"
15711571

@@ -1582,14 +1582,14 @@ def enable_sudo(self, entity: str, group: bool = False):
15821582
num_of_rules_already = len(os.listdir(sudoers_dir))
15831583
file_num_str = f"{num_of_rules_already:02d}" # We want 00_user1, 01_user2, etc
15841584

1585-
# Guarantees that entity str does not contain invalid characters for a linux file name:
1585+
# Guarantees that username str does not contain invalid characters for a linux file name:
15861586
# \ / : * ? " < > |
1587-
safe_entity_file_name = re.sub(r'(\\|\/|:|\*|\?|"|<|>|\|)', "", entity)
1587+
safe_username_file_name = re.sub(r'(\\|\/|:|\*|\?|"|<|>|\|)', "", user.username)
15881588

1589-
rule_file = sudoers_dir / f"{file_num_str}_{safe_entity_file_name}"
1589+
rule_file = sudoers_dir / f"{file_num_str}_{safe_username_file_name}"
15901590

15911591
with rule_file.open("a") as sudoers:
1592-
sudoers.write(f"{'%' if group else ''}{entity} ALL=(ALL) ALL\n")
1592+
sudoers.write(f"{'%' if group else ''}{user.username} ALL=(ALL) ALL\n")
15931593

15941594
# Guarantees sudoer conf file recommended perms
15951595
rule_file.chmod(0o440)
@@ -1636,6 +1636,9 @@ def _create_user(self, user: User) -> None:
16361636
for group in user.groups:
16371637
SysCommand(f"arch-chroot {self.target} gpasswd -a {user.username} {group}")
16381638

1639+
if user.sudo:
1640+
self.enable_sudo(user)
1641+
16391642
def set_user_password(self, user: User) -> bool:
16401643
info(f"Setting password for {user.username}")
16411644

0 commit comments

Comments
 (0)