CentOS下的账户管理

时间:2022-11-01 23:47:40

在Linux中,每个文件都分3类权限:账户本身的权限,账户所在群组的权限和其它权限。账户和群组是多对多的关系,即一个账户可以属于多个群组,一个群组可以包含多个账户。但是,对于每一个已登录的账户,只能存在一个当前生效的群组(初始群组)。

账户管理相关配置文件如下:账户信息文件是/etc/passwd、账户密码文件是/etc/shadow、群组信息文件是/etc/group、群组密码文件是/etc/gshadow。

1、/etc/passwd文件怎么看

CentOS下的账户管理

如上图,/etc/passwd文件中每一行为一个账户,以冒号作为分割的每个字段意思按序号分别如下:

[1] 账户名。改名使用命令usermod -l

[2] 密码,该字段已启用。账户密码在/etc/shadow文件配置

[3] UID,账户的唯一标识。影响该字段值的命令包括:useradd -u、usermod -u

[4] GID,初始群组的唯一标识,关联/etc/group文件的第3个字段。该群组为账户默认的有效群组(有效群组可以使用newgrp命令进行切换)。影响该字段值的命令包括:useradd -g、usermod -g

[5] 描述。影响该字段值的命令包括:useradd -c、usermod -c

[6] 家目录绝对路径。影响该字段值的命令包括:useradd -d、usermod -d

[7] shell,账户默认启用的shell,当为/sbin/nologin时账户无法登录。账户能使用的shell可以用命令chsh -l查询(查询结果为/etc/shells文件的内容)。影响该字段值的命令包括:useradd -s、usermod -s

2、/etc/shadow文件怎么看

CentOS下的账户管理

如上图,文件/etc/shadow的每一行对应一个账户的密码信息,以冒号作为分割的每个字段意思按序号分别如下:

[1] 账户名,关联/etc/passwd文件的第1个字段

[2] 密码,加密后的密文,加密算法由/etc/login.defs文件中的ENCRYPT_METHOD指定,此处为SHA512。影响该字段值的命令包 括:usermod -L(前置!!冻结)、usermod -U(解冻)、passwd -l(冻结)、passwd -u(解冻)、

[3] 创建日期,上图显示的是一个数字,该数字表示自1970-01-01以来所经历的天数。影响该字段值的命令包括:chage -d

[4] 密码创建之后需经历多少天才能再次修改,0表示无此限制。影响该字段值的命令包括:passwd -n、chage -m

[5] 密码创建多少天之后就过期,99999天约等于99999/365年,好几百年意味着密码不会过期。影响该字段值的命令包括:passwd -x、chage -M

[6] 密码过期前多少天开始向用户发送警告信息。影响该字段值的命令包括:passwd -w、chage -W

[7] 密码过期后还能宽限多少天,在此时间段内用户还可以登录和修改密码,过了这个时间段用户就不能够登录了。影响该字段值的命令包括:useradd -f、usermod -f、passwd -i、chage -I

[8] 失效日期,一个数字,该数字表示自1970-01-01以来所经历的天数。过了这一天用户的密码就失效,无论是否过期均不可再登录。影响该字段值的命令包括:useradd -e、usermod -e、chage -E

[9] 保留

3、/etc/group文件怎么看

CentOS下的账户管理

如上图,文件/etc/group的每一行对应一个群组,以冒号作为分割的每个字段意思按序号分别如下:

[1] 群组名。改名使用命令:groupmod -n

[2] 密码,已启用,群组密码在/etc/gshadow文件中配置

[3] GID,群组唯一标识,由/etc/passwd文件中的第4个字段关联,作为对应账户的初始群组。影响该字段值的命令包括:groupadd -g、groupmod -g

[4] 帐号名列表,以逗号隔开。这些帐号可以主动切换为该群组的成员,如上图用户mophee(初始群组为mophee)可使用newgrp命令将其生效群组切换为mysql或mail。影响该字段值的命令包括:useradd -G、usermod -[a]G

4、/etc/gshadow文件怎么看

CentOS下的账户管理

如上图,文件/etc/gshadow中的每一行对应一个群组的密码信息,以冒号作为分割后的每个字段意思按序号分别如下:

[1] 群组名,与/etc/group中的群组名对应

[2] 密码,加密后的密文,使用命令gpasswd group_name可设置群组密码,使用gpasswd -r group_name删除密码

