#############用户和用户组管理###################
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. String到底在内存中是如何存储的

    String会出现在哪些地方 方法内的局部string 类内的字段String static string 容器中存储的string String数组 那么String的位置会影响其存储方式吗? 显然 ...

  2. Greenplum+mybatis问题解析

    1. 问题描述 同事团队在使用springboot+mybatis+Greenplum时,发现通过mybatis数据查询正常,但是执行insert和update执行会报"Cause: org ...

  3. 【排序函数讲解】sort-C++

    c++标准库里的排序函数,用于对给定区间所有元素进行排序.头 文件是#include 使用 Sort()在具体实现中规避了经典快速排序可能出现的.会导 致实际复杂度退化到 o(n²)的极端情况.它根据 ...

  4. 自定义new和delete

    #include "stdafx.h" #include <stdlib.h> #include <malloc.h> #include <iostr ...

  5. c实现生产者消费者问题。 windows下。

    #include <stdio.h>#include <windows.h> #define P(S) WaitForSingleObject(S,INFINITE)//定义W ...

  6. 从微信小程序开发者工具源码看实现原理(四)- - 自适应布局

    从前面从微信小程序开发者工具源码看实现原理(一)- - 小程序架构设计可以知道,小程序大部分是通过web技术进行渲染的,也就是最终通过浏览器的dom tree + cssom来生成渲染树:既然最终是通 ...

  7. <<Modern CMake>> 翻译 2. CMake 基础

    <<Modern CMake>> 翻译 2. CMake 基础 最低版本 这是每个 CMakeLists.txt 文件的第一行.CMakeLists.txt 是 CMake 所 ...

  8. Spring方法级别数据校验:@Validated + MethodValidationPostProcessor

    每篇一句 在<深度工作>中作者提出这么一个公式:高质量产出=时间*专注度.所以高质量的产出不是靠时间熬出来的,而是效率为王 相关阅读 [小家Java]深入了解数据校验:Java Bean ...

  9. RabbitMQ搭建单机及集群

    1,基本环境配置 hosts 文件 免密登录 2,访问官网 https://www.rabbitmq.com/download.html 3, 4,安装依赖 yum -y install make g ...

  10. 【iOS】duplicate symbols for architecture x86_64

    今天遇到了这个问题,错误如下: duplicate symbol _OBJC_IVAR_$_BCViewController.bank in: /Users/***/Library/Developer ...