2017-11-13Linux基础知识(11)用户、组和权限管理

在之前的章节中讲述了bash的基础特性以及IO重定向以和管道等其它的功能程序,之后介绍了一些其相关的命令,例如:tr和tee命令等,之后我们介绍了Here document,在这一章中,我们开始讲述用户、组及权限管理中的一部分,我们首先来说用户和组。

一、用户

Linux操作系统是一款多用户Multi-Users及多任务Multi-tasks的操作系统,也就是说,可以多个用户同时登录该系统执行各自的任务,彼此用户与用户之间互不干扰,这也是当时为了解决主机资源所提供的一种有效手段,那时候主机都在中心当中,价格也比较昂贵,普通人根本就无法做到像现在一样人手一台,所以为了解决这个问题,就有多用户和多任务这个概念,从Unix主机开始一直到现在各个操作系统,服务器都支持该功能。
  那么什么是用户?在Linux中没有什么用户的概念,而是对系统来说,用户是一种隔离资源的手段,比如说张三新建某一个文件让李四删除了,这种事情是绝对不能允许的,反之也是依然如此,除了root这个超级用户。
  每个使用者登录系统时都有用户标识和密码,用户标识就是指定该用户的唯一性,而密码就是验证该用户是否为这个用户,验证成功之后,就开始进行授权,分配其相应的资源和权限,最后系统监督该权限,权限的执行结果到底是否符合该条例,那么以上我们就称之为3A认证。

   Authentication  认证
   Authorization   授权  分配相应的资源
   Audition	    审计  监督权限,权限的支持结果到底是否符合条例

二、组

组其实就是用户组,也是用户的容器,一个组里面可以有多个用户,同时一个用户也可以属多个组,其主要作用就是对用户的资源进行一个整合,对目录或文件能够有统一的权限。

三、用户类别

用户类别其实通常分为两个大类,一个是管理员用户,另一个是普通的用户,管理毋庸置疑,权限最大,而普通用户虽然权限没有那么大,却也分成了两个小类,一个是系统用户,另一个是登录用户,前者不允许登录,通常是给服务程序设定的用户,程序启动时通过该用户进行启动,所以不允许登录,因为登录的话很有可能该程序就会一系列安全性问题,后者我们可通过手工创建来进行终端登录。

3.1 用户标识

对于用户来说,用户标识是它们检测该用户是否唯一,就像居民身份证一样,你叫张三,他也叫张三,名字都一样,模样也一样,不过系统不会让你创建一个相同类型的用户,那什么不一样?就是身份证号码和指纹不一样,所以说,用户标识我们称之为UserID简称为UID,它是由16位二进制数字组成一共65536个,从0开始,到65535结束,0属于管理员,剩下的1-65535都属于普通用户,那么刚才我们说过,普通用户也分为两类,一个是系统用户,另一个则是登录用户,在系统用户中,CentOS 6分配的ID好从1-499,登录用户则从500一直到60000结束,而CentOS 7不一样,系统用户从1开始到999,普通用户从1000开始到60000结束。
  每一个用户都有一个UID与之相对应,当用户输入用户名和密码之后,就会解析成相对应的用户ID号,解析完成之后,将其结果反馈出来。也就是登录成功的结果,它们其实根据名称解析库来进行,其路径在/etc/passwd目录下。

四、组类别

组类别,也成为组标识。称之为GroupID,简称GID,和用户类别一样,也分成两个大类,只不过组类别有很多种,我们现在来慢慢介绍组类别1:组类别1与用户类别几乎相同,分为管理员组和普通用户组,管理员的ID号还是0,普通用户组也是从1开始到65535。也分为两类,一类是系统用户组,在CentOS 6中,分配的组ID号为1-499,从500-60000分配给了登录用户组,而在CentOS 7中,系统用户组的ID号为1-999,而登录用户组的为1000-60000。
  每一个组名都会有一个GID与之相对应,将组名(groupname)解析成为组ID(GID),它们这也是根据刚才所说的名称解析库解析才行,而组的解析库的路径为:/etc/group。
  以上就是组类别1,我们接下来说一下组类别2,组类别2分为两个组,一个是用户的基本组,另一个是用户的附加组。用户的基本组就是在创建用户的同时把组创建出来,我们也称为用户的初始组,一个组可以没有用户,但是用户不能没有这个组,而用户的附加组就是,可以事先存在,将多个用户附加到这个组里面,同时我们可以用户的话,可以将基本组指定到这个附加组里面去。
  最后一个就是组类别3,类别3共分为两类,一类是私有组,一类是公共组,在私有组中,组名同用户是一样的,而且只能包含一个用户,而公共组是组内包含了多个用户。