[3] 群组管理员,使用命令gpasswd -A user1,... group_name 可设置群组的管理员。注:群组管理员可以为群组成员设置密码

[4] 群组成员,该字段与/etc/group的第4个字段相同且同步更改,除了使用useradd -G、usermod -G命令维护外,还可使用gpasswd -[adM]进行维护。影响该字段值的命令包括:useradd -G、usermod -[a]G

-----------------------------------------------

理论上,修改以上4个配置文件就可以进行账户管理,但不建议这样进行账户管理。Linux提供足够的命令对账户进行管理,虽然这些命令实质上也是修改这4个文件的内容,但建议使用这些命令:

useradd:添加账户

useradd mophee #建立群组mophee,建立账户mophee,建立家目录/home/mophee且权限为700。无密码,无法登录。
useradd -u 519 -g users mophee2 #建立账目mophee2并指定UID为519,指定初始群组为users
useradd -r mophee3 #建立系统帐号mophee3,UID和GID范围:100~499,无家目录

usermod:修改账户

userdel:删除账户

userdel mophee #删除账户mophee:
#1、从/etc/passwd和/etc/shadow删除;
#2、从/etc/group和/etc/gshadow的最后一个字段除移;
#3、若其初始群组无其它成员账户,则删除群组
userdel -r mophee #除了删除账户外,还删除其家目录和邮件目录

passwd:账户密码管理

passwd -S mophee #列出帐号mophee相关的密码信息

CentOS下的账户管理

chage:修改账户密码,一般用户可用此命令修改自己的密码

chage -l mophee #列出帐号mophee相关的密码信息

CentOS下的账户管理

groupadd:添加群组

groupmod:修改群组

groupdel:删除群组

gpasswd:群组密码、群组管理员和成员管理

groups:查看所属群组

groups mophee #列出帐号mophee所属的群组

CentOS下的账户管理

newgrp:切换有效群组

----------------------------------------------

与账户管理有关的其它配置文件:/etc/login.defs、/etc/default/useradd(使用命令useradd时的一些默认值)。

1、文件/etc/default/useradd怎么看

CentOS下的账户管理

GROUP:预设的群组ID

HOME:家目录的基准目录,添加账户且创建其家目录等同于在该基准目录下新建一个与账户名同名的目录,影响/etc/passwd的第6个字段

INACTIVE:设置密码过期后是否失效,-1表示不会失效,影响/etc/shadow的第7个字段

EXPIRE:密码失效日期,影响/etc/shadow的第8个字段

SHELL:默认的shell,影响/etc/passwd的第7个字段

SKEL:创建家目录是参考的初始内容,即创建家目录时会将该目录下的内容复制一份到家目录中

CREATE_MAIL_SPOOL:是否创建对应的mailbox目录,yes/no,yes时会在/var/spool/mail/目录下创建与帐号名同名的目录用于存储该账户的邮件

2、文件/etc/login.defs怎么看

MAIL_DIR:邮件目录的基准目录,一般为/var/spool/mail

PASS_MAX_DAYS:自密码创建之日起到过期的天数,影响/etc/shadow的第5个字段

PASS_MIN_DAYS:密码创建之后不允许更改的天数,影响/etc/shadow的第4个字段

PASS_MIN_LEN:设置密码允许的最短长度,已启用,由pam模块取代该功能

PASS_WARN_AGE:密码过期之前开始发送警告信息的天数,影响/etc/shadow的第6个字段

UID_MIN:小于该数字值的UID均为系统帐号,默认设为500。使用useradd且未添加-r选项时添加的账户UID均大于此值

UID_MAX:系统支持最大的UID值

GID_MIN:与UID_MIN功能类似,影响的是GID

GID_MAX:与UID_MAX功能类似,影响的是GID

CREATE_HOME:默认是否创建家目录,yes/no

UMASK:家目录默认权限的反码,即该值为077时,家目录的权限为700

USERGROUPS_ENAB:设置在使用userdel命令删除账户时,如果其初始群组下没有其它成员账户,是否将群组也删除。yes/no

ENCRYPT_METHOD:加密算法,如SHA512

