linux设置家目录,usermod更改用户家目录

系统: Ubuntu 16.04 LTS

今天使用usermod命令更改用户的家目录, 总是失败. 上网查询了各种方法也还是不可以, 最后慢慢尝试总算找到了对的方法, 现记录下来.

例: 新添加了用户user1, 将其改为user2, UID/GID不变, 用户名,基本组名和家目录均改为user2.

1.创建用户user1;

useradd -m user1;

ll /home;

0cd6d03b7992d92e68a7690f896f2c98.png

cat /etc/passwd;

c29c6340e780f969aeba9c1586c05842.png

id user1;

e47629eb908d2176a06e89cd997475db.png

我们成功创建了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;

b93e5bde38b93284da0651be9d557c9a.png

使用此命令仍报错,报错信息是usermod命令的使用说明(可能是Ubuntu特有的报错模式?)

我最初猜测可能是因为没有/home/user2这个目录,所以先创建了一个,再执行上述命令,仍是同样结果:

mkdir user2;

1bbcbd11baa5aefff3147cbc7e0ca767.png

usermod -dm /home/user2 -u 1001 user1;

仍是同样的报错信息.

当时百思不得其解,为什么别人用这个命令可以,我用就不可以?

我又尝试了命令

usermod -d -m /home/user2 -u 1001 user1;

报错.

usermod -m -d /home/user2 -u 1001 user1;

40e13c61bad4e6a40bf4927bb9080760.png

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

rmdir user2;

usermod -m -d /home/user2 -u 1001 user1;

8d9bb640efc353e2826302bf0d3e05ed.png

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

finger user1;

4177cb20f966e6aa0000b267a8ab745f.png

user1的家目录确实已经变成/home/user2,但此时ll /home并没有发现user2目录.

于是我重新整理思路,尝试将其家目录先变回user1,再重新变为user2;

usermod -m -d /home/user1 -u 1001 user1;

46cd2c30aeedf8af9941d6b952c1c87c.png

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

finger user1;

ee0bc1820e880948cb9ba42602e65e04.png

发现其实已经变回来了,再使用命令:

usermod -m -d /home/user2 -u 1001 user1;

终于没有报错!

ll /home;

2cada604fbaa07a486cd5d6db4436125.png

发现/home/user2目录出现,属主为user1,属组为user1,以前的/home/user1目录不见了.

使用su - 命令切换到用户user1看是否成功创建了家目录:

su - user1; #此处应使用su - user1而不是su user1以改变各种环境变量等,否则可能出现假阳性?

ll;

9e92bc89045cf1fe828a3b4a1bf9d505.png

pwd;

1049838b2a8e014043f7574a4df0034a.png

成功切换,一切正常.

至此,终于将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;

9b2ccbc3453a93f8e6e3e691b79d1e3c.png

groupmod -n user2 user1;

ll;

cc2497b290695379a280245abef27ff8.png

finger user2;

199044a4748224c8b09a9c47c676fa5d.png

cat /etc/passwd;

7f49e79cec4edd3bdd2bf80b90a44049.png

至此,成功将user1的登录名,基本组名和家目录改为了user2(即把user1改名叫user2了,和使用命令useradd -m user2是一样的效果).

Tips:

1.很多linux的短选项可以缩写,如-m -n 可以写为-mn,但在usermod命令中,-m -d 缩写为-dm是不可以的(至少在我的电脑上我的这个版本上是不可以的),所以当某个短选项后面加参数时不要和其他短选项混合缩写.

2.Ubuntu可使用gnome-screenshot -a局部截图,但是后来发现这个桌面版直接在系统设置里可以设置成快捷键.

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值