Linux 用户和用户组管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
Linux系统用户账户的管理
用户账号的管理工作主要涉及到用户账号的添加、修改和删除。
添加账号
useradd 选项 用户名
-c comment 指定一段注释性描述
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
-g 用户组 指定用户所属的用户组
-G 用户组,用户组 指定用户所属的附加组
-s Shell文件 指定用户的登录Shell
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
删除账号
userdel 选项 用户名
# 把用户的主目录一起删除
userdel -r sam
Linux系统用户组的管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
增加一个新的用户组使用groupadd命令。其格式如下:
groupadd 选项 用户组
-g GID指定新用户组的组标识号
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统用户组的GID相同
删除一个已有的用户组使用groupdel命令,其格式如下:
groupdel 用户组
修改用户组的属性使用groupmod命令。其语法如下:
groupmod 选项 用户组
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
groupmod –g 10000 -n group3 group2
# 此命令组group2的标识号改为10000,组名修改为group3
切换用户组newgrp,以便具有其他用户组的权限
newgrp root
# 这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组
与用户账号有关的系统文件
这些文件包括/etc/passwd
, /etc/shadow
, /etc/group
等
-
/etc/passwd
文件是用户管理工作涉及的最重要的一个文件用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
用户名:代表用户账号的字符串
口令:一些系统中,存放着加密后的用户口令字
用户标识号:是一个整数,系统内部用它来标识用户
组标识号:字段记录的是用户所属的用户组
注释性描述:字段记录着用户的一些个人情况
主目录:也就是用户的起始工作目录
用户登录后,要启动一个进程,负责将用户的操作传给内核,即shell
系统中有一类用户称为伪用户(pseudo users) -
拥有账户文件
- 除了上面列出的伪用户外,还有许多标准的伪用户,例如:audit,corn,mail,usenet等,它们也都各自为相关的进程和文件所需要。
- /etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生
它的文件格式与
etc/passwd
类似,由若干个字段,字段之间用":"隔开。这些字段是:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
-
用户组的所有信息都存放在
/etc/group
文件中将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。
当一个用户同时是多个组中的成员是,在/etc/passwd
文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。
用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。
可以批量建立大量的账号