用户和组帐户的管理的基础和基本操做 计算机就是让咱们使用资源的,可是咱们的计算机不能让每一个人的权限同样,因此咱们须要设置多个不一样权限的用户,有不一样的身份认证,从而使用不一样的操做。从而就有了多任务操做系统。 计算机可以实现资源使用和完成任务的主体是:应用程序进程 进程是以发起者的身份运行的:能够理解为,进程的全部者就是其发起者;每一个进程上都会标记上其全部者的身份信息; 当进程试图访问资源的时候,安全上下文回避对进程的全部者和资源的全部者之间的关系: 首先,查看进程的全部者是否和资源的全部者为同一用户,若是是,就按照全部者拥有的权限来使用资源;若是不是,则进行下一步的判断; 若是不是,则判断按进程的全部者是否属于该资源所属组的成员;若是是,按照所属组的权限来使用资源; 若是不是,就按照最为普通的其余用户的权限来使用资源; 用户帐户:实现操做者和计算机交互式操做的基础,是操做者的身份在知足了验证条件以后的计算机系统中的映射;咱们输入咱们想要的操做,计算机会帮咱们进行实现操做。 用户帐户分类: 超级用户(管理员):root 普通用户: 系统用户(非登陆用户): 为了保证安全,每每会让某些进程或服务必须以非管理员的用户身份运行;这类非管理员用户,称为系统用户;此类用户通常不容许登陆到系统的;是很危险的用户。 登陆用户: 可以经过登陆行为验证用户身份进而得到资源访问权限并能够对资源进行操做的用户,能够称为登陆用户; 用户帐户的标识方式: 用户登陆名称: 为操做者提供简单易记的字符串标识;通常咱们的用户名 用户数字ID(UID): 为计算机操做系统提供的标准的数字标识符号,0~2^32-1,真正的计算机识别的“用户名” 超级用户: 用户名:root UID:0 普通用户: 系统用户: centos 6之前:1~499 centos 7之后:1~999 登陆用户 centos 6之前:500+ centos 7之后:1000+ 注意:60000+的UID一般须要用户自定义标识,后面会说; 名称解析: 用户名 <--> UID 用户名解析库: /etc/passwd(用tail命令能够看) 操做系统中的认证组件经过解析库实现认证机制,即验证登陆用户是否为已经存在的用户; 用户认证库: /etc/shadow(用tail命令能够看) 经过此前的解析库认证用户是存在的,在通过认证库的认证,来证实登陆用户就是其声明的用户; 默认的认证机制:密码认证; 密码复杂性要求: 1.尽可能避免使用有规律的或者来源于字典中的字符串做为密码; 2.密码要足够长,通常不得少于6个字符; 3.密码要足够复杂,其中应该至少包括大写字母,小写字母,数字及其余符号中的三类; 4.不按期更换,每隔一段时间进行密码更换; 在linux中,保存到认证库的密码是通过单向加密算法处理过的; 可以加密密码的算法: MD: MD5,Message Digest Version 5,消息摘要算法第5版;128位定长输出; SHA:Secure Hash Algorithm,安全的哈希算法; sha1:160位加密输出 sha224: sha256: sha384: sha512:默认的加密算法; salt:经过随机算法计算获得的随机数; 随机数的生成装置: /dev/random: 仅仅是从熵池中返回随机数;若是熵池中随机数耗尽,进程会被阻塞; /dev/urandom: 首先是从熵池中返回随机数;若是熵池中随机数耗尽,则利用伪随机数生成器生成伪随机数; 在认证库中的密码的最终形态:算法+salt+加密字符串; 算法:$1~$6 salt:$随机字符串 加密字符串:$单向加密的结果 组帐户:将具备某些相同或类似属性的用户联系在一块儿以即可以集中受权的容器;就和小组是同样的 组的分类: 超级用户组 普通用户组 系统用户组 登陆用户组 组帐户的表示方法: 组帐户名称: 组帐户ID(GID): 超级用户组:0 系统用户组: centos 6-:1~499 centos 7+:1~999 登陆用户组: centos 6-:500+ centos 7+:1000+ 组名解析: 解析库:/etc/group 认证库:/etc/gshadow 组也须要使用密码加密保护 用户帐户和组帐户之间的关系: 在linux中,每一个用户必须至少属于一个组: 用户帐户的GID表示被称为用户的主要组(基本组),Primary Group:每一个用户必需要有主要组,并且只能有一个; 在主要组的基础之上,用户能够与其余的组帐户存在逻辑关系,此类组称为用户的附加组(附属组,额外组),Addtion Group;对于用户来收缩,此类组能够没有,也能够有多个; 用户和组管理的管理命令:(这些操做能够从后边课后习题看出来) 组帐户的管理命令: groupadd、groupdel、groupmod 用户帐户的管理命令: useradd、userdel、usermod 认证相关的命令: passwd、gpasswd 其余的相关命令: chage,chsh,finger,su,id 与用户和组相关的命令: 1.groupadd - 建立一个新组 格式: groupadd [选项] group 经常使用选项: -g GID:指定要建立的组的GID; -r:将组建立为系统组,此时应该保证GID在系统指定范围内; 2.groupdel - 删除一个组 格式:groupdel [选项] group 注意:若是某个组是某个用户的主要组,则该组不能删除; 3.groupmod groupmod - modify a group definition on the system 格式: groupmod [选项] GROUP 经常使用选项: -g GID:修改指定组的GID -n GROUP_NAME:修改指定组的组帐户名称; 4.useradd useradd - 建立一个新用户或更新默认新用户信息 格式: useradd [选项] username useradd -D [选项] 经常使用选项: -c, --commentCOMMENT:为用户添加注释信息; -d, --homeHOME_DIR:为用户指定家目录的路径;此目录不能事先存在; -e, --expiredateEXPIRE_DATE:用户密码的过时的绝对时间;如:2018/01/01 -f, --inactiveINACTIVE:为用户指定密码使用达到最大时间以后的宽限期; -g, --gidGROUP:为用户指明GID;若是不写此选项,系统会建立一个与组用户名相同的组而且将之设置为词用的主要组; -G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:为用户添加附加组; -m, --create-home: 必须为用户建立家目录 -M, --no-create-home: 不为用户建立家目录;再建立系统用户时经常使用此选项; -s, --shellSHELL:为用户指定默认的shell -r, --system:为系统建立一个新的系统帐户 -u, --uidUID:为用户指定UID; 5.userdel userdel - 删除用户帐户和相关文件 格式:userdel [选项] username 经常使用选项: -r, --remove:用户主目录中的文件将随用户主目录和用户邮箱一块儿删除。在其它文件系统中的文件必须手动搜索并删除。 6.usermod usermod - 修改一个用户帐户 格式:usermod [选项] username 经常使用选项: -c, --commentCOMMENT:修改用户的注释信息; -d, --homeHOME_DIR:修改用户的家目录;若是再加上 -m 参数(只与-d配合)。则会将现有home目录的地址重命名为新的home目录地址,如原来没有指定home目录地址,则为帐号新建一个指定的home目录地址。 -e, --expiredateEXPIRE_DATE:修改用户密码过时的绝对日期; -f, --inactiveINACTIVE:修改用户密码过时以后的宽限期; -g, --gidGROUP:修改用户的主要组(GID); -G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:修改用户的附加组为此列表中的组,若是同时使用了-a选项,则保留原有的附加组,即将此列表中的组追加至用户的附加组列表; -l, --loginNEW_LOGIN:修改用户的登陆名; -s, --shellSHELL::修改用户的登陆shell; -u, --uidUID:修改用户的UID; -L, --lock:锁定用户; -U, --unlock:解锁被usermod -L锁定的用户; 7.passwd passwd - update user s authentication tokens 格式:passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inac‐ tivedays] [-S] [--stdin] [username] 经常使用选项: -l, --lock:锁定用户; -u, --unlock:解锁用户; --stdin:经过标准输入接受密码,能够用于管道; -d, --delete:删除用户的密码,也能够用于解除用户锁定; -e, --expire:直接设置用户密码过时; -n, --minimum DAYS:用户密码的最短使用时长;默认值为0 -x, --maximum DAYS:用户密码的最长时间时长;默认值为99999 -w, --warning DAYS:用户密码过时以前多少天开始发送警告信息; -i, --inactive DAYS:用户密码过时以后的宽限期; 8.change chage - 更改用户密码过时信息 格式:chage [选项] username 经常使用选项: -d, --lastdayLAST_DAY -E, --expiredateEXPIRE_DATE -I, --inactiveINACTIVE -l, --list -m, --mindaysMIN_DAYS -M, --maxdaysMAX_DAYS -R, --rootCHROOT_DIR -W, --warndaysWARN_DAYS 9.chsh chsh - 改变登陆 shell chsh [ -s shell ] [ -l ] [ -u ] [ -v ] [ username ] 10.finger finger — 用户信息查找程序 finger [-lmsp] [user ...] [user@host ...] 11.id id - 显示真实和有效的 UID 和 GID id [OPTION]... [USERNAME] 经常使用选项: -u, --user: 只 显示 用户 ID -n:显示名称 -g:显示GID 12.su su - 运行替换用户和组标识的shell su [OPTION]... [-] [USER [ARG]...] 经常使用选项: -, -l, --login:之后面的用户身份登陆到系统; -c, --commmand=COMMAND:之前面指定的用户运行COMMAND,