debian (?) - 基于现有用户创建新用户(复制配置、应用程序等)

debian (?) - 基于现有用户创建新用户(复制配置、应用程序等)

我想要实现的目标:

使用已建立的用户创建多个新用户,每个新用户都具有相同的启动设置、相同的应用程序(例如 Slack)、相同的配置(例如安装的 conda 和定义的内核)等,而无需再次进入并执行整个设置过程。

我尝试过的:

1: 我读过这个问题 克隆Linux用户(复制用户,基于另一个用户)并找到了这个答案https://unix.stackexchange.com/a/268405,我尝试过,虽然它创建了具有正确权限和所有内容的新用户,但它并没有像我希望的那样复制所有内容。

2:我读过很多其他内容,这些内容要么是复制粘贴到某些第三方博客上的问题和答案,要么是类似“是的,Linux 本身不支持”的内容(因此上面的脚本答案)。

是否可以在将用户的帐户设置为所需状态后“克隆”用户,以便不必从头开始设置新用户?

答案1

是的,这是可能的。非常古老的东西/etc/skel就是为此而设计的!但这不是“克隆”,而是“为新用户定义模板”。

当您使用adduser创建用户时,它将从/etc/skel.通常这只是.bashrc.profile,但它可以包含您喜欢的任何内容。

如果您以非常无菌的方式设置用户(即新创建并按照您喜欢的方式设置,没有任何个人内容),那么您可以将主目录复制到/etc/skel/.当您使用 创建新用户时adduser,这些文件将被复制到新用户的主目录。

对于您的具体观点:

  • 启动设置。用户特定的服务位于~/.config/systemd/user.自动启动桌面条目位于~/.config/autostart.通过将现有的主目录复制到/etc/skel您可以保留这些内容。
  • 应用程序(例如 Slack)。 debian 上的应用程序是(或至少应该)安装在系统范围内的。如果您使用过sudo apt install slack,即使它来自第三方存储库,它也会在系统范围内安装。我对包裹不太确定snapd。如果您关心的是现有计算机上的新用户,那么是的,应用程序(例如 slack)也会为该新用户安装。
  • 相同的配置(例如安装了 conda 并定义了内核)等。。这个有点宽泛。
    • 相同配置 是的。这可能包括深色主题、浏览器主页、浏览器书签和 bash 别名等。这些都存储在您的主目录中,因此将主目录复制到/etc/skel将保留该目录。
    • 内核定义,内核是系统范围的。同一系统上的所有用户将运行相同的内核。
    • 康达:是的,所有应用程序都在系统范围内安装(根据前面的观点)。我看到那conda是一个包管理器。如果它在系统范围内安装东西,那么所有用户都将拥有它,即使不做任何事情/etc/skel。如果它将某些内容安装到主目录,则需要将这些内容放入/etc/skel新用户的主目录中。

在简单地复制/home/exampleuser/etc/skel.确保您使用的是新的、无菌的用户帐户来执行此操作。 ssh private 和authorized_keys 之类的东西也在主目录中。您可能不希望这些内容被重复。个人数据也可能存在于此处,因此请确保在需要时清除所有数据。

此外,您的用户在主目录之外的权限也不会被复制。一般来说,您的用户应该只拥有自己目录中的内容。

如果您对权限有任何特殊要求,那么确保这些要求由组处理可能是个好主意。例如,如果您希望用户能够使用 访问某些命令sudo,则请确保/etc/sudoers为组定义这些权限,然后确保新用户在创建时属于该组。

相关内容