Kali用户&权限管理

目录

管理用户和组

用户的基础概念

用户UID

id-区分用户类别

管理用户

创建用户-useradd

修改用户-usermod

删除用户-userdel

修改用户密码-passwd

用户组的基础概念

用户组GID

用户组分类

用户和用户组的关系

管理用户组

创建组-groupadd

修改组-groupmod

删除组-groupdel

关联用户和组-gpasswd

/etc/passwd文件

/etc/shadow文件

用户组关联文件

/etc/group文件

文件权限管理

权限概述

权限示例

权限位说明

常用权限设置命令

chmod命令:修改文件权限。

chown命令:修改文件属主属组(只允许管理员)。

chgrp命令:修改文件属组。

umask命令:遮罩码。

修改文件权限-chmod

修改文件权限-chown

修改文件权限-usmask

访问控制列表-ACL

ACL命令

setfacl:设置文件的ACL。

getfacl:获取文件的ACL。

chacl:更改文件或目录的ACL。

其他权限管理(su/sudo)

命令-su


管理用户和组

用户的基础概念

Linux是一个多用户的操作系统:

• 所有要使用系统资源的用户需要先向系统管理员申请一个账号,之后以此账号进入系统;

• 可以在系统上建立多个用户,而多个用户可以在同一时间内登录至同一系统执行不同的任务,

并不会相互影响。

用户:

• 用户是能够获取系统资源的权限的集合;

• 每个用户都会分配一个特有的id号(uid)

用户UID

UID指的是用户的ID(UserID),一个用户UID标示一个给定用户,UID是用户的唯一标示符,通过UID可以区分不同用户的类别(用户在登录系统时是通过UID来区分用户,而不是通过用户名来区分):

• 超级用户:也称为root用户,它的UID为0,超级用户拥有系统的完全控制权,可以进行修改、删除文件等操作,也可以运行各种命令,所以在使用root用户时要十分谨慎;

• 虚拟用户:也称为系统用户,它的UID为1-999之间,虚拟用户最大的特点是不提供密码

登录系统,它们的存在主要是为了方便系统的管理。

• 普通用户:也称为一般用户,它的UID为1000-60000之间,普通用户可以对自己目录下

的文件进行访问和修改,也可以对经过授权的文件进行访问;

id-区分用户类别

通过查看不同用户UID来区分用户的类别为超级用户、普通用户或是虚拟用户。

id:打印真实以及有效的用户和所在组的信息

主要参数:

•-u:打印用户ID;

•-g:打印组ID;-u,-user只输出有效UID

UID为0时,标识的是超级用户(即root用户)

UID为1000-60000之间,标识的是普通用户

UID为1-999之间,标识的是虚拟用户(即系统用户)

管理用户

在Linux系统中,每个普通用户都有一个账号,包括用户名、密码和主目录等

信息。

除此之外,还有一些系统本身创建的特殊用户,具有特殊的存在意义,其中最

重要的用户就是管理员账户,默认的用户名为root(也就是超级用户)。

通过操作命令行能够对用户文件进行创建、修改、删除更改密码等操作

创建用户-useradd

useradd命令用于Linux中创建的新的系统用户。

帐号建好之后,再用passwd设定帐号的密码,之后使用userdel删除帐号。

使用useradd指令所建立的帐号,实际上是保存在"/etc/passwd"文本文件中。

在RedHat系Linux中,adduser命令是useradd命令的符号连接,两者实际上是同一个指

令。

主要参数:

• -c:设定备注信息,备注信息保存在passwd中;

• -d:指定登录目录;

• -g:指定用户组;

• -r:建立系统帐号(1-999);

• -s:指定用户登入使用的Shell;

• -u:指定用户id;

修改用户-usermod

usermod命令用于修改用户的基本信息。

主要参数:

-c:设定备注信息,备注信息保存在passwd中;

-d:修改用户登入时的目录,只是修改/etc/passwd中用户的家目录配置信息,不会自动创建新的家目录(配合-m使用);

-m:移动用户家目录到新的位置,不能单独使用(配合-d使用)。

-g:指定用户组;

-G:指定用户附加组;

-s:指定用户登入使用的Shell;

-u:指定用户id;

-l:修改用户帐号名称;

