目录

一、配置文件

1、/etc/password

2、/etc/shadow

时间戳转日期:

3、/etc/group

4、/etc/gshadow

5、/etc/login.defs

6、/etc/default/useradd

7、/etc/skel

二、命令

1、用户创建过程

useradd/usermod/userdel/passwd/groupadd/gpasswd/newgrp/groupdel/groups命令:

2 useradd 【选项】 用户名

3 usermod [选项] 用户名

4 userdel 【选项】 用户名

5 passwd 【选项】 用户名

6 、组命令

三、其他相关命令

补充命令


一、配置文件

Linux是一个多任务多用户的系统:

在系统各种会存在这多个用户。我们的使用者靠用户名来区分各自登陆的账号。

如果我们的用户想要使用系统资源,就必须在系统中拥有合法的账号。

在Linux中存放用户信息的文件在/etc/passwd文件中。

1、/etc/password

在/etc/passwd文件中用:当做分隔符,一共有7列。每列的内容分别是:

第一列:用户名

第二列:密码占位符(真正的密码文件在/etc/shadow)。

很多程序的运行都和权限与UID/GID有关。因此各程序要读取/etc/passwd来了解不同账号的权限。

但是如果取消密码占位符。就可以实现本地免密码登录(第二列如果为空则不能进行远程登录)。

第三列:用户ID(UID)

在用户ID中0是超级用户的ID,只要UID是0就是超级用户。

在用户ID中1-999是系统用户的范围,作用是系统服务或命令在运行时会对这些账号进行调用。通常系统账号分为两种:1-200为系统自行创建的系统账号UID。

(Centos7)201-999为保留给服务使用的账号UID 在用户ID中1000-65535是普通用户使用,

(Centos6)201-4999为保留给服务的uid 499-65535是普通用户使用。

(nfsnobody是个例外,默认安装后的uid为65534。是NFS服务的匿名访问用户的本地用户UID)

当创建一个新用户时UID从1000开始,最大到60000。2.6.x内核(uname -r查看内核版本)以后的Linux系统UID可以支持2^32的UID了(修改最大UID范围/etc/login.defs)。

第四列:初始组ID(GID)

为更加灵活的管理用户的权限,Linux里还采用用户组的概念。

有效用户组与初始用户组:

在/etc/passwd里边第四列是GID。这个GID就是初始用户组。

创建用户时如果不指定用户的初始组,则会自动创建和用户名相同的组,初始组只能有一个。也就是说用户登陆系统,立刻就拥有这个用户组的相关权限。

有效组是后续添加的组,每个用户可以属于多个有效组,用groups命令来查看当前的初始组和有效组。newgrp 组名 的格式用来切换当前的有效组。

第五列:用户描述信息(类似于“注释”,现在已经不常用)。

第六列:用户家目录

第七列:用户的shell类型:

用户会取得一个shell与系统的内核通信以进行用户的操作任务。

/bin/bash:shell类型为bash,bash shell是最常用的一种shell(能正常登陆系统)。

/sbin/nologin:不能登陆系统,可以使用系统资源。

2、/etc/shadow

用户密码文件,此文件对应/etc/passwd中第二列的x密码占位符。

第一列:用户名。

第二列:经过加密编码的密码,$6$开头的表明是使用SHA-512加密。

如果密码位是“!!”或“*”代表没有密码,不能登录(我们也可以在第二列用户的密码前面加入一个“!”或“*”,加入后都不能登录)(新建用户时,如果不设置密码,那么第二列为“!!”)

第三列:密码最近更改时间

此段记录了改动密码的日期,日期是由1970年1月1日作为标准时间来计算的。

时间戳转日期:

日期转时间戳:(86400为每一天的秒数)

第四列:密码不可被更改的天数(与第三列相比)

第四列记录了这个账号的密码在最近一次修改过之后需要经过几天才可以再次修改。

如果是0的话,表示密码随时可以被修改。

如果设置为5的话,那么当你设置过密码后,需要等5天之后才能更改密码。

第五列:密码最长有效期(与第三列相比)

为了强制用户更改密码,这个字段可以指定密码的最长有效期。

用户必须在有效期内重设密码才行。

必须在期限时间内重设密码,否则这个账号的密码会变为过期特性。

而默认的99999(273年)表示为 近似永久。

第六列:密码到期前的警告天数(与第五字段相比)