五、认证信息

当我们登录系统时,必然要输入用户名和密码,如果密码错误会给出提示请输入一遍或者退出,如果输入正确的话会给你提示成功之后进入系统,而密码就是你可以理解为输入用户的认证信息,它是通过比对事先存储信息,与登录时提供的信息要完全一致。而密码的存储的路径为/etc/passwd,不过这是在CentOS 5中这样存储,在CentOS 6和7中将/etc/passwd中的密码映射到了/etc/shadow中。
  虽然密码是认证信息的一种,提供了一种有效安全的手段,不过太阳底下没有隐私,长时间不换密码很容易会遭到破解,所以我们要了解密码的使用策略,策略如下:

   1、使用随机密码;
   2、最短长度不要低于8位数字;
   3、应该使用大写字母、小写字母、数字标点符号四类字符中至少三类;
   4、定期更换;

5.1 加密算法

在CentOS 7 中我们打开/etc/shadow文件,以:为分隔符,我们可以看到第二个都一段很长的字符,并不规则,那么这些就是将密码通过某个算法进行加密形成之后的结果,我们称之为加密算法,加密算法的主要作用就是隐藏原始的密码字符,防止被人窃取及篡改。那么加密算法的方式有以下几类,分别为:

   对称加密:加密和解密使用同一个密码;
   非对称加密:加密和解密使用的是一对儿密钥;
	产生两个密钥对儿:
		公钥:public key
		私钥:private key
   单向加密:只能加密,不能解密;提取数据特征码;
	定长输出:
	雪崩效应:原始数据的微笑改变都会引起后期数据结果的巨大变化;

	算法:
		md5:message digest, 128bits
		sha:secure hash algoithm, 160bits
		sha224
		sha256
		sha384
		sha512

	在计算之时加salt,添加的随机数;

六、/etc/passwd和/etc/shadow文件

我们首先来说一下/etc/passwd,它是用户的信息库,也是用户名和UID相互解析的一个重要文件,各个功能使用冒号分隔,其格式信息如下:

   name:password:UID:GID:GEDS:directory:shell

以上就是该/etc/passwd文件的格式,具体的释义如下:

   name:用户名
   password:可以是加密的密码,也可以是占位符x;
   UID:用户所属的属主的ID号;
   GID:用户所属的主组的ID号;
   GECOS:注释信息;
   directory:用户的家目录;
   shell:用户的默认shell,登录时默认shell程序;

还有一个文件为/etc/shadow文件,我们称之为影子文件,任何普通用户都没有权限进行查看该文件,因为它保存这用户的密码和规定的日期,各个功能也是使用冒号来进行分隔,其格式信息如下:

   用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告时段:过期时段:保留字段

以上也是见名知义,用户名和加密的密码我们都了解,但最近一次的修改密码的时间是从你1970年到现在所经过的天数,当然这也是最初的密码没有更改,
  最短使用期限是上次改的密码最近中间经过的天数。
  最长使用期限也是上次改密码多经过的天数。
  警告时间是最长使用期限倒回去之前所经过的天数。
  非活动期限为密码已经过了最大天数之后还能保留几天,如果还不改的话,就被禁用(过期时段)。
那么修改的密码就是最长时间减去最短使用期间的天数,在密码快到期之前进行警告,如果过了最长时间,会给你宽限期,密码处于非活动时间,不过可以更改,如果过了宽限期,或者不改密码的话,就会禁用。
  那么警告和非活动的差别分别是:警告就是提示你,但是能用;而非活动就是必须改密码,这期间该用户不能进行登录。

七、/etc/group文件

/etc/group文件是用户组的信息库,用来解析该用户属于那个组,也是用冒号分隔,示例如下:

   group_name:password:GID:user_list

以上前三个也是可以见名知义的,但user_list其实也是很简单,它是以此组为附加组的用户的用户列表。
  好的,那就是以上介绍的用户和组的概念以及它的相关文件,在之后的章节中我们来讲述用户的组的相关命令,例如:

   useradd, userdel, usermod, passwd, groupadd, groupdel, groupmod, gpasswd, chage, chsh, id, su
时间: 2024-11-07 19:26:05

2017-11-13Linux基础知识(11)用户、组和权限管理的相关文章

Linux用户,组和权限管理