-L:锁定用户密码,使密码无效;

-U:解除密码锁定。

删除用户-userdel

userdel命令用于删除给定的用户,以及与用户相关的文件。若不加选项,则

仅删除用户帐号,而不删除相关文件。

主要参数:

• -f:强制删除用户,即使用户当前已登录;

• -r:删除用户的同时,删除与用户相关的所有文件。

修改用户密码-passwd

passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码,只有管理者可以指定用户名称,一般用户只能变更自己的密码。

主要参数:

• -d:删除密码,仅有系统管理者才能使用;

• -k:设置只有在密码过期失效后,方能更新;

• -l:锁住密码;

• -S:列出密码的相关信息,仅有系统管理者才能使用;

• -u:解开已上锁的帐号;

• -n:设置修改密码最短天数;

• -x:设置修改密码最长天数;

• -w:设置用户在密码过期前多少天收到警告信息;

• -i:设置密码过期多少天后禁用账户。

用户组的基础概念

用户组:

• 具有相同特性用户的逻辑集合,通过组的形式使得具有相同特性的多个用户能够拥有相同的权限,便于管理;

• 每一个用户都拥有自己的私有组;

• 同一组内的所有用户可以共享该组下的文件;

• 每一个用户组都会被分配一个特有的id号(gid)。

用户组GID

用户组ID(GroupID,简称为GID)和用户UID类似,作为唯一标识符来标示系统中的一个用户组:

• 在添加账户时,默认情况下会同时建立一个与用户同名且UID和GID相同的组;

• GID与UID都会将0赋予给超级用户或者具有超级用户的用户组(也就是root用户组);

• 系统会预留一些较前的GID给虚拟用户(也称为系统用户)。

用户组分类

用户组分类:

• 普通用户组:可以加入多个用户;

• 系统组:一般加入的用户为系统用户;

• 私有组:也称为基本组,在创建用户时,如果没有为其指明所属用户组,则会为该用户定义一个私有的用户组,且该用户组名称与用户名同名。

用户和用户组的关系

一对一:一个用户可以存在一个用户组中,作为组中的唯一成员;

一对多:一个用户可以存在多个用户组中,该用户具有多个组的共同权限;

多对一:多个用户可以存在一个用户组中,这些用户具有和组相同的权限;

多对多:多个用户可以存在多个用户组中,其实就是以上三种关系的扩展。

管理用户组

随着用户的不断增多,用户权限的把控变得复杂繁重,对系统的安全管理产生负面影响,用户组的加入,使得每一个用户至少属于一个用户组,从而便利了权限管理。

用户和用户组管理是系统安全管理的重要组成部分,通过操作命令行能够对用户组文件进行创建、修改、删除以及关联用户等操作。

创建组-groupadd

groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件

中。

主要参数:

• -g:指定新建工作组的id;

• -r:创建系统工作组,系统工作组的组ID小于500;

• -K:覆盖配置文件“/etc/login.defs”;

• -o:允许添加组ID号不唯一的工作组。

修改组-groupmod

groupmod可用来更改群组识别码或者名称。

主要参数:

• -g:指定群组的新id;

• -o:重复使用群组识别码;

• -n:设置新的群组名称。

删除组-groupdel

groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。

若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

关联用户和组-gpasswd

gpasswd命令是Linux下工作组文件/etc/group和/etc/gshadow管理工具。

主要参数:

•-a:添加用户到组;

•-d:从组删除用户;

•-A:指定管理员;

•-M:指定组成员和-a的用途差不多;

•-r:删除密码;

Kali下涉及到管理用户信息的文件一般有以下两种:

/etc/passwd:用户账号信息文件

• 在这个文件中,保存着系统中所有用户的主要信息,每一行代表着一个记录;

• 每一行用户记录中定义了用户各个方面的相关属性。

/etc/shadow:用户账号信息加密文件(又称为“影子文件”)

• 用于存储系统中用户的密码信息;

• 由于/etc/passwd文件允许所有用户读取,容易导致密码泄露,因此将密码信息从该文件

中分离出来,单独放置在/etc/shadow文件中。

/etc/passwd文件

/etc/passwd文件每一行由七个字段的数据组成,且字段之间用“:”隔开

