Linux是一个多用户的操作系统,用户和用户组的管理是系统管理员的重要工作之一。
用户账户一方面可以帮助系统管理员对使用系统的用户进行追踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个唯一的用户名和各自的口令。
Linux操作系统是一个多用户的操作系统,可以同时有多个用户运行,并且每个用户具有不同的操作权限。
3.1 什么是用户和组
Linux用户账户分类(主要是对root用户和普通用户)
- root用户(超级用户)
- 虚拟用户(伪用户/假用户):bin、daemon、admin、ftp、mail......
- 普通用户
单用户多任务
多用户多任务:多用户多任务并不是多个用户同时挤在一起在一台计算机上通过键盘或者鼠标来操作计算机。多用户可能通过远程登陆来进行操作,如对服务器的远程控制,只要有用户权限,任何人都是可以上去操作或访问。
用户组就是具有相同特征的用户的集合体。首先可以创建多个用户,并将这些用户归属到同一用户组,通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该用户或目录都具有相同的权限。用户和用户组的对应关系:
- 一对一:某个用户可以是某个组的唯一成员
- 多对一:多个用户可以是某个唯一的组的成员,不归属其他用户组。如admin和linuxuser两个用户组只属于ay用户组
- 一对多:某个用户可以是多个用户组的成员,如admin可以是root组成员,也可以是ay成员组成员,还可以是其他用户组成员
- 多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组。可能用户不容易理解,其实多对多的关系是前面3条的扩展
3.2 用户管理
1、相关配置文件及目录
在对用户完成操作后,相关操作信息保存在用户的配置文件中。配置文件保存在/etc目录下的passwd和shadow文件中。
/etc/passwd
/etc/passwd配置文件又称用户账户配置文件,用来保存用户账户的基本信息。该文件中并不保存用户账户的密码,所有用户对passwd只有读的权限。终端打开文件:
#cat /etc/passwdpasswd文件中,每一行用户记录的语法格式:
用户名:口令:用户标识号:组标识号:全名:用户主目录:命令解释程序在passwd文件中,UID大于等于500的是普通用户,其他用户(UID小于500)都是系统用户账户。下面是root用户账户信息:
root:0:0:root/root/bin/bash/etc/shadow
/etc/shadow又称用户密码配置文件,用来保存用户的密码信息,该文件只有root用户才可以查看,文件中每行信息表示一个用户账户,每一行有8个字段,没有字段用“:”分割。
户名:口令:最后一次修改密码的日期:密码的最小生存期:密码的最大生存期:更换密码前的警告的天数:账户过期日期2、图形化管理用户
3、使用命令关键字管理用户
1)更改用户密码
passwd [-k] [-l] [-u] [-f] [-d] [-S] [username]2)更改用户信息
usermod [-l] [-L] [-U] [-c] [-d] [-e] [-f] [-g] [-G] [-s] [-u] [-p] username3)建立用户
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire] [-passwd] [-r] username4)删除用户
userdel [-r] username5)切换用户
su [-flmp] [--help] [--version] [-] [-c <指令>] [-s <shell>] [username]6)以其他用户身份执行命令
sudo -K | -L | -V | -h | -k | -l |-vsudo [-HPSb] [-a auth_type] [-c class | -] [-p prompt] [-u username | #uid] [-e file [...] | -i | -s | command]
7)修改用户密码时效
chage [-m] [-M] [-W] [-E] [-d] [-i] [-l] username8)查找并显示用户信息
finger [-s] [-l] [-p] [username] [username@host]3.3 组管理
每个用户可以属于一个或多个用户组,而用户组则是一些具有相同特性的用户的集合。Linux是一个多用户的操作系统,当多个用户需要访问一个共享的资源时(如文件、打印机),需要为每个用户设置相关的权限。
1、相关配置文件及目录
在对用户组进行操作时,最后的修改信息将保存在/etc目录下group、gshadow配置文件中。
/etc/group
对于任何一个用户来说,都可以读取group配置文件里面的内容,它用来保存用户组账户的相关信息。
用户组名:口令:组标识号:组成员列表/etc/gshadow
用户组的账户口令、组管理员信息被保存在gshadow配置文件中,该文件只有root系统管理员才可以读取。同样,每一行表示一个用户账户的信息,每行由4个字段组成,每个字段中间用":"分割。
用户组名:用户组口令:组管理员账户:组成员列表2、图形化管理用户组
3、使用命令关键字管理用户组
1)查看用户组账户信息
tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File] 或者 tail [-r] [-n Number] [File]
2)创建用户组
groupadd [-g gid] [-o] [-r] [-f] groupname3)更改GID及组名称
groupmod [-g GID <-o>] [-n new groupname] groupname
4)删除用户组
groupdel groupname5)管理用户组中用户
gpasswd [-a user] [-d user] [-A user] [-M user] [-r] [-R] groupname