#############用户和用户组管理###################
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. 基于SpringBoot-Dubbo的微服务快速开发框架

    简介: 基于Dubbo的分布式/微服务基础框架,为前端提供脚手架开发服务,结合前一篇--Web AP快速开发基础框架,可快速上手基于Dubbo的分布式服务开发,项目代码: https://github ...

  2. 9.22考试 crf的视察 题解

    这道题当时第一反应就是一道典型的NOIP第一题的难度,绝对要A掉,不然分数一定会被拉开. 然后就开始分析,暴力是一开始想的是用二维树状数组打加上暴力枚举长度,然而这道题满足二分性质,所以时间复杂度就是 ...

  3. Junit初级应用实例

    Request: public interface Request { String getName(); } Response: public interface Response { String ...

  4. MySQL5.7.20源码安装以及pt-query-digest用法示例

    MySQL5.7.20源码安装1.下载解压cd /data/app/mysql5.7wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5 ...

  5. 爬虫之突破xm-sign校验反爬

    喜马拉雅 网页分析 - 打开我们要爬取的音乐专辑https://www.ximalaya.com/ertong/424529/ - F12打开开发者工具 - 点击XHR 随便点击一首歌曲会看到存储所有 ...

  6. 深度解密Go语言之channel

    目录 并发模型 并发与并行 什么是 CSP 什么是 channel channel 实现 CSP 为什么要 channel channel 实现原理 数据结构 创建 接收 发送 关闭 channel ...

  7. Python常用的标准库以及第三方库

    Python常用的标准库以及第三方库有哪些?   20个必不可少的Python库也是基本的第三方库 读者您好.今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们 ...

  8. 浅谈hosts文件

    1.什么是hosts文件?这个文件在哪? hosts文件(域名解析文件)是将主机名映射到IP地址的一个纯文本文件,原始名称是HOSTS.TXT(IP,Internet Protocol,Interne ...

  9. pyhthon字典练习题

    pyhthon字典练习题: 有如下集合: [11,22,33,44,55,66,77,88,99] 将所有大于55的值保存至第一个KEY值中,将所有小于55的值保存至第二个KEY值中.{"k ...

  10. 【CocoaPods】ERROR: While executing gem ... Gem::DependencyError

    今天安装 CocoaPods 时遇到了这个问题. ERROR: While executing gem ... (Gem::DependencyError) Unable to resolve dep ...