Linux系统用户,组管理
现在的计算机都是:Multi-tasks , Multi-Users
- 每个使用者: 用户 :主机识别计算机中一个使用者的标识(id)
- 每个使用者:用户标识,密码。
- 认证 (Authentication):对用户身份的识别
- 授权 (Authorization):身份认证虽然通过,但是每个用户的级别不一样
- 审计 (Audition)
- 组:用户组:用户的容器,将多个用户组合起来形成一个逻辑组件
- 用户类别:
- 管理员
- 普通用户:
- 系统用户
- 1-999(Centos7) 1-499(Centos6)
- 登录用户
- 500-60000(Centos6) , 1000-60000(Centos7)
- 系统用户
- 每个用户都有用户标识: UserID , UID 16bits二进制数字:0-65535
- 管理员:0
- 普通用户:1-65535
- 名称解析:名称转换 Username<—> UID 根据名称解析库进行:/etc/passwd
- 组类别:
- 管理员组
- 普通用户组
- 登录组
- 系统组
- 组标识:GroupI,GID
- 管理员组:0
- 普通用户组:1-65535
- 系统用户组
- 登录用户组
- 名称解析:groupname <—> gid
- 解析库: /etc/group
- 组类别2:
- 用户的基本组
- 用户的附加组
- 组类别3:
- 私有组:组名通用户名:且只包含一个用户
- 认证信息:
- 通过比对事先存储的,与登录时提供的信息是否一致
- 密码存储不能明文,得加密,且不能被解密
- password: /etc/shadow :数据库文件(密码库)
- 组的密码文件:/etc/gshadow
- 密码使用策略:
- 1.使用随机密码
- 2.最短长度不要低于8位
- 3.应该使用大写字母,小写字母,数字
- 4.定期更换
- 加密算法:
- 都是根据数学上的难题,来进行加密的。
- 算法的加密解密算法很多都是数学家,高级加密算法可以算上军备资源
- 分类:
- 对称加密 :密码和解密使用同一个密码
- 非对称加密:加密和解密使用一对秘钥
- 公钥和私钥(public key,private key)
- 单向加密:只能加密,不能解密(借助salt完成)
- 提取数据特征码
- linux系统上有个加密工具:md5sum echo “How are you” |sha512sum 另一个sha512sum
- md5 :128bits message digest
- sha :secure hash algorithm : 160bits sha1sum sha224sum sha256sum sha384sum sha512sum
- 密码比对:将你输入的密码添加随机数:加密字串,再比对
- /etc/passwd :用户的信息库
- name:password:UID :GID:GECOS:directory
- name:用户名
- password:可以是加密的密码,也可以是占位符*
- UID :
- GID :用户所属主组的ID号
- GECOS:注释信息
- directory:用户的家目录
- shell :用户的默认shell,登录时默认的shell程序
- /etc/shadow: 用户密码
- 用户名:加密的密码:最后一次修改密码的试卷:最短使用期限:最长使用期限:警告期段:
- /etc/group:组的信息库
- groupname:password :GID :user_list
- user_list :改组的用户成员:以此组为附加组的用户的用户列表
- groupname:password :GID :user_list
- 相关命令:useradd ,userdel, usermod,passwd
用户和组管理
- groupadd 命令:添加组
- groupadd [选项] group_name
- -g :GID 指定GID: 默认是上一个组的GID号加一
- -r :创建系统组: 1-999 (centos7):
- 每一个进程在访问资源时:代表的是一个用户(拥有的用户权限),ls ,cat 都是进程
- 进程:
- 开机时启动的
- 代表root
- 开机后启动的
- 开机时启动的
- 派出去的进程都应该以最小权限去运行
- 安全上下文:
- 进程以其发起者的身份运行;
- 进程访问文件时的权限,取决于发起此进程的用户的权限
- 系统用户:开启时启动的进程用的就是系统用户的权限
- 进程以其发起者的身份运行;
- groupmod :修改组属性
- groupmod [选项] group
- -g :GID
- -n new_name :修改组名
- groupmod [选项] group
- groupdel :删除组
- 如果组内有用户,那些用户会失去组织
- useradd :创建用户
- useradd [选项] 用户名
- -u :设定用户的id号
- -g :指明基本组ID,此组之前必须存在
- -c :添加注释信息
- -G :指明附加组,可以指明多个,用逗号隔开
- -d :以指定的路径为用户的家目录,通复制 /etc/skel此目录并重命名实现,指定的家目录如果实现存在,则不会为用户复制环境配置文件
- -s 指明用户的默认shell : cat /etc/shells
- -r :创建系统用户
- -M :不为用户创建主目录
- -D :修改和显示默认设置的
- 注意: 创建用户时的诸多默认设定配置文件文:/etc/login.defs
- 修改的结果保存于:/etc/default/useradd 文件中
- usermod :修改用户属性
- -u :修改用户uid
- -g :修改用户所属的基本组(事先得存在)
- -G :修改用户所属的附加组,原来的附加组会被覆盖。如果不想覆盖使用 -a 与-G一起使用
- -d :指明新家目录 : 与-m 一起使用:用于将原来的家目录移动为新的家目录
- -l --login new_name :修改用户名
- -L ,锁定用户密码:即在用户原来的密码串之前他添加一个“!”号
- -U :解锁用户密码
- userdel :删除用户 (默认不上家目录)
- -r :删除用户时,一并删除其家目录
- passwd :
- 1)passwd :修改用户自己的密码
- 2)passwd USERNAME :修改制定用户的密码,但仅root有此权限
- -l -u :锁定和解锁用户
- -d :清除用户的密码
- -e DATE:指明用户的过期时间
- -n DAYS:密码的最短使用期限
- –stdin : 用法: echo “magee” | passwd --stdin gentoo
- gpasswd命令:给组添加密码
- -a USERNAME :向组中添加用户
- -d USERNAME: 向组中移除用户
- 组密码文件为:/etc/gshadow
- id :查看用户信息 :uid=1006(fedora) gid=1006(fedora) 组=1006(fedora)
- id --print real and effective user and group IDs:显示用户真实和有效id信息
- id 用户名:显示指定用户id信息
- -n :显示名称
- -g :显示基本组id
- newgrp: 切换基本组,需要组密码
- -: 会模拟用户重新登录以实现重新初始化其工作环境
- chage命令:
- chage - 更改用户密码过期信息
- su命令: switch user
- 登录式切换 :完全切换,重新初始化用户环境(重新读取用户的配置文件)
- su - USERNAME
- su -l USERNAME
- 非登录式切换 : 不会读取目标用户的环境配置文件
- su USERNAME
- -c ‘COMMAND’ : 仅以指定的用户的身份运行此处的命令
- 登录式切换 :完全切换,重新初始化用户环境(重新读取用户的配置文件)
- 管理员可以无密码切换到其他用户,非管理员切换至任何用户都需要密码
- finger : chfn chsh finger ,whoami
命令总结:groupadd groupmod groupdel useradd usermod userdel passwd gpasswd newgrp id su chage pwck grpck:检查密码是否有问题