CentOS下的账户管理的更多相关文章

  1. 【转】【Centos】Centos下用upstart管理自己的服务程序

    Upstart是Ubuntu用来进行服务进程管理的服务,本文介绍如何利用upstart来通过Centos操作系统管理我们自己开发的应用程序. 什么时候要管理我们的应用程序?当我们开发出服务类的应用程序 ...

  2. CentOS下开启mysql远程连接,远程管理数据库

    当服务器没有运行php.没装phpmyadmin的时候,远程管理mysql就显得有必要了.因为在CentOS下设置的,所以标题加上了CentOS,以下的命令在debian等系统下应该也OK. mysq ...

  3. (转)CentOS下开机启动查看管理命令:chkconfig用法

    CentOS下开机启动查看管理命令:chkconfig用法   CentOS下开机启动查看管理的命令是:chkconfig   1. 开机启动列表查看: chkconfig --list     说明 ...

  4. Linux学习历程——Centos 7 账户管理命令(用户篇)useradd usermod userdel

    一.命令介绍 useradd     用于创建新的用户 usermod    用于修改用户属性 userdel      用于删除用户 -------------------------------- ...

  5. centos下LVM配置与管理

    centos下LVM配置与管理 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层, ...

  6. Centos下磁盘管理的常用命令记录(如查找大文件)

    Centos下磁盘管理的常用命令记录 查看系统磁盘空间占用,使用命令: df -h 结果: 查看磁盘inode使用情况,如果inode用完了,磁盘就没法写入新的内容了: df -i 结果: 如何查找磁 ...

  7. pureftp在centos下与MySQL搭配使用

    概述 pure-ftpd是linux下的一个ftp服务端,据说安全性较高.我在centos6下用yum安装pure-ftpd,并配置了通过MySQL进行用户的增删改查,以及对应到apache的web目 ...

  8. centos下安装wireshark 抓包

    centos下安装wireshark相当简单.两条命令就够了.这里.主要是记录写使用方面的东西 安装:1.yum install wireshark.注意这样并无法使用wireshark命令和图形界面 ...

  9. CentOS7下mariadb日常管理

    在CentOS7下,官方提供的mysql的rpm包就是mariadb,可查看mariadb包信息 [root@host ~]$rpm -qi mariadb # 需要先安装该包 Name : mari ...

随机推荐

  1. sap去除后缀0方法

    原贴地址:http://fuhesap.com/SAP/179.html SHIFT str LEFT DELETING LEADING '0'.如果要在layout显示不出前面的0 格式: &amp ...

  2. Java并发编程实现概览

    并发概览 >>同步 如何同步多个线程对共享资源的访问是多线程编程中最基本的问题之一.当多个线程并发访问共享数据时会出现数据处于计算中间状态或者不一致的问题,从而影响到程序的正确运行.我们通 ...

  3. (转)ubuntu下如何查看软件安装目录以及安装版本

    1.查询版本 aptitude show 软件名 例如:aptitude show kde-runtime 显示如下: ****@ubuntu:~$ aptitude show kde-runtime ...

  4. Taglib、EL、OGNL

    Taglib.EL.OGNL 阅读目录 1. Taglib(tag library) 标签库 2. EL(Expression Language) 表达式 3. OGNL(Object-Graph N ...

  5. Go 语言结构

    Go Hello World 实例 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 & 表达式 注释 接下来让我们来看下简单的代码,该代码输出了"Hello ...

  6. unix命令自我总结

    三种参数类型 1⃣时间日期: cal times time 2⃣文字处理: ctl+v 输入控制字符 ${#str} str字符串长度 expr length $abc 同上 typeset -i x ...

  7. Java的三大特性

    一.封装性 含义:对外不可见,保护属性和方法不被外部多看见 实现:通过关键字private声明,用get.set方法为外部访问. 引用的传递: static关键字:修饰属性(全局属性):修饰方法(直接 ...

  8. bootstrap 失效的原因

    首先必须对着官方文档的模板来写: https://getbootstrap.com/docs/4.3/getting-started/introduction/ 然后: 这里必须加上 rel=&quo ...

  9. ORA-245: In RAC environment from 11.2 onwards Backup Or Snapshot controlfile needs to be in shared location (Doc ID 1472171.1)

    巡检时遇到错误如下: alert日志: Wed Dec 19 01:00:29 2018Errors in file /oracle/base/diag/rdbms/usap/usap1/trace/ ...

  10. FI配置清单-概要

    1.编辑公司代码 T-Code:OX02 路径:IMG >企业结构Enterprise >定义Definition >财务会计 Financial Accounting>编辑, ...

相关文章