一、
3A认证: authentication:认证
Authorization :授权
audition:审计
读取、使用权限,对于自己的资源有全部的权限
两级分配机制,管理功能薄弱
属主,一般是资源的拥有者,
向文件标识他的属主,属组,和二者之外的其他用户的对文件访问权限,从而完成从用户
到资源二者之间的权限的映射。
每个用户对于资源通过认证,授权后,登录后都会记录在日志中,为审计提供证据。
组是什么?用户组的意义?
用户组,用户容器。多个用户组织成逻辑组件,从而使我们进行授权或者收回权限的时候比较容易操作。
用户类别:
管理员
普通用户:系统用户,登录用户
用户标识:UserID,UID
(开始是用16进制标识的,管理员:0 普通用户:1:65635
CentOS5~6 CentOS7
系统用户:1-499, 1-999
登录用户:500-60000, 1000-60000
名称解析:名称转换
Username<-->UID
根据名称解析库进行 :/etc/passwd ,用户其他的附加信息。
组类别1:
管理员组
普通用户组
系统组
登录组
组标识:GroupID,GID
管理员组:0
CentOS5~6 CentOS7
系统用户组:1-499, 1-999
登录用户组:500-60000, 1000-60000
名称解析:groupname<-->gid
系统用户组:/etc/group
组类别2:
用户的主组(基本组)
用户的附加组
组类别3:
用户私有组:组名同用户名,且只包含一个用户;
用户公共组:组内包含了多个用户;
认证信息:
通过比对事先存储的,与登录时提供的信息是否一致,即验证即可
password:早期,账号和密码都存放在/etc/passwd ,不安全,现单独存放/etc/shadow
组的密码 :/etc/gshadow
密码的穷举:
在不使用汉字的情况下,一位的密码128个,出去特殊字符,100个左右,
二位 100的平方
三位 100的立方
加密算法————解密算法、穷举算法,
密码不建议使用生日原因:从公元前算,利用穷举的算法,通过计算机很容易算出来,字典工具:罗列出常用组合机制。
我们应该使用随机数,随机字符串。以文件保存在U盘中,
密码使用1234,
恶意攻击破解密码,一两个月修改一下密码
密码的使用策略:
1、使用随机密码;
2、最短长度不要低于8位;
3、应该使用大写字母、小写字母、数字和标点符号四类字符中至少三类;
4、定期更换;
不能明文存放,是加密的,加密是不可逆的
加密算法:
1、对称加密:(知道算法,可逆很难。加密都是一些科学难题。 )加密和解密使用同一密码
2、非对称加密:加密和解密使用一对密钥;公钥、私钥。
3、单向加密:只能加密,不能解密:提取数据特征码;
定长输出:
雪崩效应:
[root@localhost ~]# echo "how are you" | md5sum
5ea0b7cb299e8c26b2d9c87039f5e7ad -
[root@localhost ~]# echo "how are you?" | md5sum
ce55c98ac24d4c7764877fa58ab441ef -
算法:
1、md5: message digest,128bits
2、sha1:secure hash algorithm,160bits
3、sha224、sha256、sha384、sha512
[root@localhost ~]# useradd centos
[root@localhost ~]# useradd gentoo
[root@localhost ~]# passwd centos
更改用户 centos 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# passwd gentoo
更改用户 gentoo 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# tail /etc/shadow
pulse:!!:16778::::::
gdm:!!:16778::::::
rpcuser:!!:16778::::::
nfsnobody:!!:16778::::::
postfix:!!:16778::::::
sshd:!!:16778::::::
tcpdump:!!:16778::::::
mageedu:$6$1eWrOetY$DfLZgquGiOaNkwpEF4ItMipz.1kpn7Q.s6oXyoW2bALkWesRWHCCACICkJ.2zBXDbwEw0ibR.wxStLI41ZhfF1:16778:0:99999:7:::
centos:$6$T7u/drJk$kyYdkBmDJqbPuIfaxN1wZJtH8.nxIQS.pv5uoKjSMH.vIKmIn7PpxQK6Hp.SWA5OqYFsGwC9V9VeF8dCfOUJV.:16781:0:99999:7:::
gentoo:$6$xdzxBsIf$9fqZAiIYNFNUDbpaJ7RCz1Y14/8BxPn8Od0x8A2pUS3kChnnIa.Gfs5A8tx8xKIumO.n0RbipzUcMMfJL6JzP1:16781:0:99999:7:::
第2个”$“和第三个之间是”salt“|后面的是真正的密码字符串。
在计算之时加入salt,上面新建的用户的密码一样,加密算法一样,由于加入随机数,密文不同,第二次随机数不再随机,通过认证,确认登录。
/etc/passwd:用户的信息库
name:用户名
passwd:可以是加密的密码,也可以是占位符x
UID:
GID:用户所属的主组的Id号
GECOS:注释信息
directory:用户的家目录;
Shell:用户的默认shell,登录时默认shell程序
/etc/shadow 密码
九个字段:
登录名
加密了的密码
最后一次更改密码的日期
密码的最小使用期限
最大使用期限
密码警告时间段
密码禁用期
账户过期日期
保留字段:保留供将来使用
/etc/group:Group_name:password:GID:user_list
User_list:该组的用户成员:以此组为附加组的用户的用户列表。
二、
Linux用户和组管理
1、groupadd命令:添加组
Groupadd [opition] group-name
系统用户不用登陆,进程一某个普通用户的身份运行,
进程对文件的访问权限,取决于发起此进程的用户的权限
为了能够让后台进程或服务类进程以非管理员的身份进行,通常需要为此创建多个普通用户,这类用户不用登陆系统
groupadd命令:添加组 groupadd [选项] group_name
-g GID :指定GID:默认是上一个组的GID+1;
-r :创建系统组;
2、groupmod命令:修改组属性
groupmod [选项] GROUP
-g GID
-n new_name
3、 groupdel命令:删除组
1、useradd命令:创建用户
useradd [选项] 登录名
-u,--uid UID :指定UID;
-g,--gid GROUP1[,GROUP2,…[,GROUPN]]]:指明用户所属的附加组,多个组用“,”隔开
-c,--comment COMMENT:指明注释信息
-d,--home HOME_DIR:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;
-s,--shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件;
-r,--system:创建系统用户;
-m,如果不存在,则创建用户主目录。骨架目录中的文件和目录(可以使用-k选项指定),将会复制主目录。默认上,如果没有指定此选项并且CREATE_HOME没有启用,不会创建主目录。
-M:不创建主目录,即使系统在 /etc/login.defs 中的设置(CREATE_HOME)为yes。
-f:密码过期后,账户被彻底禁用之前的天数。0表示立即禁用,-1表示禁用这个功能。如果未指定,useradd将使用 /etc/default/useradd中的INACTIVE指定的默认禁用周期,或者默认为-1.
注意:创建用户是的诸多默认设定文件为/etc/login.defs
useradd -D:显示创建用户的默认配置。
useradd -D 选项:修改默认选项的值。
修改的结果保存于/etc/default/useradd文件中;
2、usermod命令
usermod [选项] 登录
-u,--uid UID:修改用户的的ID为此处指定的新UID;
-g,--gid GROUP:修改用户所属的基本组;
-G,--group1[,GROUP2,…[,GROUPN]]]:修改用户所属的附加组,原来的附加组会被覆盖
-a,--append:与-G一同使用,用于为用户追加新的附加组;
-c,--comment COMMENT:修改注释信息:
-d,--home HOME_DIR:修改用户的家目录,用户原来的文件不会被转移至新位置
-m,--move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录
-l,--login NEW_LOGIN:修改用户名
-s,--shell SHELL:修改用户的默认shell;
-L,--lock:锁定用户密码,即在用户原来的妈妈字符串之前添加一个“!”
-U,--unlock:解锁用户的密码
3、userdel
userdel [选项] 登录
-r:删除用户时一并删除其家目录;
1、passwd命令:
Pass [-k] [-l] [-u] [-f] [-d][-e] [-n mindays] [-x maxdays] [-w warndays] [-I inactivedays] [-S] [--stdin] [username]
(1) passwd:修改用户自己的密码;(2)passwd USERNAME:修改指定用户的密码,但仅root由此权限;
-l,-u :锁定和解锁用户,
-d,清除用户密码
-e DATE:过期期限,日期
-i DAYS:非活动期限
-n DAYS密码的最短使用期限
-x DAYS:密码的最长使用期限;
-w DAYS:警告期限
-- stdin:标准输入 echo "PASSWORD" | passwd --stdin USERNAME
2、gpasswd命令
gpasswd [option] group
-a USERNAME 向组中添加用户
-d USERNAME 从组中删除用户
newgrp 命令:登录到一个新组
newgrp [-] [group]
-:会模拟用户重新登录以实现重新初始化其工作环境。
chage [选项] 登录名
-d:
-d, --lastdayLAST_DAY
Set the number of days since January 1st, 1970 when the password was last changed. The date may also be expressed in the format YYYY-MM-DD (or the format more commonly used in your area).
-E:
-E, --expiredateEXPIRE_DATE
Set the date or number of days since January 1, 1970 on which the user‘s account will no longer be accessible. The date may also be expressed in the format YYYY-MM-DD (or the format more commonly used in your area). A user whose account is locked must
contact the system administrator before being able to use the system again.
EXPIRE_DATE 设置为 -1 会移除账户的过期日期。
-W:
-W, --warndaysWARN_DAYS
Set the number of days of warning before a password change is required. The WARN_DAYS option is the number of days prior to the password expiring that a user will be warned his/her password is about to expire.
如果没有选择任何选项,chage 会进入交互模式,以所有字段的当前值提示用户。输入一个新值可以更改这些字段,或者留空使用当前值。当前值出现在 [ ] 标记对里。
-m:
-m, --mindaysMIN_DAYS
在密码更改之间的最小天数设置为 MIN_DAYS。此字段中的 0值表示用户可以在任何时间更改其密码。
-M:
-M, --maxdaysMAX_DAYS
Set the maximum number of days during which a password is valid. When MAX_DAYS plus LAST_DAY is less than the current day, the user will be required to change his/her password before being able to use his/her account. This occurrence can be planned for
in advance by use of the -W option, which provides the user with advance warning.
id命令:显示用户的有效id ,
id [option] … [USER]
id -g 基本组ID
id -u 仅显示用户的基本组ID;
id -G 仅显示用户所属的所有组的ID;
id -n 显示名字而非ID
Su命令:switch user
登录式切换:会通过重新读取目标用户的配置文件来重新初始化
su - USERNAME
su -l USERNAME
非登录式切换:不会读取目标用户的配置文件进行初始化
su USERNAME
注意:管理员可无密码切换至其他任何用户;
-c ‘COMMAND‘:仅以指定用户的身份运行此处指定的命令
其他几个命令:
chsh - change your login shell,用法:chsh [-s shell] [-l] [-u] [-v] [username]
chfn - change your finger information,用法:
chfn [-f full-name] [-o office] ,RB [ -p office-phone] [-h home-phone] -u] [-v]
[username]
finger(yum install finger )
pwck - 检查密码文件的完整性 用法: pwck [选项] [passwd [ shadow ]]
grpck - 检查组文件的完整性 用法:grpck [选项] [group [ shadow ]]
命令总结:groupadd,groupmod,groupdel,useradd,usermod, userdel passwd,gpasswd,newgrp,id,su,chage
原文地址:http://yzxyaow.blog.51cto.com/10744344/1723047