Linux篇 | 用户、组和权限(一)

用户权限和组

从安全的角度(安全3A):用户组权限的过程可分为认证、授权、审计。
* Authentication:认证==》 登录的时候输入正确的用户名和密码、指纹、刷脸等来进行认证。
* Authorization:授权 ==》 根据不同的人设置不同的权限。
* Accouting|Audition:审计==》 监督机制,发生什么事情记录下来,之后审计。  

用户user

一.令牌token,identity

令牌的概念:
我们下面以用户登录电脑访问文件为例讲述

当用户输入用户名、密码登录Linux系统后,系统会根据用户的UID和GID(像人的×××一样都是唯一的)回复用户一个令牌;在用户访问文件时因为有令牌的存在所以可以访问到文件。
(注意:如果用户发生了改变,如更改了UID,这时他还是可以访问文件,因为他已经拿到了令牌。如果用户退出系统重新登录,那用户会根据新的UID获取令牌来访问文件。)

二.Linux用户:Username/UID

1.从功能上分类

Linux用户分为管理员和普通用户

管理员

管理员:root,ID是“0”。
任何用户的ID是“0”,都代表这个用户是管理员。

普通用户

UID的范围是1-60000,自动分配。
普通用户又分为系统用户和登录用户。

系统用户

对守护进程获取资源进行权限分配。通俗的说,系统后台的一些服务程序,或者之后安装的软件也需要用户,这些用户的UID范围如下:
UID范围:1-499(CentOS6),1-999(CentOS7)

登录用户

交互式登录。
UID范围: 500+(CentOS6),1000+(CentOS7)


组group

一.概述

1.一个用户可以是多个组的成员。
2.用户和组的名字可以相同,Windows系统则不行。
3.将用户加入“root组”并不会成为管理员,Linux系统判断用户是不是管理只看它的UID是不是“0”。

二.Linux组: Groupname/GID

1.从功能上分类

Linux组分为管理组和普通组

管理组

管理组:root,ID是“0”。
任何组的ID是“0”,都代表这个组是管理组。

普通组

GID的范围是1-60000,自动分配。
普通组又分为系统组和普通组。

系统组

GID范围:1-499(CentOS6),1-999(CentOS7)

普通组

GID范围:500+(CentOS6),1000+(CentOS7)

2.从权限上分类

Linux组分为“主组”和“附加组”

主组

用户的主要组(primary group)

  • 用户必须属于一个且只有一个主组
  • 组名同用户名相同,而且组里只有这个用户,相当于这个用户的私有组

    附加组

    用户的附加组(supplementary group)

  • 一个用户可以属于零个或多个附加组(有时候也叫辅助组)

用户和组的配置文件

一.Linux用户和组的主要配置文件

/etc/passwd:用户及其属性信息(名称、UID、主组ID等)
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性
前三个文件特别常用,也特别重要,最后一个文件基本不会用到。

1./etc/passwd

重要提示:尽量不要修改系统重要的文件,例如此文件,可以使用命令实现想要的功能。

查看/etc/passwd文件的内容,部分内容如下

可以看到每一行分七段,具体的格式是:六个“:”号分割了七个内容 。

以图中最后一行为例,解释格式:
niubin:x:1000:1000:niubin:/home/niubin:/bin/bash
用户:密码:UID:GID:用户描述信息:家目录:shell

注释:
1."x"是密码的意思,但密码的内容不再此文件,在/etc/shadow文件里,这里的“x”是“给密码占位”的意思
2.有的用户没有用户描述信息,有的有。可以用命令“chfn”添加用户的描述信息;当然你也可以直接在/etc/passwd文件里改,但是不推荐,因为修改错误会很麻烦,不如用相应的命令实现。
3.修改用户的“shell”可以用命令“chsh -s shell类型 用户名”;当然也可以在/etc/passwd文件里面修改,但是不推荐。  

2./etc/group

查看/etc/passwd文件的内容,部分内容如下

可以看到每一行分四段,具体的格式是:三个“:”号分割了四个内容 。

以图中最后一行为例,解释格式:

