Linux(十) 用户管理

2023-10-09  本文已影响0人  石志不渝

用户管理

一、 用户的概念及分类

用户是系统对进程进行权限管控的依附,系统所执行的动作,无论是人的登录、指令,还是一些自动执行的操作;都是依赖于某一用户身份进行的,而用户身份则决定了这个操作在系统上能达到的权限。

1.1 用户的分类

用户分类

系统账号举例说明:
Linux上,很多时候使用apache提供web服务,当这个服务启动和运行时,也是要依赖于用户,以便于系统进行权限控制。但它所使用的用户身份,通常不是我们所说的普通用户(你创建的登录账号),而是系统用户
当apache初始启动是,使用root账户权限,用来启动端口的监听等需要高等级权限的操作。当初步启动完成后,则会改为www-data账户进行常态化运行,这个www-data就是一个系统用户。当我们使用apache提供服务的web应用程序上传文件时,所上传的文件的创建者就是www-data,与我们的登录账号不同。

  1. 下图中,第一个是通过一个运行在apache下的叫dvwaweb应用程序,上传的文件,它的创建者是www-data
  2. 第二个ls的文件,是登录账号主动创建的,也即 kali
  3. 第三个ls则是通过sudo权限创建的,所以创建者是root
    各种文件的权限

不同Linux用户,都对应着一个ID,系统就是靠着这个ID去识别账号的,而不是你所看到的账号名称。这个ID也有个规定

用户类型 UID范围
超级用户 0
系统用户 1 到 999
普通用户 1000 到 60000

账户的基本信息,存储在 /etc/passwd 文件中,我们修改一下UID看一下效果

修改UID

修改普通用户的UID成一个系统中没有的UID,带来的的结果如下:

  1. 由本普通用户创建的文件,查看其权限时,不再显示用户信息,只显示原来的数字ID
  2. 使用当前用户去做sudo操作时,会提示当前的账号在 passwd里不存在;是因为系统需要用1000这个ID找账号,但是找不到。

1.2 用户和密码存储文件

上面刚才修改过的文件,/etc/passwd,存储了账号的基本信息。里面的账号信息很多,我的登录账号是ubuntu,我们只提取出其中的rootwww-dataubuntu三个账号。

cat /etc/passwd | egrep '^root|^ubuntu|^www-data'
passwd内容

在这个文件中,密码是x

passwd权限

通过权限,可以看到,虽然/etc/passwd只有root账号有写入的权限,但是所有用户都可以读取的文件内容,而又存储了所有账号的信息,如果在这个文件中存储密码,则会有泄露的危险,虽然密码并不是明文存储,依然会面临破解的风险。
所以,密码是存储在另一个文件中的:/etc/shadow

shadow文件权限

可以看到,shadow,只有root组具有读的权限,其他账号没有任何权限。使用普通权限直接cat文件,会提示权限不足,改用sudo才可以读取到里面的数据。

shadow

关于账号到期时间,也是一个关于天数的时间戳(1970-1-1);账号到期后,无论密码是否过期,都不能继续使用了。

二、 用户管理

2.1 添加账号

添加一个账号,并加入原来普通账号的组中

sudo useradd -g 1000 my_user_1 
新建账号

可以看到,shadow中,密码项是!,代表用户被锁定。设置密码后,就会解除锁定状态。

sudo passwd my_user_1
修改账号密码

P代表有密码,L代表被锁定。

锁定的账号

新建账号时,也可以直接指定密码


新建账号并指定密码

2.2 修改账号

修改账号,使用usermod命令。

  1. 改名称
sudo usermod -l my_user my_user_3
修改密码
  1. 锁定和解锁账号
sudo usermod -L my_user && sudo passwd -S my_user
锁定账号
  1. 删除账号
sudo userdel -r my_user
删除账号 删除后的情况
上一篇 下一篇

猜你喜欢

热点阅读