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

用户和组的管理

系统中,创建用户和群组的目的,就是对系统资源进行权限的统一分配管理。好比说,在一个公司内的资源,不同级别的在职员工对资源的利用权限需要进行统一分配;

如何避免权限分配后的滥用呢?

用户进行权限使用的时候,都必须遵守Cisco公司开发的AAA认证体系,即:

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

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

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

进行资源认证的必要性最主要来源于计算机系统资源的有限性;在系统中,能够实现资源使用和完成任务的主体是:程序进程;linux作为一个多用户、多任务的操作系统,进程是以其发起者的身份运行的:可以理解为,进程的所有者就是发起者;在进程上会将发起者标记在进程上;

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

首先查看进程的所有者是不是资源的所有者:

如果是,就按照属主的权限使用资源;

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

如果是 按照属组的权限使用资源;

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

因此这里引出了用户的概念:

一、用户

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

2.分类:

超级用户(管理员):root

普通用户:

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

登录用户:能够正常使用整个系统资源的用户;

3.用户的标识

1)用户登录名称:为操作者准备的简单易记的字符串标识

2)用户ID:为计算机系统准备的数字标识;

超级用户:0;

系统用户:CentOS 5、6:1-499;CentOS 7:1-999;

登录用户:CentOS 5、6:500-60000;CentOS 7:1000-60000   6W+的标识符是用户自定义的标识;

3)名称解析:名字<--->UID ; 解析库:/etc/passwd

系统利用解析库完成认证机制:即验证登录用户是否是输入的用户;

认证库:

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

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

采用密码认证机制

设置密码的一般性策略;

1.尽量使用随机字符串作为密码;

2.密码长度不要少于8字符;

3.至少包括:大小写字母、数字、标点符号四类中的三类;

4.不定期更换密码;

在linux中,保存到认证库中的密码信息是经过加密的方式保存的:

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

单向加密算法的特征:

1.只要数据相同,加密结果就必然相同

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

3.雪崩(蝴蝶)效应:原始信息修改一丁点,加密后的结果大不同

4.不可逆

常用的单向加密算法:

md5(Message Digest 5): 128bit定长输出;

shal(Secure Hash Algorithm) 160bit定长输出;sha224\256\384\512

salt:随机数

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

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

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

二、群组

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

组的类别:

管理员组

普通用户组:

系统组:

登陆组:

组的标识方法:

组名:方便操作者使用的组的标识

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

管理员组:0

系统组:CentOS 5、6:1-499;CentOS 7 :1-999;

登陆组:CentOS 5、6:500-60000 CentOS 7:1000-60000;

解析库:/etc/group 认证库:/etc/gpasswd

组也需要密码保护;

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

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

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

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

根据组所容纳的用户来分:私有组和公共租;

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

公共租:组织可以包含其他多个不同用户;

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

用户和组的管理(主要使用命令完成):

组管理相关:

groupadd groupdel groupmems groupmod groups

用户管理:

useradd userdel usermod userhelper users

认证管理相关:

passwd gpasswd chage

其他相关管理:

chsh finger su id

/etc/passwd文件:

格式:name:password:UID:GID:GECOS:directory:shell

name:登录名

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

UID: 用户的id

GID:用户的主要组的id

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

directory:用户的家目录路径(一般是绝对路径);

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

/etc/group文件:

格式: group_name:password:GID:user_list

group_name:组名;

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

GID:组的ID

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

/etc/shadow文件:

格式:login name:encrypted password … …

login name:用户的登录名;

encrypted password:加密了的密码

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

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

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

如果该位置为空:则表明用户可以无数如密码即可登录,不推荐

date of last password change:

相对时间概念,1970.1.1到最后一次修改密码的时间

mimimum password age:

在多长时间内无法修改密码,默认是0 ,意即 随时可以改密码,

maximum password age:

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

password warning period:

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

password inactivity period

密码过期之后的宽限期,默认为-1,意思是永久宽限

Account expiration date:

一个用户账户密码过期的日期,是一个绝对期限;

reserved field

保留字段,以备以后使用;

/etc/gpasswd

组的管理命令:

1.groupadd:新建组账户。

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

-r :创建系统组,意思就是创建一个GID在1-999/1-499之间的组;

2.groupmod:修改组的相关属性信息;

-g  gid:修改组ID

-n  修改组名

3.groupdel:删除组账户

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

用户管理命令:

1.useradd:添加用户账户;

/etc/default/useradd

/etc/login.defs

/etc/ske1;

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

【选项】

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

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

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

-G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:每个组都用逗号隔开,没有中间的空格。创建用户时,为用户添加附加组;

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

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

-r,--system  :创建系统用户;

-u,--uid:创建用户时,为用户指定UID,这个UID可以超过60000;

-s,--shell /PATH/TO/SHELL :创建用户时,为用户指定默认shell;

-D,--default 显示或修改用户默认属性值;

-s,--shell  /PATH/TO/SHELL  :修改 /etc/default/useradd文件中SHELL的默认值;

2.usermod: 修改用户账户信息:

选项:

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

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

-G,--groupsGROUP1[,GROUP2,...[,GROUPN]]]:修改用户的附加组为列表中的组(覆盖)

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

-d,--homeHOME_DIR :修改用户的家目录;

如果给了-m选项,将旧的家目录的数据移动至新的家目录中;

-l:更改用户的登录名

-s, --shellSHELL:修改用户的登录shell

-u, --uidUID  修改uid

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

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

3.userdel:删除用户账户

-r, --remove

用户主目录中的文件将随用户主目录和用户邮箱一起删除。在其它文件系统中的文件必须手动搜索并删除。

用户认证相关:

1.passwd:设置和查看用户的口令信息-密码;

passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]

如果省略用户名,意味着修改当前登录用户的密码;如果指定用户名,更改指定用户的密码,且只能root使用;

【选项】:

-l,--lock

-u,--unlock

相比较usermod里的-L -U 其优先级更高

如果使用usermod -L锁定的用户密码,可以用passwd -u解锁

而使用passwd -l锁定的用户密码,不可以用usermod -U解锁;

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

-S,--status :查看用户密码的状态

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

echo "PASSWORD" |passwd --stdin USERNAME

组认证相关:

gpasswd:

gpasswd 【选项】 groupname

-a,--adduser  向名为group的组中添加用户

-d,--deleteuser 从名为 group 的组中移除用户 user。

其他命令:

su : 切换用户身份;

su USERNAME

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

su - USERNAME == su -l USERNAME

登录式切换,完全切换;即切换用户时,会重新读取目标用户的配置文件,并且初始化工作环境;

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

用su命令从root切换至普通用户时,无需密码;反过来,就必须给出目标用户的正确密码否则切换失败;

进行切换后不要连续切换,而是要用exit命令返回之前的用户;

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

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

所谓真实的:就是在/etc/passwd定义的用户的UID&GID

所谓有效的:就是指当前生效的用户的UID&GID

【选项】

-u,--user,只显示用户的有效的uid

-g, 只显示用户的gid

-G 显示用户的所有组的gid

-n 显示用户和组的名字而不是id号

时间: 2024-10-06 09:22:55

运维基础--Linux用户和组的管理的相关文章

马哥2016全新Linux+Python高端运维班-Linux用户创建及权限管理

第三周作业内容:1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可.     [[email protected] ~]# who | cut -d' ' -f1 | sort -u      centos     liu     root 2.取出最后登录到当前系统的用户的相关信息.     第一种方式:         [[email protected] ~]# last | head -n1         liu      tty8        

linux 用户及组的管理

linux用户:有UID 管理员:root  UID:0 普通用户:UID:1-65535 系统用户:1-499  centos7 1-999 守护进程获取资源进行权限分配 登陆用户:500+     centos7  1000+ 交互式登录: linux组:GID 管理员组:root GID:0 系统组:1-499        centos7  1-999 普通组:500+          centos7   1000+ linux安全上下文: 运行中的程序:进程 以进程发起者的身份运行:

