在Linux中,有三种用户:
- Root用户:也称为超级用户,对系统拥有完全的控制权限。超级用户可以不受限制的运行任何命令。Root用户可以看做是系统管理员。
- 系统用户:系统用户是Linux运行某些程序所必须的用户,例如 mail 用户、sshd 用户等。系统用户通常为系统功能所必须的,不建议修改这些用户。
- 普通用户:一般用户都是普通用户,这些用户对系统文件的访问受限,不能执行全部Linux命令。
Linux支持用户组,用户组就是具有相同特征的用户的集合。一个组可以包含多个用户,每个用户也可以属于不同的组。用户组在Linux中扮演着重要的角色,方便管理员对用户进行集中管理。
用户管理
主要涉及到用户账号的添加、修改和删除。
添加用户
可以使用useradd命令,语法为:1
useradd -d homedir -g groupname -m -s shell -u userid accountname
每个选项的含义如下:
-d homedir 指定用户主目录。
-g groupname 指定用户组。
-m 如果主目录不存在,就创建。
-s shell 为用户指定默认Shell。
-u userid 指定用户ID。
accountname 用户名。
如果不指定任何选项,系统将使用默认值。
用户被创建后,没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。可以使用 passwd 命令来设置密码,例如:1
2
3
4
5[root@Automation home]# passwd rzhang
更改用户 rzhang 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
Notes: 如果你是管理员,输入 $ passwd username 可以修改你所管理的用户的密码;否则只能修改你自己的密码(不需要提供username)。
修改用户
usermod 命令可以修改现有用户的信息。usermod 命令的选项和 useradd 相同,不过可以增加 -l 选项来更改用户名。1
2
3
4tt:x:503:503::/home/tt:/bin/bash
[root@Automation file]# usermod -l ttt tt
[root@Automation file]# cat /etc/passwd
ttt:x:503:503::/home/tt:/bin/bash
删除用户
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
userdel 命令可以用来删除现有用户。userdel 是一个危险的命令,请谨慎使用。1
$ userdel -r username
常用的选项是-r,它的作用是把用户的主目录一起删除。
用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。
添加用户组
默认的用户组通常用来管理系统用户,不建议将普通用户添加到这些用户组。使用groupadd命令创建用户组的语法为:1
groupadd [-g gid [-o]] [-r] [-f] groupname
每个选项的含义如下:
-g GID 以数字表示的用户组ID。
-o 可以使用重复的组ID。
-r 建立系统组,用来管理系统用户。
-f 强制创建。
groupname 用户组的名称。
如果不指定选项,系统将使用默认值。
修改用户组
groupmod命令可以用来修改用户组,语法为:1
$ groupmod -n newgroupname oldgroupname
-n新用户组 将用户组的名字改为新名字
删除用户组
如果要删除一个已有的用户组,使用groupdel命令,1
$ groupdel groupname
Notes: 如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。$ newgrp destinegroupname
与用户和组有关的系统文件
与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。
/etc/passwd文件
1 | [root@Automation file]# cat /etc/passwd |
每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
用户名:密码:用户ID:组ID:描述信息:主目录:用户Shell