用户,组,权限 一.了解什么是用户,组和权限 1.对于linux系统来说,简单明了的特点就是多用户,多任务,也就是说一台linux系统的主机上面可以同时允许多个用户登录,当通过多个终端登录时可以同时使用这台linux的系统,然而对于linux习题来说,一切皆文件,别人和自己的工作任务都是以文件的形式存在的,不同的用户之间岂不是没有隐私或者安全而言,其实在linux上不是这样的,我们可以理解linux把每一个用户分配一间屋子,没有钥匙即权限我们是进不去浏览以及修改文件的,但是既然是一间屋子,那当然

linux 用户 组 和权限管理

Multi-task  Multi-Users 每个使用者: 用户标识 . 密码: Authentication(认证机制): Authorization  (授权机制): Account / Audition (审计): 组:用户组,用户容器 用户类别: 管理 普通用户 系统用户 登录用户 用户标识: UserIo ,UID 16bits 二进制数字:0-65535 管理员:0 普通用户: 1-65635 系统用户   1-499(Centos6)    1-1000(CentOS7) 登录用

Linux 基础入门----用户及文件权限管理

用户及文件权限管理 实验介绍 1.Linux 中创建.删除用户,及用户组等操作. 2.Linux 中的文件权限设置. 一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如“李雷”和“韩梅梅”都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制 ,不同用户不可以轻易地查看.修改彼此的文件. 下面我们就来学

用户,组和权限管理

用户,组和权限管理 概述:在Linux中由于可以实现多用户和多任务的管理,所以在Linux中用户和组与文件的权限关系显得格外重要.如果出现混乱,那么在用户使用时会给系统造成很多不稳定性的因素.这也是linux系统相对于其它操作系统更安全的原因之一. linux系统中用户分为: 系统用户: centos6上的UID(1-499) centos7上的UID(1-999) 注:系统用户无法登陆到系统之中 登录用户 centos6上的UID(500+) centos7上的UID(1000+)待 (通过交

详解用户,组,权限管理

内容介绍: 我们要使用操作系统进行工作,就需要人机交互操作,这时候计算机就需要创建用户,通过用户来实现操作,而且随着用户的增加需要给用户分组,这时候就需要对文件进行权限管理. 需要使用的工具: 用户相关工具:useradd; userdel; usermod;id;su等: 组相关工具:groupadd; groupdel; groupmod等: 权限管理工具:chmod; chown; chgrp:umask等: 一.用户类别: 管理员:root,管理员用户标识UID:0 普通用户:(系统用户

MySQL数据库(7)_用户操作与权限管理、视图、存储过程、触发器、基本函数

用户操作与权限管理 MySQL用户操作 创建用户 方法一: CREATE USER语句创建 CREATE USER "用户名"@"IP地址" IDENTIFIED BY "密码"; 方法二: INSERT语句创建 INSERT INTO mysql.user(user,host, password,ssl_cipher,x509_issuer,x509_subject) VALUES('用户名','IP地址',password('密码'),'',

Linux用户及文件权限管理

用户及文件权限管理 一.实验介绍 1.1 实验内容 Linux 中创建.删除用户,及用户组等操作. Linux 中的文件权限设置. 1.2 实验知识点 Linux 用户管理 Linux 权限管理 二.Linux 用户管理 通过第一节课程的学习,你应该已经知道,Linux 是一个可以实现多用户登陆的操作系统,比如"李雷"和"韩梅梅"都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁

mysql用户操作和权限管理

用户操作与权限管理 MySQL用户操作 创建用户 方法一: CREATE USER语句创建 CREATE USER "用户名"@"IP地址" IDENTIFIED BY "密码"; 方法二: INSERT语句创建 INSERT INTO mysql.user(user,host, password,ssl_cipher,x509_issuer,x509_subject) VALUES(‘用户名’,’IP地址’,password(‘密码’),’’,

NopCommerce源代码分析之用户验证和权限管理

目录 1.  介绍 2.  UML 2.1  实体类UML图 2.2  业务相关UML图 3.  核心代码分析 3.1  实体类源代码 3.2  业务相关源代码 3.3  相关控制器源代码 3.4  相关View源代码 4.  总结 1.  介绍 1.1  nopcommerce介绍 nopcommerce是国外的一个高质量的开源b2c网站系统,基于EntityFramework4.0和MVC3.0,使用Razor模板引擎,有很强的插件机制,包括支付配送功能都是通过插件来实现的. nopcomm