当账号的密码有效期快到的时候,系统会依据这个字段的设置发出“警告”给这个账号,提醒他过N天后你的密码即将过期。

第七列:密码过期后的宽限天数(密码失效日,与第五字段相比)

密码过期后预留几天给账户修改密码,此时已无法使用旧密码登陆系统。

如果写入0,那么代表密码过去就马上失效。

如果写入5,那么代表密码会在5天后失效。

如果写入-1,那么代表密码永远不会失效。

第八列:账号失效日期

这里同样要写时间戳,用1970年1月1日进行时间换算,如果超过了失效时间,          用户也就失效无法使用了。

第九列:保留。

3、/etc/group

组信息文件,用户组是具有相同特征用户的逻辑集合。

第一列:用户组名称(默认组成员)。

第二列:组密码占位符。

第三列:组ID号(GID)

第四列:组内成员列表

所以把用户添加到组内的方式有两种,一种临时,一种永久。

临时:root用户设置组密码,把密码告知即将加入组的用户。用户使用组密码,通过newgrp命令切换到组内。但这种方式在重新登录之后,就会失效。

永久:写入/etc/group的方式。使用root用户给组添加管理员(gpasswd -A 管理员组名)然后使用组管理员用户,将用户添加到组内(gpasswd -a 用户名 组名)。这种添加后,会在/etc/group信息中最后一列进行记录。重新登录不会失效。并且在添加之后,用户切换的时候不用输入密码。

有效用户组与初始用户组:在/etc/passwd里边第四列是GID。这个GID就是初始用户组。也就是说用户登陆系统,立刻就拥有这个用户组的相关权限。因为是初始组,使用者一登录就会被主动取得组相关权限。不需要在/etc/group的第四列写入。有效组是后续添加的组。用groups命令来查看当前的初始组和有效组。newgrp 组名 的格式用来切换当前的有效组。

4、/etc/gshadow

组密码文件

第一列:用户组

第二列:用户组密码,这个段可以为空或!,如果是空或!表示没有密码。

第三列:用户管理者,这个字段也可以为空,如果有多个用户组管理者,用,分隔。

第四列:组成员,如果有多个成员,用,分隔。

通过gpasswd 组名的方式来为组设置密码(需要root用户设置)。

组密码的作用:非本用户组的用户想要切换到本用户组身份时,可以通过密码来确保安全。输入密码正确,直接添加至该组。如果没有设置组密码,则只有属于本用户组的用户能够切换到本用户组的身份。

通过gpasswd -A 账户名 组名 来为组添加管理员(拥有添加或移除组员的权限,只有root有权限添加管理员,即使是默认初始组,也没有组管理员权限)。

通过gpasswd -a/-d 用户名 组名 来添加/移除组成员

5、/etc/login.defs

用来定义创建一个用户时的默认设置,比如指定用户的UID和GID范围,用户过期时间,是否需要创建用户主目录等。

1)当用户创建时,同时在目录/var/spool/mail中创建一个用户mail文件

2)指定密码保持有效最大天数。

3)表示修改密码的间隔时间。

4)指定密码的最小长度。

5)表示密码到期前多少天系统提示用户密码到期。

6.指定UID最小为1000,也就是说创建新用户时用户的UID从1000开始。

7.指定最大UID为60000。

系统用户最小201

系统用户最大999

8.最小GID为1000。

9.最大GID为60000。

系统组ID最小201

系统组ID最大999

10.指定是否创建用户家目录,yes为创建,no表示不创建。

#创建用户时默认创建用户家目录。

#权限默认掩码值

#表示userdel删除用户时,如果该用户组没有成员存在,则会删除用户组。

#使用SHA512加密方式。

6、/etc/default/useradd

创建用户时使用的默认文件

#创建用户的默认文件

1.新创建用户时默认初始组的GID号(公共组),现在使用的都是私有组机制(根据创建用户名称创建组)

2./home表示用户家目录的位置

3.表示是否启用账号过期禁用,-1表示不启用。

4.表示账号过期,不设置表示不启用。

5.指定了新建用户的默认shell类型。

6. 指定用户家目录中默认文件的来源,新建用户家目录下的文件都是从这个目录中复制的。

7.表示是否创建邮箱缓存 yes表示创建

7、/etc/skel

新用户家目录模板文件存放位置。

在创建新用户后,会在新用户家目录下看到类似.bash_profile .bashrc .bash_logout等文件。/etc/skel 目录定义了新建用户在主目录下默认的配置文件,更改/etc/skel目录下的内容就可以改变新建用户默认主目录的配置文件信息。

