博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
usermod更改用户家目录
阅读量:6680 次
发布时间:2019-06-25

本文共 2137 字,大约阅读时间需要 7 分钟。

个人原创,欢迎交流^_^
系统: Ubuntu 16.04 LTS
今天使用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是一样的效果).
Tips:
1. 很多linux的短选项可以缩写,如-m -n 可以写为-mn,但在usermod命令中,-m -d 缩写为-dm是不可以的(至少在我的电脑上我的这个版本上是不可以的),所以
当某个短选项后面加参数时不要和其他短选项混合缩写.
2. Ubuntu可使用
gnome-screenshot -a局部截图,但是后来发现这个桌面版直接在系统设置里可以设置成快捷键.
3. 花了一下午加半个晚上终于搞定了这个命令,这效率我也是醉了...智商堪忧,只好继续努力...

转载于:https://www.cnblogs.com/gscq073240/articles/9329532.html

你可能感兴趣的文章
Python-Django 视图层
查看>>
uC/OS-II中includes块
查看>>
公共DNS推荐及dns测速
查看>>
查询获取所有数据库名及数据库中表的集合、数据库连接字符串(类生成器,暂时支持mysql,sql server,后期有oracle再更新)...
查看>>
spring_5处理数据库
查看>>
SAE 部署 bilibili 爬虫
查看>>
利用千人基因组数据库查看SNP在不同地区、国家、洲的频率及个数
查看>>
[BZOJ3224]普通平衡树
查看>>
sed命令2
查看>>
money 和 smallmoney
查看>>
nginx 301重定向一种实现方法
查看>>
Scramble String
查看>>
LeetCode:Binary Tree Level Order Traversal II (按层遍历)
查看>>
2 虚拟机Oracle11.2.0.4服务器端,第三方图形化界面安装步骤
查看>>
Python全栈开发-Day5-常用模块学习
查看>>
Mac OS下配置PHP Nginx PHP-FPM
查看>>
Linux基础:CentOS安装python3.7
查看>>
Daily Scrum: 2012/11/27
查看>>
vue学习中v-if和v-show一起使用的问题
查看>>
获取一个月前的当前时间
查看>>