linux中的用户与权限

Linux是一款支持多用户多进程的操作系统,为了实现对系统中资源的有效管理及配置,使用了登陆账户与对应账户权限的方式来限制每一个登陆系统的使用者。

使用者在登陆Linux系统时,会先对使用者进行身份认证(authentication),通过系统账号和密码来实现。用户登陆成功时,则会按照之前设定好的账户权限为使用者授权,规定了其可以访问、使用系统中的哪些资源(authorization)。同时,为了防止已登陆的使用者恶意在系统上操作,影响其他用户的利益,还需要对所有登陆用户进行使用行为的监控(audition)。

Linux对系统中的所有用户都可以分别设定不同的权限,但当系统上的用户过多时,一个一个的操作显然是一件非常麻烦的事。我们可以将多个用户加入一个用户组中,统一对用户组设定权限来为组中的每一个用户授权。

但是以上说的都是一些逻辑的、便于人类理解的信息,但是计算机本身是无法理解用户名的,用户名对它来讲只是一段字符串。如何让计算机区分不同名字的用户?这时要引用uid的概念,每个用户通常情况下会对应一个独一无二的uid,方便计算机对这个用户进行识别;同理计算机也要使用gid来分辨不同的组。

========================================================================= 用户可以分为大致两类

管理员

普通用户;而普通用户中又可以分为两类

系统用户

登陆用户

用户的uid在计算机中用16位(bit)的二进制来表示,其中管理员的uid位0,系统用户的uid在红帽6,centOS6上位1~499,登陆用户为500-60000;而在红帽7,centOS7上分别为1~999, 1000-60000.

系统是如何把用户名称与uid关联起来的呢?是通过名称解析库文件/etc/passwd进行解析

用户组分类方式比较复杂,通常有三种分组的方式

第一种:使用和用户近似的方式分组,即

管理员组

普通用户组

系统用户组

登陆用户组

第二种:

用户的基本组:任何一个用户都至少有、且只能有一个基本组。如果管理员不指定,通常在创建用户时系统会顺带创建一个和用户名字一样的基本组。

用户的附加组:用户除了基本组之外,还可以同时属于多个附加组

第三种:

用户的私有组:组名同用户名,并且只包含了一个用户

用户的公共组:组内包含了多个用户

组的标示gid也是用16位二进制数来表示,标识范围和用户uid相同,请参考上面uid的标识范围。组的名称解析库文件则是/etc/group.

=============================================================

早先用户的密码信息也是一并明文存储在/etc/passwd这个文件中的,但是这样的设计很不安全,所以,现在passwd中原来存放密码的位置只留了一个占位符“x”,而密码实际位置在/etc/shadow下,组的密码文件为/etc/gshadow。并且,这些密码都是单向加密后存放的,问题来了,什么是单向加密?(下面的内容略跑题,可跳至下一节继续浏览)

常用的加密方式通常有三种:

对称加密:加密与解密使用同一个密钥

非对称加密:加密和解密使用的是一对儿密钥,公钥(public key)与私钥(private key)

单向加密:使用某种算法将密码换算成一种数据特征码,只能加密,无法解密。

数据特征码有以下两个特点:

定长输出:无论原文件有多少个字符,输出的特征码长度都一致

雪崩效应:只要源文件做出细微的改变,特征码将会天翻地覆的改变,防止有人用                               特征码变化推敲源文件内容。

常用的单向机密方式有MD5 (message digest) 算法,可以输出128位的特征码,当然,特征码位数越多,源文件就越安全,所以centOS6以上版本已经默认使用sha(secure hash algorithm)算法,可以支持到512位。

=============================================================

下面来看一下/etc/passwd这个文件的内容 用:一共分隔了7列

第一列是当前系统上所有用户的用户名

第二列是密码占位符

第三列是用户uid

第四列是用户基本组的gid

第五列是用户的一些备注、注释信息

第六列是用户的家目录路径

第七列是用户登陆账户时默认使用的shell

接下来是/etc/shadow

第一列是用户名

第二列是加密的特征码字段

第三列是用户上一次修改密码到今天的天数,默认从1970.1.1开始计算

第四列是用户密码最短使用天数:如果天数不够,用户自己改不了密码

第五列是用户密码最长使用天数:用户密码最多只能用这么多天。

第六列是用户密码的警告天数:密码在过期的提前几天开始警告用户

第七咧是用户密码非活动天数:密码过期之后还能最多使用几天,到了之后会被禁用

时间: 2024-07-31 18:58:56

linux中的用户与权限的相关文章

Linux中的用户和权限管理

