他のシステムユーザー(グループ、権限、特権、および設定は同じ)の正確なコピーですが、ユーザー名、パスワード、およびホームディレクトリが異なる新しいシステムユーザーを作成する方法は?
答え1
このスクリプトは次のことを行います(説明に従って更新されます)。
#!/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}
ソースユーザーのグループ(ログイン名と同じグループを除く)とシェルをインポートし、同じシェルとセカンダリグループを使用して新しいユーザーを作成します。
Usage: clone-user src_user_name new_user_name
エラーチェックはありませんが、迅速で汚れたレプリケーションスクリプトです。
答え2
- /etc/passwd を編集し、正確なコピーを希望するユーザー行をコピーします。ログイン名、実際の名前、およびホームディレクトリを変更します。
- /etc/shadow を編集し、元のユーザーの行を再度コピーします。ログイン名を編集してください。
- 最後に、
passwd newuser
パスワードを変更してみてください。
システム側では、両方のユーザーが同じであるため(同じUID)、あるユーザーが別のユーザーのホームディレクトリに移動して自由に変更できます。
答え3
Linux Mint 18 Mateの場合
Mike Andersonのスクリプトに従って、新しいユーザー、古いユーザー、新しいパスワードについて尋ねる質問を作成し、古いユーザーのホームディレクトリをコピーし、新しいホームディレクトリの古いユーザー名のすべてのインスタンスを新しいユーザー名のインスタンスに置き換えました。ユーザー名。
useradd行に関連する私のスクリプトの主な違いは、Linux Mint 18でpasswdが失敗し、chpasswdに置き換えられることです。パスワードを有効にするには、echo $newuser:$ newpassword | chpasswdという新しい行を作成しました。
もう1つの違いは、--create-homeを操作できないため、新しい行でmkdirを使用したことです。
巨大な古いユーザーのホームディレクトリがある場合は注意してください。
必要なものだけを取り、残りを残してください。コピーしたすべてのコードに対する責任はあなたにあります。バックアップコピーを作成してください!
#!/bin/bash
# clone a user
# usage:
# if you named this as below then
# change to the directory and run this command
# sudo bash clone-user.sh
echo "============="
echo "this script will create a new user"
echo "based on an existing user's data"
echo
echo "You will be shown a list of users who can currently log on"
echo "Remember which user you would like to clone."
echo "You will be asked for the new user's name, their password"
echo "and the old user to clone".
echo "============="
echo
echo -n "New user's name: "
read newuser
echo -n "New user's password: "
read newpassword
echo
echo "Current users you can clone:"
echo "----"
awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd
echo
echo -n "Old user to clone: "
read olduser
echo
echo "You have selected: "
echo "----"
echo "new user: $newuser"
echo "new user password: $newpassword"
echo "old user: $olduser"
echo
olduser_GROUPS=$(id -Gn ${olduser} | sed "s/${olduser} //g" | sed "s/ ${olduser}//g" | sed "s/ /,/g")
olduser_SHELL=$(awk -F : -v name=${olduser} '(name == $1) { print $7 }' /etc/passwd)
echo "old user groups: "
echo "----"
echo $olduser_GROUPS
echo "olduser shell: "
echo $olduser_SHELL
read -rsp $'Press any key to continue or ctrl-c to exit...\n' -n1 key
useradd --groups $olduser_GROUPS --shell $olduser_SHELL $newuser
echo $newuser:$newpassword | chpasswd
read -rsp $'ready to make home direcoty -- ctrl-c to exit...\n' -n1 key
mkdir /home/$newuser
chown -R $newuser:$newuser /home/$newuser
echo
echo "Script should be done now."
echo
echo "Do you see your new users name below?"
echo
awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd
echo
echo "We are now going to copy the old user's home folder to the new user"
echo "then change ownership to the new user"
echo
read -rsp $'Ready to copy home folder --- or ctrl-c to exit...\n' -n1 key
rsync -aPv /home/$olduser/. /home/$newuser/
chown -R --from=$olduser $newuser:$newuser /home/$newuser
echo
echo "Now we are going to change the names of files and folders to the new user"
echo
grep -rlI $olduser /home/$newuser/ . | sudo xargs sed -i 's/$olduser/$newuser/g'
echo
echo "Done now."
echo
read -rsp $'Press any key to exit...\n' -n1 key
echo
echo
このスクリプトを完成するのを助けてくれた世界中の皆さんに感謝します。オレゴンのジョン
答え4
/usr/local/bin/clone-usermod
#!/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)
usermod --groups ${SRC_GROUPS} $2
PS /user/local/bin/clone-usermodと入力した人は「コード」としてリストされているので、人々がそれを生成するために必要なファイルが何であるかを知ることができます。また、ファイルを実行可能にする必要があることを示していません。タイプミスではなく特定のパスを読んでいないことは明らかです。だからあなたはLinuxに精通したユーザーではないので、私はあなたの失礼を無視します。具体的な質問がある場合はお問い合わせください。判断したい場合は続けてください...これはあなたが探しているロボットではありません。ここでは見ることはあまりありません。私は本当に興味がありません。良い一日をお過ごしください。