克隆 Linux 用户(复制用户,基于另一个用户)

Sfi*_*oza 23 linux debian

如何创建一个新的系统用户,另一个用户的精确副本(具有相同的组、权限、特权和设置),但具有不同的用户名、密码和主目录?

小智 18

这个脚本会做到这一点(根据评论更新):

#!/bin/bash
SRC=$1
DEST=$2

SRC_GROUPS=$(id -Gn ${SRC} | sed "s/ /,/g" | sed -r 's/\<'${SRC}'\>\b,?//g')
SRC_SHELL=$(awk -F : -v name=${SRC} '(name == $1) { print $7 }' /etc/passwd)

sudo useradd --groups ${SRC_GROUPS} --shell ${SRC_SHELL} --create-home ${DEST}
sudo passwd ${DEST}
Run Code Online (Sandbox Code Playgroud)

它获取源用户的组(不包括与其登录名相同的组)和 shell,然后创建一个具有相同 shell 和辅助组的新用户。

Usage: clone-user src_user_name new_user_name
Run Code Online (Sandbox Code Playgroud)

没有错误检查,它只是一个快速而肮脏的克隆脚本。


YoM*_*smo 6

  • 编辑 /etc/passwd 并复制您想要精确副本的用户行。修改登录名、真实姓名和家目录。
  • 编辑 /etc/shadow 并再次复制原始用户的行。修改登录名。
  • 最后执行passwd newuser修改密码。

请注意,系统明智的两个用户是相同的(相同的 UID),因此一个人将能够进入另一个人的主目录并随意修改。

  • @Wildcard,但它不会是一个克隆,而是一个新用户,该任务可以通过简单的“useradd”来完成。现在我想了想,你可以反过来做,用 `useradd` 创建一个新用户,然后修改 UID 和 GID 来克隆第一个。 (2认同)

小智 -2

试试这个命令

useradd -N -g gid -G gid2,gid3 -m
Run Code Online (Sandbox Code Playgroud)