Linux 上更改 UID 的操作步骤有点麻烦,有时会忘了重新设置用户文件的属主,所以写个脚本来简化负担。
1、更改文件属主需要 root 权限
if [[ "$(id -u)" -ne "0" ]];then
echo "This script should be execute by root" >&2
exit 1
fi
2、脚本接受两个参数,一个是用户名,一个是新的 UID
user="$1"
newUid="$2"
3、记录下用户对应的旧 UDI
oldUid="$(id -u "${user}")"
4、更改用户 UID
usermod -u "${newUid}" "${user}"
5、重新设置用户文件的属主
find / -user "${oldUid}" -exec chown -h "${user}" {} \;
这里一定要记得使用 chown 的 -h 选项把符号链接的属主改掉,否则改的是符号链接所指向的文件属主。

