我正在测试一些软件Debian X32。这是一个 chroot 环境,并以 root 身份进入。以下是一些测试由于 root 帐户而失败:
make test
...
# Failed test 'Testing that we aren't running as a privileged user, such as root'
# at ../test/recipes/40-test_rehash.t line 49.
...
# Looks like you failed 1 test of 5.
../test/recipes/40-test_rehash.t ........... Dubious, test returned 1
(wstat 256, 0x100)
Failed 1/5 subtests
...
尝试通过 su'ing 放弃特权失败:
# su - jdoe
No passwd entry for user 'jdoe'
如何在 Debian Chroot 中放弃权限?
答案1
我认为错误的原因是用户存在于旧文件系统中,但不存在于您使用 更改的新文件系统中chroot
。
如果我确切知道所有用户详细信息保存在哪里,我就可以建议将旧文件系统中的哪些文件和目录复制/链接/安装到新文件系统中,以便旧用户可以登录使用新根运行的操作系统。我认为它们中的大多数都会在 中/etc
,但无论如何您都不能直接替换该目录,因为它将包含特定于新文件系统的配置数据。
如果做不到这一点,一个简单的解决方案就是在新文件系统中创建您想要的用户。由于您的目的是测试非特权用户,因此您不需要完全复制现有用户。