用户管理
一、 用户的概念及分类
用户是系统对进程进行权限管控的依附,系统所执行的动作,无论是人的登录、指令,还是一些自动执行的操作;都是依赖于某一用户身份进行的,而用户身份则决定了这个操作在系统上能达到的权限。
1.1 用户的分类
用户分类
系统账号举例说明:
Linux上,很多时候使用apache提供web服务,当这个服务启动和运行时,也是要依赖于用户,以便于系统进行权限控制。但它所使用的用户身份,通常不是我们所说的普通用户(你创建的登录账号),而是系统用户。
当apache初始启动是,使用root账户权限,用来启动端口的监听等需要高等级权限的操作。当初步启动完成后,则会改为www-data账户进行常态化运行,这个www-data就是一个系统用户。当我们使用apache提供服务的web应用程序上传文件时,所上传的文件的创建者就是www-data,与我们的登录账号不同。
- 下图中,第一个是通过一个运行在
apache下的叫dvwaweb应用程序,上传的文件,它的创建者是www-data - 第二个
ls的文件,是登录账号主动创建的,也即kali - 第三个
ls则是通过sudo权限创建的,所以创建者是root
各种文件的权限
不同Linux用户,都对应着一个ID,系统就是靠着这个ID去识别账号的,而不是你所看到的账号名称。这个ID也有个规定
| 用户类型 | UID范围 |
|---|---|
| 超级用户 | 0 |
| 系统用户 | 1 到 999 |
| 普通用户 | 1000 到 60000 |
账户的基本信息,存储在 /etc/passwd 文件中,我们修改一下UID看一下效果
修改UID
修改普通用户的UID成一个系统中没有的UID,带来的的结果如下:
- 由本普通用户创建的文件,查看其权限时,不再显示用户信息,只显示原来的数字ID
- 使用当前用户去做
sudo操作时,会提示当前的账号在passwd里不存在;是因为系统需要用1000这个ID找账号,但是找不到。
1.2 用户和密码存储文件
上面刚才修改过的文件,/etc/passwd,存储了账号的基本信息。里面的账号信息很多,我的登录账号是ubuntu,我们只提取出其中的root、www-data和ubuntu三个账号。
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命令。
- 改名称
sudo usermod -l my_user my_user_3
修改密码
- 锁定和解锁账号
sudo usermod -L my_user && sudo passwd -S my_user
锁定账号
- 删除账号
sudo userdel -r my_user
删除账号
删除后的情况









网友评论