二、命令

1、用户创建过程

useradd/usermod/userdel/passwd/groupadd/gpasswd/newgrp/groupdel/groups命令:

useradd创建用户过程:

useradd不加任何参数创建时,系统首先读取用于添加用户的配置文件/etc/login.defs和/etc/default/useradd根据这两个配置文件中定义的规则添加用户。然后向/etc/passwd和/etc/group文件添加用户和用户组记录,同时/etc/passwd和/etc/group对应的加密文件也会自动生成记录。接着系统会自动在/etc/default/useradd文件设定的目录下建立用户家目录。最后复制/etc/skel目录中的所有文件到新用户的家目录中,新用户建立完成。

2 useradd 【选项】 用户名

-u:uid用户标识号,此标识必须唯一。

-g:group指定新用户登录时所属的默认组(主组)。

-G:指定新用户的附加组,必须是已经存在的组。附加组对于默认组而言,当一个用户同时是多个组中的成员时,登录时默认组称为主组,其他组称为附加组。

-d:home指定新建用户的默认家目录,如果不指定系统会在/etc/default/useradd文件指定的目录下创建用户主目录。

-s:shell指定新建用户使用默认的shell类型,如果不指定,会在/etc/default/useradd文件中定义的shell作为新用户的默认shell。

-c:comment对新建用户添加说明信息。

-f:inactive指定账号过期多长时间后会永久停用。当值为0时账号立刻停用。当值为-1时则关闭此功能。

-M:创建时不生成用户家目录。

3 usermod [选项] 用户名

-u UID #修改用户的指定UID

-g 组名 #修改用户的指定初始组(尽量不修改)

-G 组名 #修改用户的附加组(不管之前设置了多少附加组,都替换掉)(加上-a选项可不替换)

-c 说明 #修改用户的描述信息

-d 目录 #结合 -m 选项直接对源家目录进行改名实现修改家目录

usermod –m –d /home/u4 user4 (用户user的原家目录是/home/user4)

-s shell类型 #修改用户的登录shell类型

-L(大) 用户名 #锁定用户的密码

-U(大) 用户名 #解锁用户密码

-l 新用户名 旧用户名 #修改用户名

4 userdel 【选项】 用户名

-r 删除用户时,连带家目录一起删除

5 passwd 【选项】 用户名

-l 用户名 #锁定用户的密码,使之无法登录系统。

-u 用户名 #解锁用户密码。

-S 用户名 #查看用户账号状态。

第一次对一个用户使用时是为此用户创建密码,第二次使用时是修改密码。

当普通用户没有密码时,自己是修改不了密码的。

非交互式密码设置:

echo "123123" | passwd --stdin user1

用非交互式的方式设置user1的密码为123123

6 、组命令

groupadd 【选项】 GID 组名

-g:指定新建用户组的GID,该GID必须唯一,不能和其他用户组的GID重复。

-o:表示新用户组的GID可以与系统中已有的用户组的GID相同。

gpasswd 【选项】 用户名 组名

-a:向指定组内添加一个成员

-d:把指定用户从组内删除

-M:定义组内成员列表,用户之间用,分隔(覆盖式)

newgrp 组名

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户权限,newgrp主要用于在多个用户组之间进行切换,可以使用exit退出。

groupdel 组名

groupdel用于删除用户组,如果该用户组中扔包括某些用户,则必须先删除这些用户后,才能删除用户组。

groups

查询用户所属哪些组。

三、其他相关命令

1. id 用户名

#显示用户的UID、初始组、附加组列表

2. su 用户名

#切换用户身份

su - 用户名

#su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。

以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。(也可以分别用env命令查看区别)

小实验:

切换root用户把/etc/passwd文件中user1的shell类型改成/bin/csh。

退出root用户,分别用su和su-切换用户用useradd命令看效果(切换后pwd看到的目录有区别)。

3.finger:查看用户详细信息。

[root@localhost ~]#finger username

补充命令

1.blkid:查看uuid(通用唯一识别码)

2.whoami:查看当前用户是谁

3.ps aux:查看系统进程

4.history:查看历史命令

5.exit:退出当前  再其他组时先退出组再退用户

