假设我有 10 个用户帐户。我希望登录的用户将使用该帐户的实例而不是帐户本身。
因此,当他们登录时,他们将使用该帐户的副本进行工作,该副本应在他们注销时立即删除。如果两个或多个用户使用同一个帐户,他们就不应该能够看到彼此的文件。
如果他们返回该帐户,他们应该回到初始状态。
答案1
您想要实现什么目标?
您所描述的通常没什么用(我所看到的唯一有用的情况是在公共访问 unix 系统上,您允许人们以“客人”身份登录,然后他们被重定向到一个guest1234
帐户,当他们注销时,该帐户会被删除。您可以使用 PAM 模块或对登录二进制文件进行一些黑客攻击来实现这种可怕的事情,但这通常是一个坏主意,因此留给读者练习。
答案2
你这样做是错的
完全实现这样的事情非常困难。你可以尝试各种方法,例如:
添加到登录脚本:
NEWHOME=$(mkdir $HOME/.tmphome.XXXXXX)
export HOME=$NEWHOME
(spawn rest of session)
这样你就能到达那里的大部分路程。
或者,让每个人都通过 ssh 登录一个元访客帐户,该帐户:
- 锁定信号量
- 选择下一个未使用的来宾帐户
- 重新初始化该访客帐户(删除文件等)
- 使用 ssh/sudo/whatever 更改为该访客帐户
- 解锁信号量