当前位置: 首页 > news >正文

Linux命令大全-usermod命令

一、简介

usermod(英文全拼:user modify)命令用于修改用户的一些参数。比如创建的用户有一些参数写错了,就不需要删除用户再进行创建,可以使用该命令直接修改成用户正常的参数。

二、语法

语法:usermod [选项] 登录(用户)

参数说明:

-a:将用户添加至扩展组中

-c:<备注> 修改用户的备注信息

-m:将用户家目录内容移动到新位置

-d:<登入目录> 修改用户登录时的家目录

-o:允许重复的用户ID

-e:<有效期限> 修改用户的有效期限

-p:设置用户的新密码

-f:<缓冲天数> 设置在密码过期多少天后关闭该用户

-s:<shell> 修改用户登入后所使用的shell

-g:<群组> 修改用户所属的群组

-G:<群组> 修改用户所属的附加群组

-u:<uid> 修改用户的ID

-U:解除密码锁定,使密码恢复正常

-l:<帐号名称> 修改用户名称

-L:锁定用户密码,使密码立即失效

三、实战

1、更改一个用户的家目录

[root@app01 home]# cat /etc/passwd|grep tom
tom:x:1002:1002::/home/tom:/bin/bash
[root@app01 home]# usermod -d /app/tom tom
[root@app01 home]# cat /etc/passwd|grep tom
tom:x:1002:1002::/app/tom:/bin/bash

修改完成tom用户家目录之后,使用root用户切换到tom用户后,有时会报如下错误:

1.切换用户错误:

su: 警告:无法更改到 /app/tom 目录: 没有那个文件或目录

2.用户登录错误:

Could not chdir to home directory /app/tom: No such file or directory

这是因为新更改的家目录不存在造成的,在对应的目录下创建好对应家目录,并把家目录的用户所属权限(用户和组)修改成对应用户的权限的即解决以上的报错信息。

解决完以上问题后,大家可能会发现,登陆后或切换后用户发现用户登录提示为-bash-4.2$,而不是[tom@app01 ~]$。如下所示:

[root@app01 app]# su - tom
上一次登录:六 8月 23 21:18:28 CST 2025pts/0 上
-bash-4.2$

这是因为用户的“.bash_logout、.bash_profile、.bashrc或.bash*”文件丢失造成,可以从原来的家目录下的文件复制到修改后的家目录中,也可以从/etc/skel目录把“.bash_logout、.bash_profile、.bashrc或.bash*”复制到修改后的家目录中,重新登陆即可。

注:复制完成之后,记得把对应的文件用户所属权限(用户和组)修改成对应用户的权限。

2、修改用户的用户id

[root@app01 app]# id tom
uid=1002(tom) gid=1002(tom) 组=1002(tom)
[root@app01 app]# usermod -u 1003 tom
[root@app01 app]# id tom
uid=1003(tom) gid=1002(tom) 组=1002(tom)

如果有用该用户启动一些程序,或是用户有登录且没有退出,是不能修改,修改时会报以下错误。

[root@app01 app]# usermod -u 1003 tom
usermod: user tom is currently used by process 2493

在日常的工作中,有可能会同时修改用户所属的组和附属组,此时大家可以用“-g”和“-G”来组合完成。如下:

[root@app01 app]# id tom1
uid=1002(tom1) gid=1002(tom) 组=1002(tom)
[root@app01 app]# usermod -g app -G app tom1
[root@app01 app]# id tom1
uid=1002(tom1) gid=1000(app) 组=1000(app)

有时会在原来的组中增加用户组。如下:

[root@app01 app]# usermod -aG tom tom1
[root@app01 app]# id tom1
uid=1002(tom1) gid=1000(app) 组=1000(app),1002(tom)

其中“-G”是修改,“-a”是在原来的附属组中进行新增,在目常工作中要根据实际情况进行更改,避免出现修改错误的情况发生。

3、修改用户名称

[root@app01 app]# usermod -l tom1 tom
[root@app01 app]# id tom
id: tom: no such user
[root@app01 app]# id tom1
uid=1002(tom1) gid=1002(tom) 组=1002(tom)

修改用户名称时,新用户名称在前,旧用户名称在后,如果写返会提示用户不存在的错误。如下:

[root@app01 app]# usermod -l tom tom1
usermod:用户“tom1”不存在

注:用户名称修改完成之后,用户的家目录名称是不会修改的。

4、锁定用户,临时不用登陆

[root@app01 app]# usermod -L tom

5、解锁用户,可以再次登录

[root@app01 app]# usermod -U tom

http://www.dtcms.com/a/399369.html

相关文章:

  • Linux网络HTTP协议(上)
  • 开源 java android app 开发(十四)自定义绘图控件--波形图
  • umijs 4.0学习 - umijs 的项目搭建+自动化eslint保存+项目结构
  • 汇天网络科技有限公司苏州关键词优化软件
  • 制冷剂中表压对应温度值的获取(Selenium)
  • 建什么网站访问量高seo优化
  • 小型网站建设参考文献word超链接网站怎样做
  • 可视化 GraphRAG 构建的知识图谱 空谈版
  • 安装gitlab并上传本地项目
  • 黄页88网站免费推广网站大全网
  • 深圳附近建站公司做企业网站有什么工作内容
  • 新能源知识库(104)什么是FAT和SAT?
  • 多元函数可微性的完整证明方法与理解
  • 长春建站培训wordpress广告先显示
  • 怎么做网页版手机版网站百度竞价托管公司
  • 【寰宇光锥舟】Bash 脚本详细解释
  • 如何高效解析复杂表格
  • glog使用: 07-错误信号处理(Failure Signal Handler)
  • Netty从0到1系列之内置Handler【下】
  • java服务注册到 Nacos 及相关配置
  • 设计网站与建设wordpress网站部署
  • 扬州鼎盛开发建设有限公司网站简单的ps网页设计教程
  • 本地AI部署成趋势:LocalAl+cpolar安全指南
  • 概率编程实战:使用Pyro/PyMC3构建贝叶斯模型
  • 数据结构系列之链表
  • 194-基于Python的脑肿瘤患者数据分析可视化
  • 在 Mac 上无线挂载 Android /sdcard
  • Nature论文解读DeepSeek R1:MoE架构如何重构高效推理的技术范式
  • 拆炸弹-定长滑动窗口/环形数组
  • 成都市城乡建设局网站重庆市建设施工安全网站