Linux用户和组的管理

Linux用户:Username/UID 管理员:root, 0 普通用户:1-65535 系统用户:1-499(CentOS6), 1-999(CentOS7):对守护进程获取资源进行权限分配 登录用户:500+(CentOS6), 1000+(CentOS7):交互式登录 Linux组:Groupname/GID 管理员组:root, 0 普通组: 系统组:1-499(CentOS6), 1-999(CentOS7) 普通组:500+(CentOS6), 1000+(CentOS7) Lin

运维基础-Linux发展史、安装、基本操作

Linux是目前互联网运维.大数据.云计算方向首选操作系统平台,能够在物理服务器Dell.hp.等server,以及当前主流的云平台,阿里云,腾讯云上面部署 发展史 . . .略过..... 物理服务器上部署centos7 文本环境 在基于文本的环境中是没有图形应用程序的,因此必须要知道如何使用命令行来执行命令 1.bash shell,shell的定义是:一种命令行的解释器,用来处理和执行命令 2.shell提示符让用户知道shell在等待另一个命令.它包含的信息是有关用户,系统,当前目录所使

运维学习之用户和组的创立删除和用户权力的使用

Unit 5 一.用户理解 用户就是系统使用者的身份 在系统中用户存储为若干串字符+若干个系统配置文件 用户信息涉及到的系统配置文件: /etc/passwd ###用户信息 用户:密码:uid:gid:说明:家目录:用户使用的shell /etc/shadow ###用户认证信息 用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日 /etc/group ###组信息 组名称:组密码:组id:附加组成员 /etc/gshadow ###组认证信息 /home

Linux用户和组权限管理

一.文件的权限 文件的权限主要针对三类对象进行定义 owner:属主u:   group:属组g:    other :其他o 每个文件针对每类访问者都定义了三种权限: r:Readable   w: Writable    x: eXcutable 对文件来说 r: 可使用文件查看类工具获取其内容 w: 可修改其内容 x: 可以把此文件提请内核启动为一个进程 对目录来说 r : 可以使用ls查看此目录中文件列表 w: 可在此目录中创建文件,也可删除此目录中的文件 x: 可以使用ls -l查看此

Linux用户和组的管理知识点

Linux是一个真实的.完整的多用户多任务操作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响.用户分为用户账户和组账户,因为其多用户多任务的特性,为了防止资源的损害,所以必须要有权限的分配. 能够实现资源使用和完成任务的主体是应用程序进程,进程是以其发起者的身份运行的,也可以理解为进程的所有者就是发起者.当进程去访问资源的时候,安全上下文会比对进程的所有者和资源的所有者的关系:首先查看进程的所有者是不是资源的所有者,如果是,

运维基础--Linux基础命令

 Linux基础命令 刚接触Linux,往往会有一个印象就是Linux操作起来比我们熟悉的windows难,其实不然,只要了解熟知了Linux的CLI界面诸多的命令的用法就能使很多在GUI界面下的操作变的无比简单:以下是Linux使用中的几个基础命令: 1.cd: cd [-L|-P] [dir]  改变shell 的工作目录,默认是用户的家目录: cd DIR:切换到DIR目录: cd:   切换至当前用户的家目录: cd - :将工作目录切换至上一次的工作目录:两个目录之间的来回切换! 原理

运维基础--Linux中bash的基础特性

bash 的基础特性如下: 一.命令的别名--alias 命令 用来定义和显示命令的别名,unalias撤销定义的别名:但是要注意以下几点: 1.alias的效果仅限于当前shell的生命期: 2.如果修改.bashrc配置文件,其中保存的别名不会立即生效,只有在重新加载该文件的内容后,才会生效且永久生效: 3.为了能够保证设置的别名有效,通常两种操作都要做: 二.命令历史 shell进程会其会话中保存此前用户提交执行过的命令,history是shell的内置命令   1.命令语法格式: his