niubin:x:1000:niubin
组名:密码:GID:组中的用户(有些用户当附加组,有些用户当主组
"id 用户名"可查看此用户的主组和附加组

注意:如果你要给用户添加组,千万不要修改此文件来添加用户,因为这个和/etc/gshadow文件同步,要修改必须两个文件都改。所以可以用相应的命令实现。所以 **能用命令实现的,绝对不要修改文件去实现**

3./etc/shadow

查看/etc/passwd文件的内容,部分内容如下


可以看到每一行分九段,具体的格式是:八个“:”号分割了九个内容 。

以图中最后一行为例,解释格式: (man 5 shadow可查看详细信息)

niubin:$6$Xk6CbKlS$dCfMXwP9sYfhU11atXUdW395Eqp4n6QsytmlABW4bX1omO6eKBMolDMXbmvXcmlSfz0xTrgIklx05zr/Iumjv/:17969:0:99999:7:::
用户:sha512加密后的密码:创建或修改密码后,距离1970年的天数:修改密码口令最短有效期(单位:天):密码口令有效期,即能用多少天(单位:天):密码要到期了,提前多少天通知:自密码到期,如果不修改密码,还有多少天将锁定用户:账户有效期,多少天后锁定账户(前面说的都是密码,这里说的是用户):保留,留作以后添加使用

如果要修改密码,不建议在/etc/shadow文件操作,使用命令“chage 用户名”会更安全。如下:

注释:
1.验证距离1970年天数的算法,前提是你的系统时间准确,命令是“echo `data +%s`/3600/24|bc”
2.密码段的“!"号,表示密码被锁定,需要更改密码。
  查看密码是否被锁定,就是看用户密码段的最前面有没有"!":cat /etc/shadow
  锁定账户密码 useradd -L 用户名(锁定后密码段会有"!"号)
  解锁账户密码 useradd -U 用户名(解锁后密码段的"!"号取消) 

4./etc/gshadow


查看/etc/gshadow文件的内容,部分内容如下

可以看到每一行分四段,具体的格式是:三个“:”号分割了四个内容 。

以图中最后一行为例,解释格式:

niubin:x:1000:niubin
组名:密码口令:组的管理者:把这个组作为附加组的用户列表


文件操作

便捷的命令

  • vipw和vigr
  • pwck和grpck

    vipw:使用vi文本编辑器编辑/etc/passwd文件(可检测语法错误)

    vigr:使用vi文本编辑器编辑/etc/group文件(可检测语法错误)

pwck:检查/etc/passwd文件的格式语法错误

grpck:检查/etc/group文件的格式语法错误

原文地址:https://blog.51cto.com/13465487/2364602

时间: 2024-10-12 19:12:43

Linux篇 | 用户、组和权限(一)的相关文章

Linux用户,组和权限管理

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

Linux之用户及文件权限管理

Linux之用户及文件权限管理 前言:Linux 是一个多用户的操作系统:Linux哲学思想之一-"一切皆文件".说明在学习Linux过程中,用户及文件权限的管理是非常重要滴.本文主要是引用了CentOs/RedHat 7.1的命令. 一.用户.组管理 1).用户.组类型: 超级用户(管理员):root用户具有一切权限,只有在进行系统维护(如创建用户.分配权限)时用到:由于root用户权限过大,为了避免管理员的误操作导致不可逆的后果,所以在非必要的情况下不用root用户登录. 普通用户

Linux之acl库的安装与使用(限制Linux某用户的访问权限)

acl库 作用:限制Linux某用户的访问权限 acl库的安装 首先github中下载acl代码: git clone https://github.com/acl-dev/acl 进入acl, 执行make cd acl make 注意: [因为acl是由c/c++编写的,需要提前安装好gcc, g++] 安装到用户根目录: make packinstall 一般到这儿就能编译安装成功了,在/user/include/ 目录下会有acl-lib目录. 如果是centos系统,可直接安装 yum

Linux给用户添加sudo权限

linux给用户添加sudo权限: 有时候,linux下面运行sudo命令,会提示类似: xxxis not in the sudoers file.  This incident will be reported. 这里,xxx是用户名称,然后导致无法执行sudo命令,这时候,如下解决: 进入超级用户模式.也就是输入" su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式.(当然,你也可以直接用root用) 添加文件的写权限.也就是输入命令" chmod

linux给用户加入sudo权限

linux给用户加入sudo权限: 有时候,linux以下执行sudo命令,会提示类似: xxxis not in the sudoers file.  This incident will be reported. 这里,xxx是username称.然后导致无法运行sudo命令,这时候,例如以下解决: 进入超级用户模式. 也就是输入"su -",系统会让你输入超级用户password,输入password后就进入了超级用户模式.(当然.你也能够直接用root用) 加入文件的写权限.也

Linux篇 | 用户、组和权限(二)

用户和组的管理命令 用户管理命令 useradd usermod userdel 组账号维护命令 groupadd groupmod groupdel 一.用户创建:useradd 1.创建用户 默认值设定:/etc/default/useradd(查看命令"useradd -D") 注释: 1.当我们创建用户不使用参数时(例如useradd 用户名),用户的UID.家目录等信息有一个默认值,就存放在/etc/default/useradd文件里. 2.当我们创建好用户,查看用户家目录

Linux下用户-组权限配置

cat /etc/group cat /etc/ashadow 一.用户管理 1.添加用户 #useradd 用户名 useradd php100;用cat /etc/passwd查看 分析:php100是创建的用户名 x表示密码占位符 因为passwd文件是每个用户都有权限 所以直接显示是不安全的.密码存在了/etc/shadow文件中 1000表示用户id 1001表示用户所在的组id /home/php100表示家目录 末尾如果是bash表示可以登录系统 如果是nologin表示无法登录操

Linux之用户管理与权限控制(上)

早期Linux系统设计为了能够实现多用户.多进程高效的利用服务器资源,在此种情况下,为了能够保证用户与用户之间的文件不被随意的访问及修改.删除等操作,用户.组的管理能在某种程序上实现管理用户或批量管理用户.由于Linux的设计哲学思想『一切皆文件』,用户对设备的访问就是对文件的访问. 一.用户与组 Linux下有三类用户 1.超级用户: root 具有操作系统的一切权限 UID 值为0 2.普通用户: 普通用户具有操作系统有限的权限, UID值 500+ 3.伪用户: 是为了方便系统管理, 满足

用户 组 和权限 以及权限的 分类

关于文件的安全我们要从3A验证 说起 1  Authentication:认证 2  Authorization:授权 3  Accouting|Audition:审计 由于系统文件的用户太多为了便于管理 我们便把系统的用户 进行分类 赋予权限 合理地分配资源 所以今天介绍的是 系统用户 用户组 的一些权限的 分配 修改 和文件的 权限修改 和赋权 以及一些特殊权限的用法 用户的分类 管理员:root 0 普通用户:1-65535 系统用户:1-499(CENTOS6) 1-999 对守护进程获

Python学习第四天----Linux之用户与用户组权限

Linux的用户及用户组管理 Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也能帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和用户口令.用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录. 添加用户命令示例:useradd  test_user   即可创建用户test_