usermod更改用户家目录


新添加了用户user1, 将其改为user2, UID/GID不变, 用户名,基本组名和家目录均改为user2.
1. 创建用户user1;
useradd -m user1;
ll /home;

cat /etc/passwd;

id user1;

我们成功创建了user1;

2. 更改user1的家目录为user2;
由于man下没找到usermod更改家目录的命令具体格式(可能是我没看清楚没找到),最早使用了一下几个命令:
usermod -dm /home/user2 user1;
usermod -dm /home/user2 1001;
usermod -d -m /home/user2 1001;
usermod -d /home/user2 -m 1001;

等类似命令,均不能实现.
之后度娘, 发现有很多人在问这个问题,而比较一致的回答是要加-u选项,后跟UID和用户名,具体命令为:
usermod -dm /home/user2 -u 1001 user1;

使用此命令仍报错,报错信息是usermod命令的使用说明(可能是Ubuntu特有的报错模式?)
我最初猜测可能是因为没有/home/user2这个目录,所以先创建了一个,再执行上述命令,仍是同样结果:
mkdir user2;

usermod -dm /home/user2 -u 1001 user1;
仍是同样的报错信息.

当时百思不得其解,为什么别人用这个命令可以,我用就不可以?
我又尝试了命令
usermod -d -m /home/user2 -u 1001 user1;
报错.
usermod -m -d /home/user2 -u 1001 user1;

这次出现了不一样的报错信息,提示目录/home/user2不存在,但实际上我已经用root创建了user2目录,怎么可能不存在?难道是因为目录user2的属主和属组都是root,权限或usermod命令的局限性所致无法将其属主改为user2?于是我把user2目录手动删除之后再usermod:
rmdir user2;
usermod -m -d /home/user2 -u 1001 user1;


提示信息为usermod无改变,难道user1的家目录已经变为/home/user2?我用finger命令查看了一下:
finger user1;

user1的家目录确实已经变成/home/user2,但此时ll /home并没有发现user2目录.
于是我重新整理思路,尝试将其家目录先变回user1,再重新变为user2;
usermod -m -d /home/user1 -u 1001 user1;

提示/home/user1不存在,但是
finger user1;

发现其实已经变回来了,再使用命令:
usermod -m -d /home/user2 -u 1001 user1;
终于没有报错!
ll /home;

发现/home/user2目录出现,属主为user1,属组为user1,以前的/home/user1目录不见了.
使用su - 命令切换到用户user1看是否成功创建了家目录:
su - user1; #此处应使用su - user1而不是su user1以改变各种环境变量等,否则可能出现假阳性?
ll;

pwd;

成功切换,一切正常.
至此,终于将user1的家目录切换为/home/user2.
正确的命令为:
usermod -m -d /home/user2 -u 1001 user1;

usermod -d /home/user2 -m -u 1001 user1;
最后,再改变用户名和组名为user2:
usermod -l user2 user1;
ll;

 


groupmod -n user2 user1;
ll;


finger user2;

cat /etc/passwd;

至此,成功将user1的登录名,基本组名和家目录改为了user2(即把user1改名叫user2了,和使用命令useradd -m user2是一样的效果).
 
usermod可以用来修改linux下用户信息,自然也可以更改用户名。
1,更改用户名:usermod -l newusername username。将username用户名更改为newusername。
2,usermod其他参数如下:
-c<备注>  修改用户帐号的备注文字。
-d登入目录>  修改用户登入时的目录。
-e<有效期限>  修改帐号的有效期限。
-f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
-g<群组>  修改用户所属的群组。
-G<群组>  修改用户所属的附加群组。
-l<帐号名称>  修改用户帐号名称。
-L  锁定用户密码,使密码无效。
-s  修改用户登入后所使用的shell。
-u  修改用户ID
-U  解除密码锁定。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM