#############用户和用户组管理###################
linux只认识UID和GID #可在/etc/passwd 和/etc/group中找到

##/etc/passwd 详解
[root@lgh2 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
省略。。。

很多用户为系统用户或伪用户。系统用户无法用来登录系统,但也不能删除,因为一旦删除,依赖这些用户运行的服务或程序就
不能正常执行,会导致系统问题

#格式
用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell
用户名:代表用户身份的符号
密码:”x“ 表示有密码,真正的密码存放在/etc/shadow中
UID:用户id,0-65535之间的数字,0表示root超级用户,1-499表示系统用户(伪用户)500-65535表示普通用户
GID:组ID,表示用户初始组组id
初始组:指用户登陆时就拥有这个用户组的相关权限。每个用户的初始组只能有一个,通常就是将和此用户的用户名相同的组名作为该用户的初始组
附加组,指用户可以加入多个其他的用户组,并拥有这些组的权限
描述性信息:解释语
主目录:就是用户的home目录
默认Shell:Linux 系统默认使用的命令解释器是 bash(/bin/bash)

##/etc/shadow 详解
[root@lgh2 ~]# cat /etc/shadow
root:$6$ma8fbbGcOsZzwVFU$6WxNnECNp8FjKH7a6ePicjhMWRvNCXrdonjYSn24uX5sP2A9tcD64MKOTdEkyrsdOdvoW42FhJJbJdOJ6AKL7.::0:99999:7:::
bin:*:17632:0:99999:7:::
daemon:*:17632:0:99999:7:::
省略。。。

#格式
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
用户名:同/etc/passwd中的用户
加密密码:不能手工修改,SHA512 散列加密算法,所有伪用户的密码都是 "!!" 或 "*",代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,
那么它的密码项也是 "!!",代表这个用户没有密码,不能登录。
最后一次修改时间:最后一次修改密码的时间,1970 年 1 月 1 日作为 1 不断累加得到的时间
最小修改时间间隔:该字段规定了从第 3 字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改;
密码有效期:指定距离第 3 字段(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段
密码需要变更前的警告天数:与第 5 字段相比较,当账户密码有效期快到时,系统会发出警告信息给此账户
密码过期后的宽限天数:也称为“口令失效日”,失效之后,还可以登录的天数
账号失效时间:同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!

##/ect/group 详解
文件是用户组配置文件,即用户组的所有信息都存放在此文件中。
[root@lgh2 ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
省略。。。

#格式
组名:密码:GID:该用户组中的用户列表
该用户组中的用户列表:该用户组是这个用户的初始组,则该用户不会写入这个字段
其他字段同上文

#/etc/gshadow 详解
[root@lgh2 ~]# cat /etc/gshadow
root:::
bin:::
daemon:::
省略。。。

#格式
组名:加密密码:组管理员:组附加用户列表

#cat /etc/login.defs | grep -v ^# | grep -v "^$"
可查看创建用户时的一些默认值(账号)

#useradd
-d #手工指定用户的主目录。主目录必须写绝对路径
-M #不创建home目录
-g #手工指定用户的初始组
-G #指定用户的附加组
-c #手工指定/etc/passwd文件中各用户信息中第 5 个字段的描述性内容,可随意配置;
-u #手工指定用户的 UID,注意 UID 的范围(不要小于 500)
-s #手工指定用户的登录 Shell,默认是 /bin/bash;
-e #指定用户的失效曰期,格式为 "YYYY-MM-DD"。也就是 /etc/shadow 文件的第八个字段;
-o #允许创建的用户的 UID 相同。例如,执行 "useradd -u 0 -o usertest" 命令建立用户 usertest
-r #创建系统用户,也就是 UID 在 1~499 之间,

/etc/default/useradd ##创建用户时一些默认的配置(home目录等)
也可以通过useradd -D 查看

[root@lgh2 skel]# ll -a /etc/skel/ ##可以用于复制到home目录下
total 24
drwxr-xr-x. 2 root root 62 Apr 11 2018 .
drwxr-xr-x. 91 root root 8192 Jun 27 04:47 ..
-rw-r--r--. 1 root root 18 Apr 10 2018 .bash_logout
-rw-r--r--. 1 root root 193 Apr 10 2018 .bash_profile
-rw-r--r--. 1 root root 231 Apr 10 2018 .bashrc

#passwd
#格式:passwd [选项] 用户名
-S:查询用户密码的状态,也就是 /etc/shadow 文件中此用户密码的内容。仅 root 用户可用;
-l:暂时锁定用户,该选项会在 /etc/shadow 文件中指定用户的加密密码串前添加 "!",使密码失效。仅 root 用户可用;
-u:解锁用户,和 -l 选项相对应,也是只能 root 用户使用;
--stdin:可以将通过管道符输出的数据作为用户的密码。主要在批量添加用户时使用;
-n 天数:设置该用户修改密码后,多长时间不能再次修改密码,也就是修改 /etc/shadow 文件中各行密码的第 4 个字段;
-x 天数:设置该用户的密码有效期,对应 /etc/shadow 文件中各行密码的第 5 个字段;
-w 天数:设置用户密码过期前的警告天数,对于 /etc/shadow 文件中各行密码的第 6 个字段;
-i 日期:设置用户密码失效日期,对应 /etc/shadow 文件中各行密码的第 7 个字段。

echo “abcd1234” | passwd username --stdin

#usermod
#格式:usermod [选项] 用户名
-c 用户说明:修改用户的说明信息,即修改 /etc/passwd 文件目标用户信息的第 5 个字段;
-d 主目录:修改用户的主目录,即修改 /etc/passwd 文件中目标用户信息的第 6 个字段,需要注意的是,主目录必须写绝对路径;
-e 日期:修改用户的失效曰期,格式为 "YYYY-MM-DD",即修改 /etc/shadow 文件目标用户密码信息的第 8 个字段;
-g 组名:修改用户的初始组,即修改 /etc/passwd 文件目标用户信息的第 4 个字段(GID);
-u UID:修改用户的UID,即修改 /etc/passwd 文件目标用户信息的第 3 个字段(UID);
-G 组名:修改用户的附加组,其实就是把用户加入其他用户组,即修改 /etc/group 文件;
-l 用户名:修改用户名称;
-L:临时锁定用户(Lock);
-U:解锁用户(Unlock),和 -L 对应;
-s shell:修改用户的登录 Shell,默认是 /bin/bash。

#chage
#格式:chage [选项] 用户名
-l:列出用户的详细密码状态;
-d 日期:修改 /etc/shadow 文件中指定用户密码信息的第 3 个字段,也就是最后一次修改密码的日期,格式为 YYYY-MM-DD;
-m 天数:修改密码最短保留的天数,也就是 /etc/shadow 文件中的第 4 个字段;
-M 天数:修改密码的有效期,也就是 /etc/shadow 文件中的第 5 个字段;
-W 天数:修改密码到期前的警告天数,也就是 /etc/shadow 文件中的第 6 个字段;
-i 天数:修改密码过期后的宽限天数,也就是 /etc/shadow 文件中的第 7 个字段;
-E 日期:修改账号失效日期,格式为 YYYY-MM-DD,也就是 /etc/shadow 文件中的第 8 个字段。

#userdel
#格式 userdel -r 用户名
-r 选项表示在删除用户的同时删除用户的家目录。

#id
id 命令可以查询用户的UID、GID 和附加组的信息
#格式: id 用户名

#su
#格式: su [选项] 用户名
-:当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户。
-l:同 - 的使用类似,也就是在切换用户身份的同时,完整切换工作环境,但后面需要添加欲切换的使用者账号。
-p:表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件)。
-m:和 -p 一样;
-c 命令:仅切换用户执行一次命令,执行后自动切换回来,该选项后通常会带有要执行的命令。

su - -c "useradd user1" root
使用 su 命令时,有 - 和没有 - 是完全不同的,- 选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的

#groupadd
#格式:groupadd [选项] 组名
-g GID:指定组 ID;
-r:创建系统群组。

#groupmod
#格式:groupmod [选项] 组名
-g GID:修改组 ID;
-n 新组名:修改组名

#groupdel
#格式:groupdel 组名
不能使用 groupdel 命令随意删除群组

#gpasswd
为了避免系统管理员(root)太忙碌,无法及时管理群组,我们可以使用 gpasswd 命令给群组设置一个群组管理员,
代替 root 完成将用户加入或移出群组的操作
#格式:gpasswd 选项 组名
:选项为空时,表示给群组设置密码,仅 root 用户可用。
-A user1,...:将群组的控制权交给 user1,... 等用户管理,也就是说,设置 user1,... 等用户为群组的管理员,仅 root 用户可用
-M user1,user2...:将 user1,... 加入到此群组中,仅 root 用户可用。
-r:移除群组的密码,仅 root 用户可用。
-R: 让群组的密码失效,仅 root 用户可用。
-a user: 将 user 用户加入到群组中。
-d user: 将 user 用户从群组中移除。

#newgrp
切换用户的有效组,newgrp 命令可以从用户的附加组中选择一个群组,作为用户新的初始组
#格式:newgrp 组名

linux之用户和用户组管理详解的更多相关文章

  1. linux用户和用户组管理详解

    Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...

  2. Linux命令——用户和用户组管理

    Linux命令--用户和用户组管理 命令groupadd 作用:新增组 格式:groupadd [-g GID] groupname 参数:-g,指定GID,一般从500开始 说明:一般不必加-g参数 ...

  3. 2019/12/11学习内容摘要(Linux系统用户与用户组管理①)

    一,认识/etc/passwd和/etc/shadow 1. /etc/passwd :文件中保存系统中所有的用户和用户的主要信息. 在命令行输入 cat /etc/passwd  | head  ( ...

  4. Linux 学习笔记04丨Linux的用户和用户组管理

    Chapter 3. 用户和用户组管理 由于Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以该账号身份进入系统. 3.0 用户与 ...

  5. Linux用户与用户组的详解

    1,用户和用户组文件   在linux中,用户帐号,用户密码,用户组信息和用户组密码均是存放在不同的配置文件中的.   在linux系统中,所创建的用户帐号和其相关信息(密码除外)均是存放在/etc/ ...

  6. Linux中用户与用户组管理

    1.基础知识 Linux作为一种多用户的操作系统(服务器系统),允许多个用户同时登陆到系统上,并响应每个用户的请求. 任何需要使用操作系统的用户,都需要一个系统账号,账号分为:管理员账号与普通用户账号 ...

  7. linux系统用户以及用户组管理

    本系列的博客来自于:http://www.92csz.com/study/linux/ 在此,感谢原作者提供的入门知识 这个系列的博客的目的在于将比较常用的liunx命令从作者的文章中摘录下来,供自己 ...

  8. Linux 操作系统的用户和用户组管理

    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入 系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...

  9. linux入门教程(七) linux系统用户以及用户组管理

    关于这部分内容,笔者在日常的linux系统管理工作中用到的并不多,但这并不代表该内容不重要.毕竟linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌.因为这涉及到一个安全的问题. [认 ...

随机推荐

  1. linux应用程序设计--GCC程序编译

    GCC程序编译 linux系统下的GCC(GNU C Compiler)是GNU推出的功能强大.性能优越的多平台编译器,是GNU的代表作之一.GCC可以在多种硬件平台上编译出可执行程序,其执行效率与一 ...

  2. MyBatis从入门到精通:select较深层次的用法

    一,简单的情形 需求: 根据用户id获取用户拥有的所有角色,返回的结果为角色集合. 1.接口中增加的方法: List<SysRole> selectRolesByUserId(Long u ...

  3. [原创]自动化部署K8S(v1.10.11)集群

          标准运维实现自动化部署K8S集群主要分两步,第一步是部署gse-agent,拱第二步执行部署. 第一步:部署gse-agent.如下: 第二步:部署k8s集群.主要通过作业平台分为5小步执 ...

  4. Loadrunner基本概念解析<一>

    学习性能测试前需要掌握的基本概念,以下做一个记录,本文会持续更新,我期望的是,用通俗简洁的语言来进行更好的理解. [基本概念如下:] ---并发用户数: 1️⃣错误的理解:    使用系统的全部用户数 ...

  5. seleniumGrid分布式远程执行测试脚本

    执行UI自动化测试脚本时,不仅可以在本地执行,也可以远程指定某计算机执行测试脚本,seleniumGrid为我们提供了这类服务,但还需要自己搭建环境. 一.本地计算机需要准备java环境和seleni ...

  6. 2019牛客多校第二场H-Second Large Rectangle

    Second Large Rectangle 题目传送门 解题思路 先求出每个点上的高,再利用单调栈分别求出每个点左右两边第一个高小于自己的位置,从而而得出最后一个大于等于自己的位置,进而求出自己的位 ...

  7. linux初学者-文件管理篇

    linux初学者-文件管理篇 linux系统的所有东西都是以文件的形式存储在计算机中的,所以linux系统中对文件的管理非常重要.以下介绍一些文件管理的常用方法. 1.文件的建立 文件的建立或者修改文 ...

  8. python中的元类(metaclass)

    认识python中元类的准备工作. 1,首先需要明白一个概念就是python中一切皆为对象. input: class Trick(object): pass ') print type(1234) ...

  9. kubernetes二进制高可用部署实战

    环境: 192.168.30.20 VIP(虚拟) 192.168.30.21 master1 192.168.30.22 master2 192.168.30.23 node1 192.168.30 ...

  10. java - 解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法

    通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用JVM中的栈空间: 而通过new关键字和构造器创建的对象则放在堆空间,堆是垃圾收集器管理的主要区域,由于现在的垃圾收 ...