12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import os
- from infra.basetest import BRTest, BASIC_TOOLCHAIN_CONFIG
- class TestShadow(BRTest):
- username = 'user_test'
- config = BASIC_TOOLCHAIN_CONFIG + \
- """
- BR2_arm=y
- BR2_PACKAGE_SHADOW=y
- BR2_TARGET_ROOTFS_EXT2=y
- BR2_TARGET_ROOTFS_EXT2_4=y
- BR2_TARGET_ROOTFS_EXT2_SIZE="65536"
- """
- timeout = 60
- def login(self):
- img = os.path.join(self.builddir, "images", "rootfs.ext4")
- self.emulator.boot(arch="armv7",
- kernel="builtin",
- kernel_cmdline=["root=/dev/mmcblk0",
- "rootfstype=ext4"],
- options=["-drive", f"file={img},if=sd,format=raw"])
- self.emulator.login()
- def test_nologin(self):
- self.login()
- self.assertRunOk("! nologin")
- cmd = 'test "$(nologin)" = "This account is currently not available."'
- self.assertRunOk(cmd)
- def test_useradd_del(self):
- username = self.username
- self.login()
- self.assertRunOk(f'userdel {username} || true')
- self.assertRunOk(f'groupdel {username} || true')
- self.assertRunOk(f'useradd -s /bin/sh {username}')
- self.assertRunOk(f'test $(su {username} -c "whoami") = {username}')
- self.assertRunOk(f'userdel {username}')
- def test_usermod(self):
- username = self.username
- new_home = '/tmp'
- self.login()
- self.assertRunOk(f'userdel {username} || true')
- self.assertRunOk(f'groupdel {username} || true')
- self.assertRunOk(f'useradd -s /bin/sh {username}')
- self.assertRunOk(f'usermod {username} --home {new_home}')
- self.assertRunOk(f'test $(su {username} -c \'echo $HOME\') = {new_home}')
- self.assertRunOk(f'userdel {username}')
|