首页 > 代码库 > 10、自学——Linux的学习进度与任务【用户和用户组相关操作】
10、自学——Linux的学习进度与任务【用户和用户组相关操作】
用户和用户组相关操作
用户和用户组定义:
用户:资源获取标识符(资源分配),是安全权限模型的可信要素之一
用户组:用户组是指多个用户的集合,方便对一类需要同样权限的用户授权
密码:用户认证
Linux是多用户、多任务的操作系统。
多用户指:多人同时使用系统资源;多任务:同时运行多个进程
用户和用户组的类别:
1、用户:名称解析库 /etc/passwd
a、管理员
root 用户标识(UID)为0
b、普通用户及系统用户
普通用户的用户标识(既UID):
CentOS 5,6: 500+
CentOS 7: 1000+
系统用户用户标识(既UID):
CentOS 5,6: 1-499
CentOS 7: 1-999
2、用户组:名称解析库 /etc/group
a、管理员组
组标识为:0
b、普通用户组及系统用户组
普通用户组标识:
CentOS 5,6: 500+
CentOS 7: 1000+
系统用户组标识:
CentOS 5,6: 1-499
CentOS 7: 1-999
3、用户组类别:
以用户为核心分为:
用户的主组:基本组;
用户的附加组:额外组;
以容纳的用户来划分:
私有组:与用户名相同,且只有一个用户;
共有组:组内包含了多个用户;
用户及用户组的认证机制
Linux的用户密码认证方式在centos7中使用sha512
认证信息库存储位置:
用户的认证(密码)信息库:/etc/shadow
组的认证信息库:/etc/gshadow
密码:加密存放,使用单向加密机制
加密方法:
对称加密:如果加密和解密使用的同一个密钥.DES数据加密标准,3DES,AES,
公钥加密:DSA,RSA
单向加密:输入的数据相同,则输出相同
输入的数据不同,则雪崩效应
定长输出
不可逆
MD5:信息摘要128bits
SHA1:安全的hash算法:160bits
SHA256:
SHA512:
操作:
# md5sum 文件 :检测密码
# sha1sum 文件
用户及用户组管理命令
添加组:
# groupadd [options] group
-g GID:指明GID;
-r, –system:系统组
修改组信息:
# groupmod [选项] GROUP
-g GID
-n NEW_NAME:修改组名;
删除组:
# groupdel [选项] GROUP
添加用户:
# useradd [选项] 登录名
-c, –comment COMMENT:注释信息,一般为Full Name:
-d, –home /PATH/TO/HOME_DIR:家目录路径;目标路径不能事先存在,否则会有警告,不会复制skel相关的文件给用户;
-g, –gid GROUP:用户的基本组组名或GID;
-G, –groups GROUP1[,GROUP2,…[,GROUPN]]]:用户所属的附加组列表,彼此间用逗号隔开,中间没有空格;
-m, –create-home:强制创建家目录;
一般指当CREATE_HOME变量为设置时必须使用此参数
-M:不创建用户主目录,即使系统在 /etc/login.defs 中的设置 (CREATE_HOME) 为 yes;
-r, –system:创建一个系统账户
创建系统用的UID在0-999之内。且不创建家目录
-s, –shell SHELL:用户的登录 shell 名,默认为留空,让系统根据 /etc/default/useradd 中的 SHELL 变量选择默认的登录shell;
-u, –uid UID:用户 ID 的数字值。此值必须为唯一的,除非使用了 -o 选项。此值必须非负,默认使用大于等于UID_MIN,且大于任何其他用户 ID 最小值。
注意:创建登录用户时,为其自定义的shell程序必须为可登录shell,且要位于/etc/shells文件中;
# useradd -D:显示创建用户时的默认设置;
# useradd -D 选项:设置某默认选项;
-e, –expiredate EXPIRE_DATE:用户账号的过期期限;过期后会被锁定;日期以 YYYY-MM-DD 格式指定
-f, –inactive INACTIVE:密码过期后,账户被彻底禁用之前的天数。0 表示立即禁用,-1 表示禁用这个功能。
配置文件:
为用户提供默认配置的配置文件:
/etc/login.defs, /etc/default/useradd
影子口令文件:/etc/shadow
/etc/shadow每个字段的意思:
登录名:密码:最近一次的修改时间:密码的最短使用期限:密码最长使用期限:提前警告的天数:非活动期限:账号的禁用日期:保留字段
修改账号信息:
# usermod [选项]
-c, –comment COMMENT
-d, –home HOME_DIR:修改家目录为新的位置,但一般应该同时使用-m选项以保证原家目录中的文件会移动到新目录中;
-g, –gid GROUP
-G, –groups GRO UP1[,GROUP2,…[,GROUPN]]]:修改时会覆盖原有的附加组;一同使用-a选项,表示为用户添加新的附加组;
-l, –login NEW_LOGIN:修改当前用户的用户名;
-s, –shell SHELL
-u, –uid UID
-L, –lock:锁定用户的密码。这会在用户加密的密码之前放置一个“!”
-U, –unlock:解锁用户的密码。这将移除加密的密码之前的“!”
删除用户账号:
# userdel [选项] 登录名
-r, –remove:用户主目录中的文件将随用户主目录和用户邮箱一起删除
密码管理命令:
(1)# passwd:修改自己的密码;
(2)# passwd username:修改其它用户的密码,仅root有此权限;
密码复杂度:
(1) 不能少于8个字符;
(2) 不能使用与过去的密码太相似的密码;
(3) 应该使用四类字符中的至少三类;
选项:
-l:锁定密码
-u:解锁解密
-d:清除密码
与usermod不同的是,passwd在锁定时密码前面有两个!!号
特殊用法:可以避免交互式
–stdin:从标准输入接收密码;
echo "PASSWORD" | passwd –stdin USERNAME
为组添加密码:
组密码文件:/etc/gshadow
# gpasswd [选项] group
-a USERNAME:把用户添加至组中;
-d USERNAME:从此组中移除此用户;
# newgrp命令:登录到一个新组
# chage命令:修改用户账号的各种期限;
查看用户相关信息:
# id UserName
-u :显示UID,跟-n一起使用则显示用户名
-g :显示基本组ID,跟-n一起使用则显示基本组名
-G:显示所有组ID。跟-n一起使用则显示所有组名
修改用户的属性定义:
修改用户默认shell:# chsh
修改用户注释:# chfn
切换用户:
su :Switch User
切换用户:
# su Username
-l(不加-l非登陆切换):登陆式切换
-c"COMMAND":
10、自学——Linux的学习进度与任务【用户和用户组相关操作】