Linux中的shell是指一个面向用户的命令接口,表现形式为一个可以由用户登录的界面,Linux的shell有很多种:sh,csh,ksh,tcsh,bash等。

/etc/shadow文件

/etc/shadow文件只有超级用户(root用户)具有读权限,其他用户均没有权限,从而保证了用户密码的安全性。

密码在经由/etc/shadow保护后,在/etc/passwd文件的用户记录中只会以“X”的形式呈现。

与/etc/passwd文件相似,每一行记录代表一个用户,且以“:”隔开,不同之处在于/etc/passwd中每行记录被分为九个字段。

注:/etc/shadow由pwconv命令根据/etc/passwd中的数据自动产生

用户组关联文件

Kali下涉及到管理用户组信息的文件一般有以下两种:

/etc/group:组信息文件

• 在这个文件中,保存着用户组的所有信息,每一行记录代表一个用户组;

• 将用户分组是对用户进行管理及控制访问权限的一种手段,每个用户都属于一个用户组;一

个组中可以有多个用户,一个用户也可以属于不同的组。

/etc/gshadow:组信息加密文件

• 在这个文件中,会保存用户组加密信息,比如说用户组管理密码就保存在此(与

/etc/shadow文件相似);

• 与/etc/group文件互补,对于大型服务器来说,拥有很多用户和组,此时会针对这些用户

和组来生成一些复杂的权限模型,此时设置并管理密码就显得尤为重要。

/etc/group文件

/etc/group文件每一行由四个字段的数据组成,且字段之间用“:”隔开。

这里我们以root用户为例,根据root用户的文件记录来了解/etc/group文件用户组记录中相关字段的意义:

/etc/gshadow文件

/etc/gshadow文件每一行由四个字段的数据组成,且字段之间用“:”隔开。

这里我们以root用户为例,根据root用户的文件记录来了解/etc/group文件中相关字段的意义:

文件权限管理

权限概述

权限是操作系统用来限制对资源访问的一种机制,权限一般分为读、写、执行

在Linux系统中,不同的用户所处的地位也不尽相同,不同地位的用户拥有不同的权限等级,为了保证系统的安全性,Linux系统针对不同用户的权限制定了不同的规则。

在Linux系统中,每个文件或目录都具有特定的访问权限、所属用户及所属组,通过这些规则可以限制什么用户、什么组可以对特定的文件执行什么样的操作。

权限示例

示例中通过ls–l命令可将文件权限的详细信息呈现出来:

以root用户文件信息为引:

ls-l中每一行第一位代表的是文件类型,在Linux中有七种文件类型:

权限位说明

Linux文件或目录的权限位是由9个权限位来控制的,每三位为一组,都是[r]、[w]、[x]三个参数的组合,其中[r]代表的是读权限(read),[w]代表的是写权限(write),[x]代表的是执行权限(execute),且三个权限位的位置在文件或目录中是不变的。若是没有权限,则用“-”表示。

访问权限

在文件信息中显示为:

• -r:允许读取文件内容或目录下全部内容

• -w:允许写文件或在目录下创建、删除文件

• -x:允许执行文件或进入目录

• -:无任何权限(显示方式在r、w、x的位置处显示为-)

以usertxt文件为例:drwxr-xr-x.2rootroot4096Jun114:00

常用权限设置命令

chmod命令:修改文件权限。

• Linux的文件调用权限分为三级:文件所有者、群组及其他,通过chmod命令可以控制文件被何人调用;

• 使用权限:文件所有者。

chown命令:修改文件属主属组(只允许管理员)。

• Linux做为多用户多任务系统,所有文件都有其所有者,通过chown可以将特定文件的所有者更改为指定用户或组;

• 使用权限:管理员(root用户)。

chgrp命令:修改文件属组。

•通过chgrp命令可以对文件或目录的所属群组进行更改;

•使用权限:管理员(root用户)。

umask命令:遮罩码。

•通过umask命令可以指定在建立文件时进行权限掩码的预设;

•使用权限:管理员和普通用户。

修改文件权限-chmod

chmod:用来变更文件或目录的权限

主要参数:

• -c:当文件的权限更改时输出操作信息。