Linux系统管理---linux用户管理相关推荐

  1. linux上的用户管理

    作为一个专业的服务器发行版,CentOS上存在着n多个用户,作为一个专业的运维工程师,linux的用户管理和用户组的管理是做为一个SA必不可少的工作. 下面我们就先来谈谈linux中的用户管理: us ...

  2. linux输入一个用户看是否在工作,linux下的用户管理详解

    linux下的用户管理详解 useradd 命令详解 添加用户 想要对linux下面的帐号了解的话首先必须要了解的4个配置文件[root@localhost /]# cat /etc/passwd 首 ...

  3. linux上用户管理,掌握Linux上的用户管理

    您是Linux管理员吗?您是否在Linux命令行中创建/删除用户?如果是,那么本文适合您!阅读以下内容后,您将能够在Linux系统中操纵用户和组权限.在下面的示例中,sai是用户名. 用户模组 use ...

  4. 详解Linux系统的用户管理——添加用户、删除用户、查询用户信息、切换用户、用户组

    Linux系统的用户管理 用户管理的规则 添加用户 基本语法 实际案例 细节说明 给用户指定或者修改密码 基本语法 应用案例 删除用户 基本语法 应用案例 删除用户注意事项 查询用户信息 基本语法 应 ...

  5. Linux 基本管理命令(系统管理,用户管理,进程管理)

    目录 系统管理 man 介绍 语法 man常用的参数 shutdown(关机命令) shutdown文档 语法 参数说明 实例 reboot 介绍 语法 参数说明 实例 sudo命令 介绍 语法 参数 ...

  6. Linux学习之用户管理

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

  7. Linux学习之用户管理和组管理

    一.Linux系统上用户和用户组类别 用户类别 1.管理员 uid=0 2.普通用户 id:1~65535 2.1.系统用户 id:1~499,一般不允许登陆系统 2.2.一般用户 id:500~60 ...

  8. Linux压缩包和用户管理及开关机指令

    1.linux的压缩包管理: (1)比较差的两种压缩方式gzip,bzip2: 1)gzip d*.txt:把文件分别进行压缩,不会打包压缩,不会保留源文件 ,打包后格式变成gz,不能压缩目录 2)g ...

  9. Linux文件管理和用户管理

    Linux命令格式: 命令   [选项]   [参数] 命令:实现某种功能的程序.如ls.date 选项:命令中实现某种功能的字母(短选项)或单词(长选项)代号.如ls  --help  .  ls  ...

  10. Linux 文件和用户管理(Centos 7)

    文件和用户管理 1.Linux 目录结构 2.文件管理 2.1.文件管理命令 2.1.1.创建文件和目录 2.1.2.复制和移动 2.1.3.删除 2.1.4.查看文件内容 2.1.5.修改文件内容 ...

最新文章

  1. 【问题排查】fastjson线上排坑记
  2. 为app录制展示gif
  3. Interleaving String
  4. Spring 3.1缓存和@Cacheable
  5. 28 MM配置-采购-采购申请-定义凭证类型
  6. mysql+字段+删除数据库表,MySQL命令行删除表中的一个字段
  7. no number java_java.lang.NumberFormatException问题!!!
  8. rust怎么用items刷东西_rust服主怎么刷东西 | 手游网游页游攻略大全
  9. Vue父子组件传递数据
  10. 我在优酷 OTT 端做自动化制图
  11. 贷款利息及公积金知识点
  12. django Form 效验
  13. texlive的安装
  14. matlab模拟塞曼图谱,基于MATLAB的塞曼效应数值模拟
  15. EtherCAT从站协议栈代码笔记之ecat_def.h
  16. 无限超越超级机器人nds_无限边境超级机器人大战OG传说超越隐藏宝箱
  17. gcc利用-m32编译报错问题处理
  18. InputStream与OutputStream归纳
  19. 通用型系统架构层次图
  20. 【转】深入理解JavaScript系列(8):S.O.L.I.D五大原则之里氏替换原则LSP

热门文章

  1. requests-BeautifulSoup爬取美女贴吧图片
  2. wps2005导致图标全无解决方案
  3. 【python】数据挖掘 实验:中国二级城市经纬度聚类分析
  4. 网络工程师/技术支持工程师面试题(1)
  5. PS4蓝牙手柄分析之1
  6. Spark入门项目Top10
  7. 函数对称性常见公式_函数的对称性
  8. 在RStudio中调用python包
  9. 文通车牌识别 SDK
  10. 北京限行轮换时间7月5日起,北京新一轮尾号限行规定用便签提醒