linux用户迁移
一、介绍
跳板机需要关机做备份,而关机期间有些项目需要连接设备,故将所有账号迁移过去,保证关机期间能够正常跳转;使用/etc/passwd、/etc/group、/etc/shadow来做身份认证的,迁移用户帐号不是一件容易的任务。需要确保文件所有权保持完整,密码和所属组保持原样。在Linux上加入系统的用户的UID和GID总是从500开始计算,一直增加,除非被覆盖,这样迁移用户帐号,就是把UID>=500的用户帐号导入到系统中。为了让这个过程能工作正常,新安装的Linux系统上不要创建新的用户帐号。下面的过程包括获取用户帐号,把他们添加到恰当文件的已经存在的帐号后面。这个过程只在安装后有效,建议在添加用户帐号之前,备份要修改的文件。
二、操作
导出账号
1 | awk -F: ' ($3>=500) && ($3!=65534)' /etc/passwd > passwd.txt |
导出用户组
1 | awk -F: ' ($3>=500) && ($3!=65534)' /etc/ group > group .txt |
导出密码
1 | awk -F: ' ($3>=500) && ($3!=65534) {print $1}' /etc/passwd|tee -|egrep -f - /etc/shadow > shadow.txt |
然后拷贝passwd.txt、group.txt、shadow.txt三个文件到新系统上,比如root目录下,以防万一,最好把新系统上的这三个文件也备份一下。
三、恢复
1 2 3 | cp /etc/passwd /bakup/passwd-bakup.txt cp /etc/ group /bakup/ group -bakup.txt cp /etc/shadow /bakup/shadow-bakup.txt |
然后把拷贝过来的三个文件与新系统进行合并
1 2 3 4 5 | cat /root/passwd.txt >> /etc/passwd #合并账号 cat /root/ group .txt >> /etc/ group #合并用户组 cat /root/shadow.txt >> /etc/shadow #合并密码 |
合并之后重启一下,然后测试没问题
Q&A
以上操作之后登陆没问题,不过因为没有创建家目录所以登陆之后只显示bash~,想要解决将原来的home整体打包过来覆盖就可以了,因为我本次只临时备用故没处理
还有一种方法就是提取password的用户名,然后批量创建home目录下的家目录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