用户和组管理 : 注 : 实现资源分配的机制 Authentication : 认证,验证用户身份是否合法或者验证用户是否有权使用资源,但并不能具体确定用户可以使用那些资源以及可以使用多少资源 Authorization : 授权,Linux中一切皆文件,而正是通过文件上某些元数据的修改,以实现对用户的授权 Audition/Accounting : 审计,审核用户权利的使用是否合理 属主(owner) : 即文件归谁所有 属组(group) : 为linux上一组相似用户建组,并以组为单位进行授权 1,将属组所拥有的权限与属组内的用户建立关联 2,为数组添加新的用户 Linux用户(Username) UID : linux以数字标识和追踪用户身份 管理员用户 : root,0 普通用户 : 1-65535 系统用户 : CentOS 6 : 1-499;CentOS 7 : 1-999,对守护进程获取资源进行的权限分配 普通用户 : CentOS 6 : 500+;CentOS 7 : 1000+,交互式登陆 linux的安全上下文 : 进程 : process,运行中的程序 注 : 某个进程是在以发起者的身份在运行,因此发起者的身份决定了进程所能够访问的资源的权限,进程作为发起者的动作,其本身并没有任何区别,区别在于发起者的身份 决定了动作能否执行以及执行的程度 linux组的类别 : 用户的基本组(主组) : 即用户的基本或主要身份,用户拥有的大部分或主要权限都集中在在这个组中 用户的额外组(附加组) : 用户的额外身份,主要集中了用户的少有的特殊权限 私有组 : 组名同用户名,且组中只有一个用户,创建新用户时,未指定用户的基本组,均默认为用户创建私有组 linux用户和组的相关配置文件 : /etc/passwd : 用户及其属性信息 文件组织格式 : name : password : UID : GID : GECOS : directory : shell 用户名 : 密码 : UID : GID : 用户的完整信息(如家庭住址,电话号码等,信息多元时,以","分隔) : 用户的家目录 : 为用户指定的默认shell 注: 密码字段中,并未真正存储用户密码,而仅仅只是以一个占位符占位而已 /etc/group : 组及组属性信息 文件组织格式 : group_name : password : GID : user_list 组名 : 组密码 : GID : 以该组为附加组的用户列表(用户多元时,以","分隔) 注 : 组密码字段中,并未真正存储密码,仅仅只是以一个占位符占位而已 /etc/shadow : 用户密码及其相关属性信息 文件组织格式 : 用户名 : 加密后的密码 : 最近一次更改密码的时间 : 密码的最小使用期限 : 密码的最大使用期限 : 密码的警告时间段 : 密码的禁用期 : 账号的过期日期 : 保留字段 加密机制 : 加密 : 明文 -> 密文 解密 : 密文 -> 明文 单向加密 : 提取数据指纹,数据与数据指纹之间一一对应,数据不变,数据指纹就不会变,但无法根据数据指纹还原数据 加密算法 : md5 : message digest(摘要),128bits sha1 : secure hash algorithm,160bits sha224 : 224bits sha384 : 384bits sha256 : 256bits sha512 : 512bits 雪崩效应: 明文的微小改变,就会导致密文的巨幅改变,目的在于防止根据密文的相似度逆推明文的相似度 定长输出 : 只要加密算法一样,最终输出的密文长度就不会改变 注 : 为避免多个用户输入的密码相同,导致一个用户可以根据自己的密文推出其他用户的密码,因此系统会自动在用户密码的后面加入一串随机数,联合用户密码生成密文 每次在用户登陆时,都会在用户密码后,加入该随机数,完成用户的认证 密码结构 : $加密方法及版本$杂质$密码密文 密码的复杂性原则 : 1,至少要使用数字,小写字母,大写字母,特殊字符中的三种 2,要足够长 3,使用随机密码 4,定期更换,不要使用最近使用过的密码 ======================================================================================================================================================================= 用户和组相关的管理命令 : 用户创建 : useradd useradd login_name -u UID : 指定用户UID,[UID_MIN,UID_MAX],定义在/etc/login.defs文件中,默认创建的用户UID为最近一次创建的用户UID加一 -g GID/group_name : 指定用户所属的基本组,可为基本组的组名,也可为基本组的GID,但组必须事先存在 -G GID : 为用户指定附加组,组多元时,以都“,”隔开 -c,--comment “COMMENT” : 为用户指定详细信息,信息多元时,以“,”,分隔 -d /path/to/home_dir : 指定用户家目录 -s SHELL : 为用户指定默认shell,/etc/shells:保存有可用shell列表 -r : 创建系统用户,CentOS 6 : 1-499,CentOS 7 : 1-999 useradd -D : 配合上述选项使用,修改不给任何选项,创建用户时的默认设置,仅对当前shell进程,当前会话有效 组创建 :groupadd groupadd group_name -g GID : 指定组ID,[GID_MIN,GID_MAX],定义在/etc/login/defs文件中 -r : 创建系统组,CentOS 6:1-499;CentOS : 1-999 ===================================================================================================================================== id : 显示用户的id信息 -u : 仅显示用户UID -g : 仅显示基本组GID -G : 显示用户基本组和附加组信息 -n : name,显示用户及组名,而非组或用户id ========================================================================================================================================= su : 以另一个用户身份执行命令或实现用户之间切换 切换用户的方式 : 不完全切换 : 即暂时获得其他用户权限,但同时用户当前用户的权限,并不会读取目标用户的配置文件 su user_name 完全切换 :即彻底变成另外一个用户,取得另外一个用户的权限,但仅拥有另一个用户的权限,不再拥有当前用户的权限,会读取目标用户的权限 su - user_name 注 : root用户切换到其他用户不需要密码,但普通用户切换到其他用户需要密码 以其他用户身份执行命令 : su [-] -c 'COMMAND' 选项: -l : 登录式切换,即完全切换 ============================================================================================================================================ usermod : 修改用户属性 usermod [option]... user_name -u UID : 新的UID -g GID : 新的基本组 -G GROUP,... : 新的附加组,用户原有的附加组将会覆盖,如果要保留原有附加组,可符合选项-a一起使用 -s SHELL : 新的默认shell -c 'COMMENT' : 新的用户基本信息 -d DIRECTORY : 新的用户家目录,但仅使用该选项,系统并不会将用户原目录下的文件移至新的家目录下,也不会为用户创建新的家目录,但若要将用户原本家目录下的 文件移至新的家目录下,需配合-m选项一起使用 -e : 指定用户账户的过期日期 -f : 指定用户密码的非活动期限 -l : 修改用户登录名 -L : 锁定指定用户 -U : 解锁指定用户 =================================================================================================================================================== 为指定用户添加或修改密码 : passwd passwd user_name : 修改指定用户的密码,仅root权限 passwd : 修改用户自己的密码,不允许前提是用户有密码,否则用户添加密码或修改密码 -l : 锁定指定用户 -u : 解锁指定用户 -n MIN_DAYS : 指定密码的最小使用期限 -x MAX_DAYS ; 指定密码的最大使用期限 -w WARN_DAYS : 指定密码的警告期限 -i INACTIVE_DAYS : 指定密码的非活动期限 --stdin : 从标准输入接受用户密码,如echo 'passwd' | passwd --stdin user_name ====================================================================================================================================================== 删除用户 : userdel userdel [option]... user_name -r : 删除用户家目录 =========================================================================================================================================================== 组属性修改 : groupmod groupmod [option]... group_name -n : 指定新组名 -g GID : 执行新的组ID ====================================================================================================================================================== 组删除 : groupdel groupdel GROUP =========================================================================================================================================================== 组密码添加 :gpasswd 组密码作用 : 当本用户既非某组的基本组用户,又非某组的附加组用户,但有需要取得该组的权限时,此时需要组密码,临时成为该组用户 gpasswd GROUP : 添加或修改组密码 -a USER : 将user添加至指定组 -d user : 从该组中删除指定用户 -A user1,user2,.... : 添加具有管理权限的用户列表 ============================================================================================================================================ newgrp : 为用户临时切换基本组 注 : 如果但前用户不属于该组,则需要组密码 ============================================================================================================================================= pwck : 检查密码文件的完整性,即检查用户及其认证信息的完整性,检查/etc/passwd,/etc/shadow格式是否正确,数据是否有效 ========================================================================================================================================== 修改用户属性 : chage chage [option]... login_name -d last_day : 修改用户最近一次修改密码的时间 -E expire_date : 修改用户账户过期日期 -I inactive : 修改用户密码禁用期 -m min_days : 修改用户密码的最小使用期限 -M max_days : 修改用户密码的最大使用期限 -W warn_days : 修改用户密码的提醒警告期 ================================================================================================================================================= 其他命令 : chfn ; 修改用户的详细信息(即家庭住址,电话号码等信息) finger : 查看用户的详细信息 chsh ; 修改用户的默认shell ================================================================================================================================================= 权限管理: 文件的权限主要针对三类用户: 属主 : owner,u 属组 : group,g 其他 : others,o 每个文件对每个用户都定义了三种权限 : r : readable w : writable x : excutable 文件 : r : 可使用文件查看类工具查看文件内容 w ; 可修改文件内容 x : 可将文件提交内核启动为一个进程,但为避免文件被恶意利用,任何文件在创建时,都默认没有执行权限 文件夹 : r : 可使用ls命令查看此目录中的文件列表 w : 可在此目录中创建文件,也可在此目录中删除文件 x : 可使用ls -l查看此目录中的文件列表,也可使用cd命令进入此目录,默认创建目录时,均有此权限 权限的另外表示方法 : r---w---x -> 100010001 -> 421 修改文件权限 : chmod chmod [option]... OCTAL_MODE(八进制) FILE... -R : 递归修改权限,当修改目录权限时,目录中文件的权限也会跟着一起改变 chmod [option]... mode,... FILE... mode : 修改某一类用户的权限 : u=r ug=rw u=r,g=w 注:没有写出的权限,均默认没有该权限 修改某一类用户的某一位权限 : u+r ug+r u+r,g+r 增加某用户在某一位的权限 u-r ug-w u-x,g-x 去除某类用户在某一位的权限 chmod [option]... --reference=RFILE FILE... 参考RFILE文件的权限,将FILE文件的权限修改的和RFILE文件的权限一模一样 ================================================================================================================================================= 修改文件的属主和属组,仅root用户权限 chown [option][:[GROUP]] FILE... 注: 命令中的“:”可用“.”替代 -R :递归修改文件的属主 chown [option]... --reference=RFILE FILE,..... 参看RFILE修改FILE的属主 =========================================================================================================================================== 修改文件的属组 :chgrp chgrp [option]... GROUP FILE... chgrp [option]... --reference=RFILE FILE... -R : 递归修改文件的属组 ======================================================================================================================================= 文件或目录创建时的遮罩码 : umask 注 : 遮罩码用户创建文件或文件夹时,为文件或文件夹指定默认权限 FILE : 666 - umask 注 : 当某类用户创建文件时,权限减得的结果中包含x权限,则结果加一,直至无x权限 DIR : 777 - umask umask : 查看umask的值 umask # : 修改umask的值,仅对当前用户有效