• -v:无论文件是否更改了权限,一律输出操作信息。

• -R:对目录以及目录下的文件递归执行更改权限操作。

常用符号解释:

修改文件权限-chown

chown命令改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。

主要参数:

• -c:当文件的权限更改时输出操作信息。

• -v:无论文件是否更改了权限,一律输出操作信息。

• -R:对目录以及目录下的文件递归执行更改权限操作。

• -h:只对符号连接的文件作修改,而不更改其他任何相关文件;

修改文件权限-usmask

umask命令用来设置所创建的文件和目录的默认设置权限,由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。

umask可以使用户随便创建一个目录和文件的权限都是固定的,方便统一管理。

主要参数:

•-p:显示命令名称

•-S:文字形式表示权限掩码

常见umask值及与之对应的文件或目录权限:

访问控制列表-ACL

常用权限的操作命令chmod、chown、chgrp及umask已经可以对文件权限进行修改,那么为什么还会出现访问控制列表ACL(AccessControlList)?

在没有ACL技术之前,Linux系统对文件的权限控制仅可划分文件的属主、用户组、其他用户三类,随着技术的发展,

传统的文件权限控制已经无法适应复杂场景下的权限控制需求,比如说一个部门(即一个用户组group)存在有多名

员工(即用户user01、user02…),针对于部门内不同职责的员工,会为其赋予不同的权限,如为user01赋予可读

写权限,为user02赋予只读权限,不为user03赋予任何权限,此时由于这些员工属于同一部门,就无法为这些不同

的员工进行权限的细化。

• 为此ACL(AccessControlList)访问控制列表技术应运而生,使用ACL权限控制可以提供常见权限(如rwx、

ugo)权限之外的权限设置,可以针对单一用户或组来设置特定的权限。

常见类型:

• 针对文件所有者(owner)分配权限

• 针对文件所属用户组分配权限

• 针对其他用户分配

• etc..

ACL命令

在linux里我们可以通过ACL来管理某个文件及其特定的用户和用户组权限,

简单来说ACL只需掌握三个命令即可:setfacl、getfacl、chacl。

setfacl:设置文件的ACL。

•chmod根据文件所有者、所属群组及其他用户三级权限进行权限分配,而setfacl则可以

针对每一文件或目录进行更加精准的权限分配。

setfacl命令是用来在命令行里设置ACL(访问控制列表)。

主要参数:

• -m:修改指定文件的acl参数

• -b:删除所有acl设定参数

• -k:移除预设的acl参数

• -R:递归设置acl参数

• -d:预设目录的acl参数

getfacl:获取文件的ACL。

•显示文件或目录的ACL策略

getfacl可获取文件或目录的访问控制列表ACL。

主要参数:

• -a:仅显示文件访问控制列表

• -d:仅显示默认的访问控制列表

• -c:不显示注释表头

• -e:显示所有的有效权限

• -E:显示无效权限

chacl:更改文件或目录的ACL。

•与chmod相似,但是更为强大精细,通过chmod可以控制文件被何人调用,但若是某一用

户的文件只想给特定的用户看时,则需要chacl出场完成用户的需求。

chacl更改文件或目录的ACL(少用)。

主要参数:

• -b:同时修改文件权限和默认目录权限

• -d:设置目录的默认权限

• -R:只删除文件的权限

• -D:只删除目录的权限

• -B:删除所有权限

• -l:列出所有文件和目录权限

• -r:设置所有目录和子目录下的权限

其他权限管理(su/sudo)

Linux中默认账户为普通用户,但是在更改系统文件或者执行某些命令时,都需要以root用户的权限才能进行,此时就需要将默认的普通用户更改为root用户。

在切换用户身份时,常常用到的命令有两种:

• su:此命令在切换用户时,仅切换root用户身份,但shell环境仍为普通用户;

• sudo:此命令可以允许普通用户执行管理员账户才能执行的命令。

命令-su

su命令用于切换当前用户身份到其他用户身份,变更时须输入所要

变更的用户帐号与密码。

主要参数:

• -:重新开启一个Shell登录;

• -m:不会改变环境变量的情况下进行切换;

• -c:执行完指定的指令后,即恢复原来的身份;

• -s:指定要执行的shell;

  • 21
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值