CentOS实践(3)用户管理
1. 用户和用户组
Linux系统中每个用户都有一个唯一标识(32位整数),即User ID,简称UID。用户分为3类,即普通用户、根用户、系统用户。
- 普通用户
指所有使用Linux系统的真实用户,这类用户可以使用用户名和密码登录系统。通常普通用户的UID从500开始。 - 根用户
即root用户,它的UID为0,是系统中的超级用户,拥有对系统的完全控制权。 - 系统用户
指系统运行时必须有的用户,但并不是真实的使用者。比如说运行MySQL数据库服务时,需要使用系统用户mysql来运行mysqld进程。UID范围是1~499。
每个用户组也有唯一标识Group ID,简称GID。
我们可以通过 id
命令来查看自己的UID和GID:1
2[root@localhost ~]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
也可以查看自己所属的用户组:1
2[root@localhost ~]# groups
root
查询当前有哪些用户正在登录到系统中,使用 who
命令:1
2[root@localhost ~]# who
root pts/0 2018-04-26 13:36 (192.168.27.1)
2. 账号管理
2.1 useradd 新增用户
添加一个新用户,用户名为 whai
。1
[root@localhost ~]# useradd whai
创建一个新用户,系统会为该用户分配一个UID,并创建一个该用户的home目录 /home/whai
。同时还会新建一个与用户名一样的用户组。
2.2 passwd 修改密码
创建一个新用户后,该用户是不能登录系统的,因为还没有设置用户的登录密码。使用 passwd
命令后跟用户名,然后回车,将会提示输入新密码和确认密码:1
2
3
4
5
6[root@localhost ~]# passwd whai
更改用户 whai 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
注意:输入密码的时候,都是看不到密码字符的
如果输入的密码太简单,系统则会提示 无效的密码
,但是我们依然可以继续设置这个密码,因为我们用的是 root 超级管理员用户。
普通用户可以用过 passwd
命令来修改自己的密码(命令后面不需要也不能跟用户名),首先需要输入旧密码进行验证,然后才可以设置新的密码。如果设置的新密码太简单,系统会拒绝设置为简单的密码。
2.3 usermod 修改用户
可以使用下面的命令,为用户指定一个新的home目录:1
[root@localhost ~]# usermod -d /home/whai_new -m whai
-d
参数就是修改用户的home目录-m
参数是如果新目录不存在,则自动创建该目录
使用 -L
参数可以冻结对应的账号,使该账号无法使用:1
[root@localhost ~]# usermod -L whai
如果需要解锁账户,则使用 -U
参数:1
[root@localhost ~]# usermod -U whai
其实 usermod 命令就是对 /etc/passwd 和 /etc/shadow 文件做修改,我们也可以手动修改这两个文件达到同样的效果
2.4 userdel 删除用户
使用该命令可删除指定的用户,默认情况下,删除用户时不会删除用户的home目录和邮件信息。1
[root@localhost ~]# userdel whai
如果需要删除与该用户相关的所有文件,则可以跟上 -r
参数。1
[root@localhost ~]# userdel -r whai
2.5 groupadd 新增用户组
通过该命令可以手动创建用户组1
[root@localhost ~]# groupadd group1
2.6 groupdel 删除用户组
1 | [root@localhost ~]# groupdel group1 |
如果有用户属于这个组,使用该命令则无法删除该组
2.7 users、who、w 查看当前登录用户
使用 users
命令可以简单查看当前登录系统的用户:1
2[root@localhost ~]# users
root
如果用一个用户通过两个不同的终端登录,则会显示为两个用户。
使用 who
命令可以查看到详细一些的信息:1
2[root@localhost ~]# who
root pts/0 2018-04-27 12:27 (192.168.27.1)
- root 用户名
- pts/0 登录的终端
- 2018-04-27 12:27 (192.168.27.1) 用户的登录时间和IP地址
使用 w
命令则可以查看到更详细的信息:1
2
3 14:11:52 up 1:44, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.27.1 12:27 0.00s 0.08s 0.00s w
- 第一行显示当前时间、系统运行时间、已登录的用户数量和系统负载
- USER 用户名
- TTY 用户登录终端
- FROM 登录的主机名和IP地址
- LOGIN@ 用户登录时间
- IDLE 用户闲置时间
- JCPU 与终端相关的当前所有运行进程消耗的CPU时间总量
- PCPU 当前WHAT列所对应的进程消耗的CPU时间总量
- WHAT 用户当前运行的进程
3. 切换用户
在使用Linux系统过程中,通常使用的是普通用户,但是在操作过程中常常遇到权限原因必须使用root用户来执行一些命令,这时就需要临时切换成root用户,操作完成后再切换回普通用户。
3.1 su 切换用户
su
命令默认表示切换到root用户,然后输入root账户的密码就切换成功。完成操作后,使用 exit
命令就退出了root用户,并切换回原先的用户了。1
2
3
4
5
6
7
8
9[whai@localhost ~]$ su
密码:
[root@localhost whai]#
... 使用root用户进行操作 ...
[root@localhost whai]# exit
exit
[whai@localhost ~]$
su 命令后可跟用户名,即切换到指定的用户,同样需要输入用户对应的密码。
root用户可以使用su命令切换成任意用户而不需要输入密码
su
命令后还可跟上 -
参数,切换成用户后便会自动切换到该用户的用户环境(就是用户的home目录、使用的Shell,以及个性化设置等)。1
2
3
4[whai@localhost ~]$ su -
密码:
上一次登录:五 4月 27 14:29:31 CST 2018pts/0 上
[root@localhost ~]#
3.2 sudo 使用其他用户身份执行命令
当我们使用普通用户时,希望以root用户执行某个命令,比如需要创建一个用户 user1。我们不需要切换到root用户,而使用 sudo
命令后直接跟上需要执行的命令,按照提示输入用户自己的密码:1
2[whai@localhost ~]$ sudo useradd user1
[sudo] password for whai:
前提是我们必须赋予某个用户执行sudo的权限,否则会遇到如下错误提示:1
whai 不在 sudoers 文件中。此事将被报告。
我们需要修改 /etc/sudoers
配置文件来授予用户对sudo的执行权限。可以直接使用 visudo
命令来编辑配置文件,通过这种方式在编辑后保存时会自动检查语法设置,防止配置错误而造成无法使用sudo命令:1
2
3
4
5
6
7
8
9
10
11
12
13[root@localhost ~]# visudo
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
## of related commands, which can then be delegated out to particular
## users or groups.
##
## This file must be edited with the 'visudo' command.
...
## Allow root to run any commands anywhere
whai ALL=(ALL) NOPASSWD:ALL
上面添加的这一行如下所示:1
2
3whai ALL=(ALL) NOPASSWD:ALL
```
表示
用户whai 可以在任何地方登录 =(执行任何人) 的任何命令,并不需要输入密码1
2
最后一个参数设置为ALL是很不安全的,意味着该用户实际上拥有了全部的系统权限,在实际工作中可以根据用户的具体工作内容定义具体的命令列表。比如用户只需要执行重启和关机命令:
whai ALL=(ALL) NOPASSWD:/sbin/shutdown, /usr/bin/reboot`
本文作者 : 王海
原文链接 : https://blog.whai.me/2018/04/27/centos-3-users/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!