【Linux】Linux用户与用户组那些事

Hello,各位小伙伴周六早上好~

【Linux】Linux用户与用户组那些事

今天也是元气满满,努力工作的一天呢~

【Linux】Linux用户与用户组那些事

什么?你说你要过六一儿童节?嗯?

【Linux】Linux用户与用户组那些事

还是跟我一起看看今天分享的专题吧~

今天呢,小编准备跟大家一起分享一下Linux下的用户、用户组是怎么一回事。文末也会对Windows用户、用户组操作做一点基本介绍,Here we go ~


一、为什么需要用户?

首先我们来看看Liunx下的系统进程

【Linux】Linux用户与用户组那些事

会发现每一个进程都有一个相关联的用户,这些用户是干嘛的呢?

抛开进程,我们系统上的所有文件也都有一个特定的用户,用户能否访问文件由用户的权限决定。如下图,第一列为文件所属用户,第二列为用户组。

【Linux】Linux用户与用户组那些事

再说回进程,centos官方文档上指出,系统上的每一个进程(或者说程序)都是作为一个特定用户来运行的。

这句话代表什么呢?说明一个进程(程序)运行起来以后,与这个进程相关联的用户确定了这个进程可以访问的文件和目录。

也就是说用户的权限,决定了进程的权限。

二、用户与用户组

首先我们来看一张图

【Linux】Linux用户与用户组那些事

  • 用户分为超级用户(Superuser)root 以及其他普通用户。
  • root账号可以理解为拥有该系统下的所有权限。
  • 处于相同用户组(Group)的一群用户,拥有相同的用户组权限。

一个文件既有所属用户,也有所属用户组,如果你不是这个文件的所属用户,也可以看看自己是不是在这个文件的所属用户组里~

三、创建用户基本操作

好啦,原理说清楚了,我们来看看用户、用户组的一系列基本操作吧~

(1)id 查看用户信息

【Linux】Linux用户与用户组那些事

  • id查看当前登陆用户信息,也可以加上用户名查看特定用户信息。
  • uid用于标识用户id,如同root账号uid为0,test账号uid为1011
  • gid用于标识该用户的主组,一个用户只能属于一个主组。
  • groups用于标识附加组,一个用户可以加入多个附加组。

(2)useradd 创建新用户

【Linux】Linux用户与用户组那些事

  • useradd 加上新用户名即可创建一个新用户。
  • 如果创建用户时,不指定任何主组或者附属组,系统会自动创建一个和用户同名的组作为主组和附属组,如上图都为monster

用户创建完成后,会在/home目录下创建一个同名用户目录,用于用户存储文件

【Linux】Linux用户与用户组那些事

root账号的用户目录存在于根目录下,为/root

(3)passwd 修改用户密码

passwd 加上用户名即可修改指定用户的密码,如下:

【Linux】Linux用户与用户组那些事

注意:

  • root用户可以给任意普通用户修改密码,且无需提供原密码(牛逼。)
  • 普通用户只能修改自己的密码,且需要先输入原密码。

(4)userdel 删除用户

【Linux】Linux用户与用户组那些事

userdel 加上用户名即可删除指定用户,但不会删除用户目录,如下:
【Linux】Linux用户与用户组那些事
需要使用userdel -r 参数
【Linux】Linux用户与用户组那些事
(5)groupadd 创建用户组

【Linux】Linux用户与用户组那些事

  • groupadd 加上用户名即可创建一个用户组
  • groupadd -g 可以指定用户组的gid,如user2 为2019
  • groupdel 删除用户组

四、为用户分组

(1)useradd -g 在用户创建时指定组

【Linux】Linux用户与用户组那些事

  • -g 指定初始主组喝附加组
  • 如果不指定会创建一个同名用户组hunter,并加入其中

(2)usermod -G 修改附加组

【Linux】Linux用户与用户组那些事

(3)gpasswd 修改附加组

【Linux】Linux用户与用户组那些事
gpasswd -a 加入一个用户组
【Linux】Linux用户与用户组那些事
gpasswd -M 加入多个用户组;-d 指定用户退出用户组

注意:实际操作中,用户的主组名为自己的同名组即可,我们一般将用户增加到不同的附属组,来增加用户的权限。

五、三个重要的文件

(1)/etc/passwd 存放用户名信息

【Linux】Linux用户与用户组那些事

从左往右依次是:

username:密码占位符:uid:gid:/home目录:使用的bash类型

(2)/etc/passwd 存放用户密码信息

【Linux】Linux用户与用户组那些事

!!表示未设置密码

(3)/etc/group 存放用户组信息

【Linux】Linux用户与用户组那些事
以monster用户为例,gid未1012,组成员包含user02

(4)查询某个用户的全部信息

可以使用以下方法,查询到用户的全部信息:

【Linux】Linux用户与用户组那些事
是不是很方便呢?

六:windows下的用户权限

(1)基本说明

以windows server 2013为例进行演示:

windows 有两个自带内置用户:

  • Administrator,系统管理员账户,拥有完全控制权限。
  • Guest,来宾账户,供访问共享资源的网络用户使用,仅具有最基本权限,默认被禁用。

三个内置的用户组:

  • Administrators,管理员组。
  • Users组,新建用户默认所属的组。
  • Guests组,权限最低。

安装了IIS之后,系统中会自动添加两个帐号:

  • IUSR_*,Web客户端的匿名访问账号,Guests组的成员。
  • IWAM_*,IIS应用程序的运行账号,IIS_WPG组的成员。

因此在渗透测试中,我们获取了Webshell,其实就是获得了IUSR_*账号的使用权限。通常仅对于本站目录具有读、写、修改权限。

查看用户账号如下:
【Linux】Linux用户与用户组那些事

(2)基本操作:

  • lnet user administrator 显示administrator用户的信息
  • lnet user test 123 /add
  • 添加一个名为test、密码为123的用户帐户(密码可省略)
  • l net user test abc 将test用户的密码更改为abc
  • l net user test /del 将test用户删除
  • lnet user test /active:no 将test用户禁用

【Linux】Linux用户与用户组那些事

  • net localgroup administrators 显示管理员组中的所有成员
  • net localgroup administrators test /add 将test用户加入到管理员组中
  • net localgroup administrators test /del 将test用户从管理员组中删除

【Linux】Linux用户与用户组那些事


好啦,以上就是今天的全部内容了,大家都明白了吗?
【Linux】Linux用户与用户组那些事

最后,欢迎关注我的个人微信公众号。

Peace !
【Linux】Linux用户与用户组那些事

相关文章: