首页 > 代码库 > Linux用户和组的管理知识点
Linux用户和组的管理知识点
Linux是一个真实的、完整的多用户多任务操作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响。用户分为用户账户和组账户,因为其多用户多任务的特性,为了防止资源的损害,所以必须要有权限的分配。
能够实现资源使用和完成任务的主体是应用程序进程,进程是以其发起者的身份运行的,也可以理解为进程的所有者就是发起者。当进程去访问资源的时候,安全上下文会比对进程的所有者和资源的所有者的关系:首先查看进程的所有者是不是资源的所有者,如果是,就按照属主的权限使用资源;如果不是则判断进程的所有者是否输入资源所属组,如果是,按照属组的权限使用资源;如果不是,则按照其他人的权限来使用。
用户分为超级用户和普通用户,普通用户又分为系统用户和登录用户。系统用户是用来保证安全,让一些运行在后台的进程或者服务类运行,以非管理员的身份运行,这类用户一般不能登录到系统中。登陆用户即为能够正常使用整个系统资源的用户。
用户以用户登录名称(字符串标识)和用户ID作为标识。用户ID也可理解为是为计算机准备的数字标识,超级用户的ID号为0,系统用户的ID号于centos5/6中为1~499,于centos7中为1~999,登录用户于centos5/6中为500~60000,于centos7中为1000~60000,注意60000以上的标识符为用户自定义标识的。名称解析即用户名和用户ID一一对应的字符串存储于解析库(/etc/passwd)中,系统利用解析库完成认证机制,验证登陆用户是否是你声称的那个人。认证库(/etc/shadow和/etc/group)采用密码认证的机制认证登录密码是否正确,保存到认证库中的密码是加密保存的,hash单项加密算法,只能对数据加密,不能对数据解密,抽取出原始数据的特征信息,类似于数据指纹。单向加密算法的特征:只要数据相同,其加密结果必然相同;无论数据多大,其加密结果定长输出;雪崩效应(如果改变一位数据,其加密结果完全改变);不可逆。注意第一条特征,如果加密结果相同,其数据必然相同,所以加密过程中要在加密数据上加上salt(随机数)。随机数有两个随机数生成工具random和urandom。random从熵池(来源于中断返回的随机数)中返回随机数,如果熵池被耗尽,则进程被阻塞;urandom先试图从熵池中返回随机数,如果熵池耗尽,则利用伪随机数生成器生产伪随机数。单向加密常用的算法有md5($1)、sha1($2)、sha224($3)、sha256($4)、sha384($5)、sha512($6)。因此认证库中存储的最终验证字符串为$6$salt$cryteped_passwd。
用户组:将具有某些相同或相似属性的用户联系在一起以便集中授权的容器。分为管理员组,普通用户组,普通用户组又分为系统组和登陆组。组也通过组名和组ID来标识,组ID与用户ID类似,管理员组ID为0,系统组于centos5/6中ID为1~499,于centos7中ID为1~999,登陆组于centos5/6中ID为500~60000,于centos7中ID为1000~60000。组的解析库为/etc/group,认证库为/etc/group。组也需要密码保护,如果组没有设置密码保护的话,则不能随时加入。以用户为核心来对组进行分类可分为用户的主要组和用户的附加组,主要组必须要有且只能有一个,附加组对用户来讲可以有也可以没有;根据组所容纳的用户来分可分为私有组和公共组,私有组组名与用户登陆名相同,组中只有此用户,公共组包含其他多个不同用户。默认情况下,用户的主要组都是其私有组。
解析库/etc/passwd的字段分析:account:password:UID:GID:GECOS:directory:shell
account登录名;
password密码字段,现在在使用了shadow机制的系统中,通常使用X作为占位符;
UID用户ID;
GID此用户主要组ID;
GECOS comment注释类信息,现在一般都会用来存放用户的说明信息或全名;
directory家目录路径(绝对路径);
shell默认登陆shell的绝对路径;
解析库/etc/group的字段分析:group_name:passwd:GID:user_list
group_name组名;
passwd组密码(默认为空);
GID数字化的组的标识;
user_list以该组为附加组的用户的列表;;
认证库/etc/shadow的字段分析:
postfix:!!:17230::::::
第一个叹号,密码被锁定,第二个叹号,没有密码
login name:用户名登录名;
encrypted password:加密了的密码
格式:$算法$salt$真正意义的加密密码
如果该位置为“!”,则表明用户的密码被禁用;
如果该位置为“*”,则表明该用户为系统用户,不能登录
如果该位置为空,则表明用户可以无需输入密码即可登录系统,不推荐使用;
date of last password change:
相对时间概念,相对于1970年1月1日到最后一次修改密码的那天的天数;
minimum password age:
在多长时间之内无法修改密码,默认值为0,意即:随时可以改密码;如果是非0的其 他数字,意思是在这么长的天数里面不能修改密码;
maximum password age:
在多长时间之后密码过期,默认为99999,意思永久有效;
password warning period:
密码过期之前的友善提醒天数;默认值7天;
password inactivity period:
密码过期之后的宽限期,默认为-1,意思是永久宽限期;
account expiration date:
一个用户账户密码过期的日期,这是一个绝对的过期期限,xxxx/xx/xx
reserved field:
保留字段,以备以后使用;
一些关于用户和组的命令:
组管理相关的命令:
groupadd groupdel groupmod
用户管理相关的命令:
useradd userdel usermod
认证管理相关的命令:
passwd gpasswd chage
其他的相关管理命令:
chsh finger su id
组管理命令:
groupadd新建组账户
-g GID 在创建组账户的时候,制定组账户的GID,如果不使用该选项制定,系统
会选择在组解析文件中,出现的不大于60000的最大GID+1
-r创建系统组:意思就是创建一个GID在1~999之间的组
groupmod修改组的相关信息
-g GID修改组账户的ID
-n NEWNAME修改组名
groupdel删除组账户
注意:如果某个组是某个用户的主要组,则该组无法删除
useradd新建用户账户:useradd [选项] 登录
当管理员在未制定任何选项时,这三个文件 (/etc/default/useradd、/etc/login.defs、/etc/skel)也能创建用户,并为用户赋予默 认的属性。
-c,--comment在创建用户时,为用户添加注释信息,一般为全名
-d,在创建用户时,为用户指定用户家目录的路径,被指定的目录应该是事先
不存在的目录,否则用户的家不能被正常创建
-g,--gid GROUPNAME 在创建用户时,为用户指定主组
-G在创建用户时,为用户添加多个附加组
-M在创建用户时,不会创建用户的家目录
-m强制性为用户创建家目录
-r创建一个系统用户
-u --UID在创建用户时,为用户指定UID,这个UID可以超过60000的限制
-s--shell在创建用户时,指明用户登陆的shell
-D --defaults显示或修改用户默认属性值
-s,--shell /PATH/TO/SHELL:修改etc/default/useradd文件中的SHELL默认值
usermod:修改用户账户信息
usermod [选项] 登录名
-c, --commentCOMMENT修改用户注释信息
-g, --gid GROUP修改用户主要组
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]修改用户的附加组为列表中的组
-a,--append将用户添加到附加组,只能和-G一起用
-d, --homeHOME_DIR修改用户的家目录(只是把家目录挪过去,文件不搬家)
-m, --move-home这个选项只有和 -d (或 --home) 选项组合使用时才有效
,,将旧的家目录中的数据移动至新家之中
-l更改用户账户登录名
-s修改用户账户的登陆shell
-u修改用户UID
-L锁定用户密码
-U解锁用户密码
userdel删除用户账户
-r在删除用户的同时,清除用户的家目录
用户认证相关命令:
passwd:设置和查看用户的密码信息
-l锁定密码lock
-u解锁密码unlock
注意:相比较usermod -L|-U而言,其优先级更高,
-d--delete,删除用户密码将/etc/shadow第二字段(加密后的密码)清空
-S,--status查看用户的密码状态
--stdin,借助于管道将输入数据流当作标准输入信息送给passwd命令。
组认证相关命令
gpasswd
-a--adduser向名为group的组中添加用户user
-d--delete
其他命令
su
su USERNAME
半切换,在切换用户时,不会重新读取用户的配置文件,因此用户并没有登陆行
为,所以,工作环境不初始化。
su - USERNAME=su -l USERNAME
登陆式切换,完全切换,切换用户时,会重新读取目标用户配置文件,并且初始
化工作环境。
-c并不切换用户身份,而是以目标身份执行一个命令
newgrp GROUPNAME,临时更改当前登录用户的主要组;使用exit返回
id:
-g只显示用户的有效GID
-u只显示用户的有效UID
-G显示用户所有组ID
-n以名称代替ID显示
Linux用户和组的管理知识点