用户管理
Linux 系统在计设之初就是为了满足多个用户同时工作的需求,因此 Linux 系统必须具备很好的安全必,所以我们平时工作时,使用的用户是 root 用户创建出来的管理用户,只能做特定的工作,不能执行破坏性的命令。
root 用户,在我们一般的理解中,他是 Linux 系统的管理员,其实这是一个错误的理解,Linux 系统的管理员之所以是 root,并且是因为它的名字是 root ,而是因为它 UID 为 0,在 Linux 系统中,UID 就相当于我们的身份证号码一样具有唯一性,因此可通过用户 UID 值来判断用户身份,我们可以通过 UID 来区分是那一类用户:
管理员 UID 为0:系统管理员用户。
系统用户 UID 为 1-999: LInux 系统为了避免因为某个服务程序出现漏洞而被默客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效按制被破坏范围。
普通用户 UID 从 1000 开始:由管理员创建进行日常工作的用户,
并且为了方便管理,Linux 系统还引入了用户组的概念,通过使用用户组号码 GID, 我们可以把多个用户加入到同一个组中,从而方便为组中的用户统一规划权限或指定任务。
在 Linux 系统中创建创建每一个用户时,都会自动为这个用户创建一个与用户名相当的基本用户组,而且这个用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户组称为扩展用户组,一个用户只有一个基本用户组,但是可以有多个扩展用户组。
当一个用户被创建的时候,会在 /home/ 下面自动为用户创建一个与用户名相同的文件夹。
在 Linux
中,理论上来说,我们可以创建无数据个用户,这些用户是被划分到不同的群组里面的,有不同的权限,但是有一个用户,叫 root
,是一个很特殊的用户,因为他可以作任何事情,因为 root
用户是系统默认创建的超级用户,只有它可以运行任何命令,当我们想要运行只有 root
用户才能运行的命令的时候,我们要在 命令前面加上 sudo
是: Substitute User Do
的缩写,表示:替换用户执行。
sudo 命令
sudo
命令,以 root
身份运行命令.
sudo command
少图片
当想要切换到 root 用户来执行命令,可以用:
# 切换到 root 用户
su -
# 退出当前用户
exit
当我们切换到root 用户的时候,会自动切换到 root 用户的家目录.
添加用户 --> useradd
useradd 命令,添加新用户,user 表示:用户,add 表示:添加。
# 添加新用户
useradd 用户名
这个命令只能由root用户运行。
在创建新用户之后,这个用户还不可以使用,必须为这个用户添加密码之后才可以使用。
useradd 命令中用户参数以及作用
参数 | 作用 |
---|---|
-d | 指定用户的家目录(默认为/home/username) |
-e | 账户的到期时间,格式为YYYY-MM-DD. |
-u | 指定该用户的默认UID |
-g | 指定一个初始的用户基本组(必须已存在) |
-G | 指定一个或多个扩展用户组 |
-N | 不创建与用户同名的基本用户组 |
-s | 指定该用户的默认Shell 解释器 |
修改用户密码
可以使用 passwd 来重置这个用户的密码
# 修改用户的密码
passwd 用户名
参数 | 作用 |
---|---|
-l | 锁定用户,禁止其登录 |
-u | 解除锁定,允许用户登录 |
--stdin | 允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username |
-d | 使该用户可用空密码登录系统 |
-e | 强制用户在下次登录时修改密码 |
-S | 显示用户的密码是否被锁定,以及密码所采用的加密算法名称 |
删除用户 --> userdel
userdel 命令,删除用户,user 表示:用户,del 表示:删除。
# 删除用户
userdel 用户名
参数 | 作用 |
---|---|
-f | 强制删除用户 |
-r | 同时删除用户及用户家目录 |
这样删除用户,不会把用户在 /home 中的家也一起删了,如果想要一起删除的话,需要加一个参数 : -r
。
添加用户组
groupadd 命令用于创建用户组,格式为groupadd [选项] 群组名
。
为了能提高工作效率和系统中各个用户授权,在工作常常会有把几个用户加入到同一个组中管理的情况,这样可以针对同一类用户进行管理。
groupadd test
管理用户组
usermod
命令用于管理用户的属性,格式为usermod 参数 用户名
因为 Linux 系统中的一切都是文件,可以直接用文本编辑器来修改其中的用户参数项目,也可以用 usermod 命令修改已经创建的用户信息,诸如用户的 UID、基本/扩展用户组、默认终端等。
usermod 的参数
参数 | 作用 |
---|---|
-c | 填写用户账户的备注信息 |
-d | -m 参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过去 |
-e | 账户的到期时间,格式为YYYY-MM-DD |
-g | 变更所属用户组 |
-G | 变更扩展用户组 |
-L | 锁定用户禁止其登录系统 |
-U | 解锁用户,允许其登录系统 |
-s | 变更默认终端 |
-u | 修改用户的UID |
每个用户都有自己的默认的用户信息,比如 root 用户:
# id 命令查看用户信息
id root
uid=0(root) gid=0(root) groups=0(root)
当一个用户有多个用户组的时候,groups 后面就会跟多个组名,第一个是用户的基本用户组,后面的都是扩展用户组。
我的公众号
细节决定成败!
个人愚见,如有不对,恳请斧正!