Linux初学之——用户和组的管理

Linux系统可以支持多个用户使用不同的终端设备登录系统,用户又按不同的属性划分成不同的组,为了系统的安全性需要对不同用户设置不同的权限,所以涉及到对用户和组的管理。

用户和组的管理

用户账户

组账户

权限的分配

Cisco开发的AAA认证体系

Authentication: 认证,核实身份是否正确

Authorization: 授权,对已经核实身份的用户进行资源分配

Accounting: 审计,监管资源被使用的情况

多用户多任务的操作系统:

能够实现资源使用和完成任务的主体是:应用程序的进程

安全上下文:secure context

进程是以其发起者的身份运行的;可以理解为进程的所有者就是发起者;会将发起者的信息标记在进程上;

当进程试图去访问资源的时候,安全上下文会比对进程的所有者和资源的所有者的关系

首先查看进程的所有者是不是资源的所有者,如果是,就按属主的权限使用资源;

如果不是,则判断进程的所有者是否属于资源所属组,

如果是,按照属组的权限使用,

如果不是,则直接使用资源的其他人访问权限来使用资源

用户账户:就是计算机操作者在操作系统中的身份映射; 在满足了认证条件之后的身份映射;

用户分类:

超级用户(管理员):root

普通用户:

系统用户:

为了保证安全,必须让那些运行在后台的进程或者服务类进程以非管理员的身份运行;这类用户一般不需要登录到系统

登录用户:

能够正常使用整个系统资源的用户

用户的标识:

用户的登录名称:

为操作者准备的简单易记的字符串标识;

用户的ID:

为计算机系统准备的数字标识;

超级用户的ID号: 0

系统用户:

Centos5、6: 1~499

Centos7: 1~999

登录用户:

Centos5、6: 500~60000

Centos7: 1000~60000

60000以上的标识符为用户自定义的标识

名称解析:名字 <--> ID

解析库: /etc/passwd

系统利用解析库完成认证: 验证用户是否是你声称的那个人

认证库

用户的认证信息库: /etc/shadow

组的认证信息库: /etc/group

采用密码的认证机制:

设置密码的一般性策略:

1、尽量使用随机字串作为密码

2、密码的长度一般不少于8个字符

3、密码中尽量包括大写字母、小写字母、数字和标点符号中四类字符中的至少三类

4、不定期更换,每隔一段时间就换一个密码

在Linux中,保存到认证库中的密码信息是经过加密保存的;

hash单向加密算法: 抽取原始数据的特征信息,数据指纹;

单向加密算法特征:

1、只要数据相同,其加密结果必然相同

2、无论数据多大,其加密结果定长输出

3、雪崩效应

4、不可逆

单向加密常用算法:

1、md5: message digest, 消息摘要,128bit的定长输出;

2、sha1: Secure Hash Algorthm,安全的哈希算法,160bit的定长输出

3、sha224:

4、sha256:

5、sha384:

6、sha512:

salt: 随机数

dev/random : 仅仅只是从熵池中返回随机数,如果熵池随机数耗尽,则进程被阻塞

dev/urrandom : 先试图从熵池中返回随机数,如果熵池被耗尽,则利用伪随机数生成器生产的伪随机数

最终认证字符串: 算法+salt+密码

下认证库中存放的信息: $6$salt$crytped_passeord

用户组: 将具有某些相同或相似属性的用户联系在一起以便集中授权的容器;

组类别:

管理员组

普通用户组:

系统组

登录组

组的标识方法:

组名: 方便操作者使用

组的ID(GID):为系统提供组标识

管理员组标识:0

系统组:

Centos5、6: 1~499

Centos7: 1~999

登录组:

Centos5、6: 500~60000

Centos7: 1000~60000

解析库: /etc/group

组也需要认证,也有认证库: /etc/gpasswd

组也需要密码保护:

如果组没有设置密码保护的话,则不能随时加入;

以用户为核心来对祖进行分类:

用户的主要组(基本组):primary group,对用户来讲,这样的组必须要有且只能有一个

用户的附属组(额外组,附加组):Addition group, 这样的组 对用户来说可以没有,也可以有多个

根据组所容纳的用户来分:

私有组: 组名与用户登录名相同,并且组中只有 此用户

公共组: 组中可以包含多个不同用户

注意: 默认情况下,用户的主要组都是其私有组

用户和组的管理:

主要使用命令来完成:

组管理相关的命令:

groupadd

groupdel

groupmod

用户相关的命令: useradd  userdel  usermod

认证管理相关命令:  passwd  gpasswd  chage

