e2

滴滴侠,fai抖

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
个人原创,欢迎交流^_^
系统: Ubuntu 16.04 LTS
今天使用usermod命令更改用户的家目录, 总是失败. 上网查询了各种方法也还是不可以, 最后慢慢尝试总算找到了对的方法, 现记录下来.

例: 新添加了用户user1, 将其改为user2, UID/GID不变, 用户名,基本组名和家目录均改为user2.
1. 创建用户user1;
useradd -m user1;
ll /home;
usermod更改用户家目录
cat /etc/passwd;
usermod更改用户家目录
id user1;
usermod更改用户家目录
我们成功创建了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更改用户家目录
使用此命令仍报错,报错信息是usermod命令的使用说明(可能是Ubuntu特有的报错模式?)
最初猜测可能是因为没有/home/user2这个目录,所以先创建了一个,再执行上述命令,仍是同样结果:
mkdir user2;
usermod更改用户家目录
usermod -dm /home/user2 -u 1001 user1;
仍是同样的报错信息.
当时百思不得其解,为什么别人用这个命令可以,我用就不可以?
我又尝试了命令
usermod -d -m /home/user2 -u 1001 user1;
报错.
usermod -m -d /home/user2 -u 1001 user1;
usermod更改用户家目录
这次出现了不一样的报错信息,提示目录/home/user2不存在,但实际上我已经用root创建了user2目录,怎么可能不存在?难道是因为目录user2的属主和属组都是root,权限或usermod命令的局限性所致无法将其属主改为user2?于是我把user2目录手动删除之后再usermod:
rmdir user2;
usermod -m -d /home/user2 -u 1001 user1;

usermod更改用户家目录
提示信息为usermod无改变,难道user1的家目录已经变为/home/user2?我用finger命令查看了一下:
finger user1;
usermod更改用户家目录
user1的家目录确实已经变成/home/user2,但此时ll /home并没有发现user2目录.
于是我重新整理思路,尝试将其家目录先变回user1,再重新变为user2;
usermod -m -d /home/user1 -u 1001 user1;
usermod更改用户家目录
提示/home/user1不存在,但是
finger user1;
usermod更改用户家目录
发现其实已经变回来了,再使用命令:
usermod -m -d /home/user2 -u 1001 user1;
终于没有报错!
ll /home;
usermod更改用户家目录
发现/home/user2目录出现,属主为user1,属组为user1,以前的/home/user1目录不见了.
使用su - 命令切换到用户user1看是否成功创建了家目录:
su - user1; #此处应使用su - user1而不是su user1以改变各种环境变量等,否则可能出现假阳性?
ll;
usermod更改用户家目录
pwd;
usermod更改用户家目录
成功切换,一切正常.
至此,终于将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;

 usermod更改用户家目录
groupmod -n user2 user1;
ll;

usermod更改用户家目录
finger user2;
usermod更改用户家目录
cat /etc/passwd;
usermod更改用户家目录
至此,成功将user1的登录名,基本组名和家目录改为了user2(即把user1改名叫user2了,和使用命令useradd -m user2是一样的效果).
Tips:
1. 很多linux的短选项可以缩写,如-m -n 可以写为-mn,但在usermod命令中,-m -d 缩写为-dm是不可以的(至少在我的电脑上我的这个版本上是不可以的),所以当某个短选项后面加参数时不要和其他短选项混合缩写.
2. Ubuntu可使用gnome-screenshot -a局部截图,但是后来发现这个桌面版直接在系统设置里可以设置成快捷键.
3. 花了一下午加半个晚上终于搞定了这个命令,这效率我也是醉了...智商堪忧,只好继续努力...
posted on 2018-07-18 15:47  纯黑Se丶  阅读(3835)  评论(0编辑  收藏  举报