上篇博客我们介绍了用户管理的相关配置文件,包括用户信息文件/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用户和用户组管理之用户管理命令的更多相关文章

  1. webpack4 系列教程(十五):开发模式与webpack-dev-server

    作者按:因为教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步<webpack4 系列教程(十五):开发模式与 webpack-dev-server>原文地址.更欢迎来我的 ...

  2. Unity3D脚本中文系列教程(十五)

    http://dong2008hong.blog.163.com/blog/static/4696882720140322449780/ Unity3D脚本中文系列教程(十四) ◆ LightRend ...

  3. Linux系列教程(五)——Linux链接命令和权限管理命令

    前一篇博客我们讲解了Linux文件和目录处理命令,还是老生常淡,对于新手而言,我们不需要完全记住命令的详细语法,记住该命令能完成什么功能,然后需要的时候去查就好了,用的多了我们就自然记住了.这篇博客我 ...

  4. Linux系列教程(五)——Linux常用命令之链接命令和权限管理命令

    前一篇博客我们讲解了Linux文件和目录处理命令,还是老生常淡,对于新手而言,我们不需要完全记住命令的详细语法,记住该命令能完成什么功能,然后需要的时候去查就好了,用的多了我们就自然记住了.这篇博客我 ...

  5. linux系列(十五):tail命令

    1.命令格式: tail[必要参数][选择参数][文件] 2.命令功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理.常用查看日志文件. 3.命令参数: -f 循环读取 -q 不显示 ...

  6. Linux学习之十五-Linux文件特殊权限和附加权限

    Linux文件特殊权限和附加权限 1.特殊权限suid 范围:只能针对二进制命令文件 作用:让普通用户拥有二进制命令文件所有者的权限 举例1:普通用户使用passwd命令修改密码 cat /etc/s ...

  7. Spring Boot2 系列教程 (十五) | 服务端参数校验之一

    估计很多朋友都认为参数校验是客户端的职责,不关服务端的事.其实这是错误的,学过 Web 安全的都知道,客户端的验证只是第一道关卡.它的参数验证并不是安全的,一旦被有心人抓到可乘之机,他就可以有各种方法 ...

  8. Spring Boot2 系列教程(十五)定义系统启动任务的两种方式

    在 Servlet/Jsp 项目中,如果涉及到系统任务,例如在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行,这里,容易想到web基础中的三大组件( ...

  9. Unity3D脚本中文系列教程(十六)

    Unity3D脚本中文系列教程(十五) ◆ function OnPostprocessAudio (clip:AudioClip):void 描述:◆  function OnPostprocess ...

  10. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

随机推荐

  1. windows下实现linux的远程访问以及linux上文件的上传和下载

    在网络性能.安全性.可管理性上,Linux有着其他系统无法比拟的强大优势,而服务器对这些方面要求特别高,因此Linux常常被用来做服务器使用.而当我们需要维护linux服务器的时候,就需要远程访问li ...

  2. Angular JS的正确打开姿势——简单实用(上)

        前  言 絮叨絮叨 在分享了JS和JQuery之后,今天再给大家分享一个好玩并且特别好用JS框架--AngularJS. 一. AngularJS简介 AngularJS 诞生于2009年,由 ...

  3. Number Complement

    Given a positive integer, output its complement number. The complement strategy is to flip the bits ...

  4. spring框架总结(04)----介绍的是Spring中的JDBC模板

    1.1  Jdbc模板概述 它是spring框架中提供的一个对象,是对原始Jdbc API对象的简单封装.spring框架为我们提供了很多的操作模板类,入下图所示: 我们今天的主角在spring-jd ...

  5. C#实现基于ffmepg加虹软的人脸识别

    关于人脸识别 目前的人脸识别已经相对成熟,有各种收费免费的商业方案和开源方案,其中OpenCV很早就支持了人脸识别,在我选择人脸识别开发库时,也横向对比了三种库,包括在线识别的百度.开源的OpenCV ...

  6. ZOJ2965 Accurately Say "CocaCola"! 线性扫描

    Accurately Say "CocaCola"! 范围找到:1--700左右,然后打表就ok了 #include<cstdio> #include<cstdl ...

  7. EsRejectedExecutionException排错与线程池类型

    1.EsRejectedExecutionException异常示例 java.util.concurrent.ExecutionException: RemoteTransportException ...

  8. akka tips

    1.actorSelection,当涉及actor远程通信时,可以使用actorSelection. context.actorSelection("akka.tcp://app@other ...

  9. UWP上可用的GB2312编码

    大概是在WP8的时候,网上有一个WP8可用的GB2312编码的解决方法,就是那个DBCSCodePage. 但是由于UAP开始,微软删掉了GetManifestResourceStream,所以这东西 ...

  10. win10 uwp 判断文件存在

    本文主要翻译http://stackoverflow.com/questions/37119464/uwp-check-if-file-exists/37152526#37152526 我们有多种方法 ...