其他的相关管理命令: chsh   finger  su  id

etc/passwd:

name:password:UID:GID:GECOS:direstory:shell

name:登录名

password:密码字段,现在使用了shadow机制的系统中,通常使用"x"作为占位符

UID: 用户的ID

GID: 此用户主要组的ID

GECOS: comment,注释类信息,现在一般用来存放用户的说明信息或全名

direstory:用户家目录的绝对路径

shell: 用户的默认登录shell的绝对路径

/etc/group:

group_name:password:GID:user_lise

group_name:组名

password: 组密码占位符,默认为空

GID:组的ID

user_list: 以该组为附加组的用户的列表

/etc/shadow:

login name:encrypted password:date of last password change:minimum password age:maxinum password age:password warning period:password inactivitty period:account expiration date: reserved field

login name: 用户的登录名

encrypted password:加密了的密码

格式:$算法$salt$真正意义的加密密码

如果该位置为!,则表明该用户的密码被禁用

如果该位置为*,则表明该用户为系统用户,不能登录

如果该字段为空,则表明该用户无需密码即可登录,不推荐使用

date of last password change:

相对时间概念,相对于1970年1月1日到最后一次修改密码的那天的天数

minimum password age:

在多长时间内无法修改密码,默认值为0,即:随时可以修改密码,如果是非0事务其他数字,意思是在这么唱的天数内无法修改密码

maxinum password age:

在多长时间之后密码过期,默认为99999 ,意思是永久有效

password warning period:

密码过期的友善提醒,提醒天数默认值为7天;

password inactivitty period

密码过期后的宽限期,默认情况下不启用,意思是宽限期为永久

account expiration date

一个用户账户密码过期的日期,这是一个绝对的过期期限,XXXX/XX/XX

reserved field:

保留字段,以备以后使用

/etc/gpasswd

group name:encrypted password:administrators:members

组管理命令:

groupadd:新建组账户,添加组    # groupadd  选项  GROUP

-g gid: 在创建组账户的时候指定组账户的GID; 如果不使用该选项指定,系统会选择在组解析文件中出现在的不大于60000最大GID加一;

-r: 创建系统组,就是创建一个GID在1~999(1~499)之间的组

groupmod: 修改组的相关属性信息   # groupadd  选项  GROUP

-g gid: 修改组账户的ID

-n NEW_GROUPNAME: 修改组名

groupdel:删除组账户   groupdel  选项  GROUPNAME

注意:如果某个组是某个用户的主要组或私有组,则该组无法删除

groupmems: 管理组成员的命令

用户管理的命令:

useradd:  useradd 选项  登录名   :添加用户账户

/etc/default/useradd

/etc/login.defs

/etc/skel

以上三个文件和目录能够帮助管理员在未指定任何选项的时候也能创建用户,并为用户赋予默认属性

选项:

-c, --comment ‘COMMENT‘:在创建用户时为用户添加注释信息,一般为全名

-d, --home/PATH/TO/ HOME_DIR: 在创建用户的时候为用户指定家目录的绝对路径,被指定的目录应该是实现不存在的目录

-g, --gid GEOUP:在创建用户的时,为用户指定主组

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]

在创建用户的时候,为用户添加附加组

-m, --creat-home :在创建用户时,强制为用户创建家目录

-M,  在创建用户时,不会创建用户家目录,即使在/etc/login.defs中CREAT_HOME的值为yes也不创建

-r, --system  创建一个系统用户

-u, --uid UID: 在创建用户的时候,为用户指定UID,这个UID可以超过60000的限制

-s, --shell /PATH/TO/SHELL: 在创建用户的时候为用户指定默认shell,使用绝对路径

-D, --defaults: 显示或修改用户默认值

-s, --shell:修改/etc/default/useradd中SHELL的默认值

usermod:修改用户账户信息

-c, --comment ‘COMMENT‘:修改用户的注释信息

-g, --gid GROUPNAME: 修改用户的主要组

-G, --groups GROUP1[,GROUP2,....[,GROUPN]]:修改用户附加组为列表中的组

-a, --append: 与-G选项同时使用,给用户添加新的附加组

-d, --home /PATH/TO/HOME——DIR:修改用户家目录

-m, --move-home:与-d选项同时使用,将旧的家目录中的数据移动至新家之中

-l, --login NEW_LOGIN:更改用户账户的登录名

-s , --shell /PATH/TO/SHELL: 修改用户账户登录SHELL

-u, --uid UID:更改用户的UID

-L,  锁定用户密码

-U, 解锁用户密码

userdel:删除用户账户

userdel 选项登录名

