Linux系列教程(十五)——Linux用户和用户组管理之用户管理命令
上篇博客我们介绍了用户管理的相关配置文件,包括用户信息文件/etc/passwd,用户密码文件/etc/shadow;然后介绍了用户组信息文件/etc/group,用户组密码文件/etc/gshadow。用户的家目录,以及用户的模板目录,那么我们如何创建用户呢?这篇博客我们将学习用户管理的相关命令。
1、添加用户命令:useradd
①、命令名称:useradd
②、英文原意:
③、命令所在路径:/usr/sbin/useradd
④、执行权限:root
⑤、功能描述:添加新用户
⑥、语法: useradd 【选项】【用户名】
-u UID:手工指定用户的uid
-d 家目录:手工指定用户的家目录
-c 用户说明:手工指定用户说明
-g 组名:手工指定用户的初始组
-G 组名:手工指定用户的附加组
-s shell:手工指定用户的登录shell,默认是/bin/bash
注意:添加选项的uid,家目录等等前面的配置文件我们都已经讲解了,实际上创建新用户是不用添加任何选项的,默认就好。
范例:添加用户tom:useradd tom。
创建一个新用户之后,会在下面文件中自动生成内容:
/etc/passwd:生成用户信息
/etc/shadow:生成密码信息
/etc/group:生成用户组信息
/etc/gshadow:生成用户组密码信息
/home/tom:创建家目录
/var/spool/mail/tom:创建用户邮箱目录
上面出现了很多默认值,用户默认值文件如下:
2、修改用户密码:passwd
①、命令名称:passwd
②、英文原意:
③、命令所在路径:/usr/bin/passwd
④、执行权限:root
⑤、功能描述:修改用户的密码
⑥、语法: passwd 【选项】【用户名】
-S 查询用户密码的密码状态,仅root用户可用
-l 暂时锁定用户。仅root用户可用
-u 解锁用户。仅root用户可用
-stdin 可以通过管道符输出的数据作为用户的密码
注意:root用户能修改任何用户的密码,语法为 passwd 用户名。而普通用户只能修改自己的密码,语法为 passwd,后面不能加普通用户名,而且密码要符合密码规则,不然修改不了。
3、修改用户信息:usermod
4、修改用户密码状态:chage
5、删除用户命令:userdel
语法:userdel 【-r】用户名
-r 删除用户的同时删除用户家目录
执行上面的命令,会自动删除下面的文件:
①、删除 /etc/passwd 文件的用户信息
②、删除 /etc/shadow 文件的用户密码信息
③、删除/etc/group 文件的用户组信息
④、删除 /etc/gshadow 文件的用户组密码信息
⑤、删除用户的邮件信息 rm -rf /var/spool/mail/用户名
⑥、删除用户的家目录 rm -rf /home/用户名
注意:基本上完整的删除一个用户都是要加上 -r 选项的。如何判断是否完整的删除一个用户,只需要从新添加该用户一次,如果报如下错误则没有删除干净:
6、查看用户id
7、切换用户身份 su
注意:选项 - 千万不能省略,必须要连带用户的环境变量一起切换。从普通用户切换到 root 用户是需要输入密码的,而从root用户切换到普通用户是不需要输入密码的。
8、添加用户组:groupadd
语法:groupadd 【选项】组名
-g GID 指定组id
9、修改用户组:groupmod
语法:groupmod 【选项】组名
-g GID 修改组id
-n 新组名 修改组名
范例:把组名 group1 修改为 group2
groupmod -n group2 group1
10、删除用户组:groupdel
语法:groupdel 组名
11、总结
本篇博客我们讲解了管理用户和用户组的命令,包括新建、修改、查看等等。还讲解了切换用户的命令 su,这个命令以后用到的也比较多。那么通过这一篇博客和前面一篇博客,用户和用户组管理就结束了,下篇博客我们将进入权限管理的介绍。
Linux系列教程(十五)——Linux用户和用户组管理之用户管理命令的更多相关文章
- webpack4 系列教程(十五):开发模式与webpack-dev-server
作者按:因为教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步<webpack4 系列教程(十五):开发模式与 webpack-dev-server>原文地址.更欢迎来我的 ...
- Unity3D脚本中文系列教程(十五)
http://dong2008hong.blog.163.com/blog/static/4696882720140322449780/ Unity3D脚本中文系列教程(十四) ◆ LightRend ...
- Linux系列教程(五)——Linux链接命令和权限管理命令
前一篇博客我们讲解了Linux文件和目录处理命令,还是老生常淡,对于新手而言,我们不需要完全记住命令的详细语法,记住该命令能完成什么功能,然后需要的时候去查就好了,用的多了我们就自然记住了.这篇博客我 ...
- Linux系列教程(五)——Linux常用命令之链接命令和权限管理命令
前一篇博客我们讲解了Linux文件和目录处理命令,还是老生常淡,对于新手而言,我们不需要完全记住命令的详细语法,记住该命令能完成什么功能,然后需要的时候去查就好了,用的多了我们就自然记住了.这篇博客我 ...
- linux系列(十五):tail命令
1.命令格式: tail[必要参数][选择参数][文件] 2.命令功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理.常用查看日志文件. 3.命令参数: -f 循环读取 -q 不显示 ...
- Linux学习之十五-Linux文件特殊权限和附加权限
Linux文件特殊权限和附加权限 1.特殊权限suid 范围:只能针对二进制命令文件 作用:让普通用户拥有二进制命令文件所有者的权限 举例1:普通用户使用passwd命令修改密码 cat /etc/s ...
- Spring Boot2 系列教程 (十五) | 服务端参数校验之一
估计很多朋友都认为参数校验是客户端的职责,不关服务端的事.其实这是错误的,学过 Web 安全的都知道,客户端的验证只是第一道关卡.它的参数验证并不是安全的,一旦被有心人抓到可乘之机,他就可以有各种方法 ...
- Spring Boot2 系列教程(十五)定义系统启动任务的两种方式
在 Servlet/Jsp 项目中,如果涉及到系统任务,例如在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行,这里,容易想到web基础中的三大组件( ...
- Unity3D脚本中文系列教程(十六)
Unity3D脚本中文系列教程(十五) ◆ function OnPostprocessAudio (clip:AudioClip):void 描述:◆ function OnPostprocess ...
- CRL快速开发框架系列教程十二(MongoDB支持)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
随机推荐
- 零复制(zero copy)技术
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- 非对称加密RSA的C#实现
1.对称加密算法 对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key). 对称加密有很多种算法,由于它效率很高,所 ...
- 记住密码"功能的正确设计
Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关 ...
- # C语言程序设计预备作业
一.针对老师和学生是怎样的关系的看法 ==首先我认同邹欣老师的看法,下面也是我自己的一点见解.== #### (1)师生在教育内容的教学上结成授受关系 .从教师与学生的社会角色规定意义上看,在知识上, ...
- jQuery实现web页面固定列表搜索
1.需求分析:现在有一个数据展示列表页面,列表内容固定,使用jQuery在固定的列表中实现搜索功能. 2.核心代码: <!-- 添加jquery库 --> <script type= ...
- git fsck -- 一致性检查
格式: git fsck [选项] <path> 选项 git commit -a 提交所有改动的文件(a -- all) git commit -m 提交说明(m ...
- 浅谈Java多态
什么是Java中的多态?又是一个纸老虎的概念,老套路,把它具体化,细分化,先想三个问题(注意,这里不是简单的化整为零,而是要建立在学习一个新概念时的思考框架): 1.这个东西有什么用?用来干什么的?它 ...
- Windows系统下八大具有高逼格的DOS命令之一【ping】
ping命令: ping是用来检测网络是否通畅或者查询网络连接速度的一个基础命令.作为一名对计算机痴迷的爱好者来说,ping命令是需要第一个掌握的DOS命令.它所利用的原理是这样的:网络上的机器都有唯 ...
- git的使用(进阶篇)
如何处理代码冲突 冲突合并一般是因为自己的本地做的提交和服务器上的提交有差异,并且这些差异中的文件改动,Git不能自动合并,那么就需要用户手动进行合并 如我这边执行git pull origin ma ...
- ios 返回不会自动刷新页面问题
在实际开发过程中,移动端的兼容性问题有很大的坑,安卓可以了ios不行,ios可以了安卓又失效了这样,其中ios的回退操作就是不会自动刷新页面,很烦! 常见的history.back() history ...