Linux是多用户,多任务操作系统:多用户是指多个用户可以同时使用系统资源,而多任务指同时运行多个进程. 用户是能够获取系统资源的权限的集合,Linux通过用户实现资源分隔. 用户组是具有相同特征用户的逻辑集合,是用户的容器. 1.用户: (1)用户类别 管理员:root 普通用户: 系统用户:仅仅用于用于启动服务进程. 登录用户:用于使用者交互使用,是系统资源的使用者 (2)用户在操作系统中用UID来标识: UID是16bits的二进制数字,如此范围为:0-65535.Linux 系统对用户U

Linux中的用户及权限管理

用户及权限管理 Linux具有Muliti-task(多任务)Muliti-Users(多用户)的环境. 用户:为了保护所有使用计算机者的权益不受到损害,所以要实现资源的使用隔离机制,为了实现资源的使用隔离机制,就要标识每一个使用者,而这每一个使用者就是用户. 用户ID:每一个使用者的唯一标识,计算机用来识别使用者. 用户密码:用户的认证手段.Authenticationg(认证),Authorization(授权),Auditiong(审计) 3A 用户类别:分为管理员和普通用户,普通用户又分

linux中的用户、群组和权限

linux中的用户.群组和权限 新建用户natasha,uid为1000,gid为555,备注信息为"master" groupadd -g 555 natasha useradd -u 1000 -g 555 -c master natasha id natasha uid=1000(natasha) gid=555(natasha) groups=555(natasha) tail -1 /etc(用户配置信息)/passwd (密码)natasha:x:1000:555:mast

linux目录和用户的权限

目录和用户的权限 一.Linux系统中文件权限 1.1 Linux系统中三种基本权限 ·文件权限的定义:对某个文件或目录的访问控制(访问限制) ·文件的三个属性: l 用户的所有者(属主):当用户创建一个文件,默认这个用户就是这个文件的属主 l 用户的群组所有者(属组):用户的主要组就是这个文件的属组 l 其他人:不是以上两者 例如: # ll total 0 -rw-r--r-- 1 root root 0 Jul  8 18:28 text.txt 其中第三列和第四列是用户的属主和属组 ·三

Linux-(10)Linux中的用户和组

和Windows一样,当我们使用Linux时,也需要以一个用户的身份登录,一个进程也需要以一个用户的身份运行,用户限制使用者或进程可以使用,不可以使用哪些资源. 在我们使用Linux时,都是用一个用户名来进入系统的,而实际上在Linux中,每一个用户都拥有一个UserID,操作系统实际使用的是用户的ID来区分用户,而不是我们登录系统用的用户名. 在Linux中,每个用户都属于一个主组,属于一个或多个附属组.主组默认是和用户名相同的,也就是说创建用户的时候会默认创建一个同名的组. 同用户一样,每个

Linux 必备技能-用户及权限详解

Linux必备技能-用户及权限详解 /etc/passwd文件 Account:password:UID:GID:GECOS:directory:shell 登录名:密码点位符:UID:GID:注释信息:家目录:用户的默认shell 用户可以加入不止一个组: 基本组 额外组,附加组 /etc/group文件: 组名:组密码定位符:GID:以逗号分隔属于此组(以之做为额外组)的用户列表 Useradd命令: -uUID -gGID: 所属的基本组 -GGID: 所属的附加组 -c'COMMENT'

Linux 中的用户组与权限管理

Linux中的用户以令牌token,identity为标识符号,每一个用户都拥有一个 Username和UID,root用户比较特殊,他的的UID为0.普通用户的UID由系统在1-60000范围内自动分配,系统用户的UID默认取值范围为1-499,Centos7之后范围扩大至1-999,登录用户的UID取值范围为500-60000,Centos7后调整为1 000-60000. 拥有相同权限的用户可以组成一个组,用户必须属于一个且只有一个主组,且组名同用户名,且仅包含一个用户.一个用户可以属于零

Linux中的账号和权限管理(理论讲解部分)

小伙伴们本次给大家带来的是Linux中的账号和权限管理,这里我们首先要明确的就是这个权限是文件或者目录的权限.接下来我们会从以下几个部分进行了解: 用户账号和组账号概述 用户账号和组账号管理 查询账号信息 查看目录或文件的属性 设置目录或文件的权限 设置目录或文件的归属 用户账号和组账号概述Linux基于用户身份对资源访问进行控制1.用户账号:? 超级用户? 普通用户? 匿名用户(everyone)? 程序用户(人为不可使用,单独管理系统中某个应用程序存在的服务)2.组账号:组是系统用户权限的集

Linux中root用户找不到JAVA_HOME

Linux中root用户找不到JAVA_HOME 在Ubuntu环境中安装好Java环境后设置环境变量:在/etc/profile中设置好了JAVA_HOME变量并引入到PATH中,用于Ubuntu默认是不以root用户登录的,这时echo $PATH可以看到JAVA_HOME已经被设置好了,java命令也可以执行.接下来su root,再输入java命令提示找不到java命令,$PATH中也找不到JAVA_HOME这个路径了.查了很久的资料也没有找到原因,后来偶然切换用户的时候用了su - r