选项

-r:删除用户的同时,删除用户家目录

用户认证相关命令

passwd:设置和查看用户的密码信息

1、如果省略用户名,意味更改当前登录用户的密码

2、如果指定用户名,更改指定用户名密码,仅限root用户使用

选项

-L, --lock  :锁定用户密码

-U, --unlock:解锁用户密码

相比较usermod -L|-U而言,其优先级更高,如果 使用 usermod 锁定的密码可以使用passwd解锁,反之不行

-d,  --delete:删除用户密码,将/etc/shadow文件中的第二字段删空

-s, --status;查看密码状态

--stdin:借助于管道将输入数据流当做标准输入信息送给passwd命令

echo "PASSWD" | passwd --stdin USERNAME

组认证相关命令

gpasswd:

gpasswd 选项 groupname

-a: 向名为group的组中添加用户 user

-d: 从名为 group的组中移除用户user

其他命令

su: switch user, 切换用户身份

su  USERNAME:

部分切换,半切换;在切换用户的时候,不会重新读取目标用户的配置文件,因此用户并没有登录行为,所以工作环境并没有初始化

su - USERNAME:

登录式切换,完全切换,在切换用户的时候,重新读取目标用户的配置文件并且初始化工作化环境;相当于su -l USERNAME

-c COMMAND: 并不会切换用户身份,而是以目标用户的身份执行某命令

使用su命令 的时候

newgrp GROUPNAME:临时更改当前登录用户的主要组,使用exit返回之前的状态

id :显示真实的有效的用户和组的ID

真实的ID:在/etc/passwd定义的用户的UID和GID

有效的ID: 当前生效的用户的UID和GID

选项

-g: 只显示用户的有效id

-u: 只显示用户有效gid

-G: 输出所有的组ID号

-n,--name: 显示用户,所属群组或附加群组的名称

chage  :更改用户密码过期信息

-d: 上次更改密码的日期

-E: 账号到期的日期。过了这天此账号将不再用

-m: 密码可更改的最小天数。为零时代表任何时候都可以更改密码

-M: 密码保持有效的最大天数

-w: 用户密码到期前,提前受到警告信息的天数

chsh:修改用户的默认shell相当于usermod -s

finger:finger [选项]  [使用者] [用户@主机]

-s:显示用户的注册名、实际名称、终端名称、写状态、停滞时间、登录时间等信息

-l:除了用-s选项的信息外,还显示用户的主目录、登录shell、邮件状态等信息,以及用户主目录下的.plan .project和.fowward文件的内容

-p: 除了不显示.plan文件和.project文件以外,与-l选项相同

chfn: chfn指令可用来更改执行finger指令时所显示的信息。若不指定任何参数,则chfn指令会进入问答式界面

功能说明:改变finger指令显示的信息

语法:chfn[-f<真实姓名>][-h<家中电话>][-o<办公地址>][-p<办公电话>][-uv][账号名称]

-f<真实姓名>或--full-name<真实姓名>  设置真实姓名。

 

  -h<家中电话>或--home-phone<家中电话>  设置家中的电话号码。

 

  -o<办公地址>或--office<办公地址>  设置办公室的地址。

 

  -p<办公电话>或--office-phone<办公电话>  设置办公室的电话号码。

pwck: 检查用户密码文件的完整性(/etc/passwd以及/etc/shadow)

用法:pwck [-q][-s] [passwd [shadow]]

pwck [-q][-r] [passwd [shadow]]

参数:

-q: 只显示错误信息,警告不显示

-s: 按id排序

-r: 只读方式检查

qrpck:

检查用户组及密码文件的完整性(/etc/group以及/etc/gshadow文件)

用法:grpck [-r] [group[shadow]]

grpck [-s] [group [shadow]]

参数:与pwck一样

时间: 2024-07-30 10:21:21

Linux初学之——用户和组的管理的相关文章

Linux系统下用户与组的管理

Linux系统下用户与组的管理 一.用户及组基本概述 Linux 系统上,用户管理是基于用户名和密码的方式进行资源的分配. 1.uid(用户身份标识) (1)root用户 uid为0 (2)普通用户:1--65535 系统用户 系统已经已经存在专门用来对系统服务或者系统资源进行管理的 1--499(CentOS 6.X) 1--999 (CentOS 7.X) 登录用户(平时专门做系统管理的用户) 500+ (CentOS 6.X) 1000+ (CeentOS 7.X) 2.gid(用户组身份

【Linux系统】用户与组账号管理实例与讲解

用户账号与组账号管理 下面是我对用户账号与组账号之间的一些整理与实例配置. 在Linux系统中用户和组账号分为以下几点: 超级用户:root用户是Linux默认的超级用户具有相当于windows系统中的administrator的作用. 普通用户:普通用户的账号需要由root或其它管理员用户创建. 程序用户:用于添加Linux系统中的一些特定的低权限的用户.(这些用户只用于维持或某个程序的正常运行) 组账号 基本组(私有组):每一个账号都有自己的属于自己的组. 附加组(公共组):与其他用户在同一

linux笔记四-------用户和组的管理

1.linux多用户.多任务操作系统 cat /etc/passwd   //查看当前系统用户信息 cat /etc/group    //查看当前系统组别信息 2.rbac:基于角色进行权限分配 用户----------组-----------权限设置 3.出现以上情况,(每个用户有一个组),因为没有指定这个用户所属的组别 Man_useradd把useradd的帮助文档手册 4.用户操作 5.组操作 6.给用户设置密码,让其登录系统 修改密码与设置密码操作一致

运维基础--Linux用户和组的管理

用户和组的管理 系统中,创建用户和群组的目的,就是对系统资源进行权限的统一分配管理.好比说,在一个公司内的资源,不同级别的在职员工对资源的利用权限需要进行统一分配: 如何避免权限分配后的滥用呢? 用户进行权限使用的时候,都必须遵守Cisco公司开发的AAA认证体系,即: Authentication:认证,核实身份是否正确 Authorization: 授权,对已经核实身份的用户进行资源分配 Accounting: 审计,监管资源被使用的情况: 进行资源认证的必要性最主要来源于计算机系统资源的有

linux命令(15)---用户和组管理命令

计算机中用户的作用:主要实现资源分享,在分享资源同时涉及到资源安全,又新增用户密码认证,使其资源由特定权限的用户或用户组才可访问. linux系统中用户和组分类: 用户分为:管理员用户(root).普通用户和系统用户(对守护进程获取资源进行权限分配,也就是在系统启动时或需要启动某进程服务时需要的用户,也称为"伪用户") 用户组分为:管理员组.普通用户组,当然在创建用户时会同时创建一个同用户名的基本组,因此伪用户也有着自己的基本组.另外用户组针对用户来说还有一个"附加组&quo

Linux学习笔记:用户和组的管理

用户和组的管理 Linux系统是一个多用户操作系统.任何一个受使用系统资源的用户.都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问,另一方面也可以帮助用户组织文件.并为用户提供安全性保护:实现用户账号管理主要有用户账号添加.删除与修改.以及用户口令的管理和用户组的管理等工作. 下面我们列出Linux系统里用户和组的定义以及进行用户和组的管理操作时所用到的一些命令: Cisco开发的AAA认证体系

管理Linux服务器的用户和组

管理Linux服务器的用户和组 Linux操作系统是一个多用户多任务的操作系统,允许多个用户同时登录到系统,使用系统资源. 为了使所有用户的工作顺利进行,保护每个用户的文件和进程,规范每个用户的权限,需要区分不同的用户,就产生了用户帐户和组群. 1.Linux操作系统是否允许多个用户同时登录到系统,使用系统资源? 回答:是的,Linux是一个多用户多任务的操作系统. 2.大家想一下Windows系统下,是如何区分不同的用户,如何规范用户权限的? 回答:通过用户账户来区分不同的用户,并且将用户帐户

用户和组的管理

用户和组的管理方法: 在Linux中,有两种账户:用户帐户和组账户. 因为Linux是一个多用户,多任务共同协作的系统,当有多个任务或多个用户同时运作时,要保证他们能够在系统中正常地运行,就得涉及到权限的分配问题了.在Linux中,是按AAA来分配权限的.所谓的AAA就是: Cisco的AAA的认证体系: Authentication:认证   核实身份是否正确 Authorization:授权    对已经核实的用户进行资源分配 Accounting:  审计      监督资源被使用的情况

bash特性续写以及用户和组的管理

本周继续学习了bash的相关知识,bash的变量需要注意书写规范和强弱变量以及bash变量的种类等,然后开始学习用户和组的管理,重点学习了组管理命令,用户管理的命令,用户认证相关的命令,组认证相关的命令,其他命令这些知识点,需要我们课后学习记忆. bash 特性之变量 程序=指令+数据 数据:文件  变量 变量:一段连续的内存空间cell=8bit  (32bit字长支持4GB内存)为这一段内存空间取名 称之为变量名:在这段内存空间中所存储的数据称为变量值 赋值操作: = 赋值操作符 赋值方法