Linux用户,组以及权限管理
基础概念和工作机制:
- 安全3A
资源分派
Authentication 认证
Authorization 授权
Accouting,Audition 审计
用户user ,用户有令牌 token, identity ,组:用户组,用户容
Linux中有存放用户名和密码的数据库,用户名和成对的密码判定用
是否登录成功。每个用户登录时都在数据库里验证用户名和密码是否正确,如果正确会颁发令牌,当用户访问文件时会提交令牌给资源,资源根据提交的令牌判断用户是否有权限访问此文件,用户要想得到最新令牌必须重新登录。 - Linux上的用户即Username/UID分为以下类别:
管理员:root,0
普通用户:1-65535
普通用户分为:系统用户和登录用户:
系统用户:1-499(Centos6) 1-999(Centos7)对守护进程获取资源进行权限分配。
登录用户:500+(Centos6) 1000+(Centos7)通过交互式方式登录。 - Linux组:Groupname/GID
管理员组:root,0
普通组:1-65535
普通组又分为系统组和非系统组,非系统组又叫做普通组
系统组:1-499(Centos6),1-999(Centos7)
非系统组:500+(Centos6),1000+(Centos7)
注:对于一个用户而言可以有多个不同的组,分别称之为用户的基本组(主组)和附加组;基本组组名和用户名相同,且仅包含一个用户,也叫做私有组。基本组以外的组属于用户的附件组(或者额外组 )
linux用户和组相关配置文件:
- /etc/passwd:名称解析库,该文件通过名称解析记录了用户及其属性信息
通过whatis passwd来查看其对应的配置文件的帮助信息
name:password:UID:GID:GECOS:directory:shell
用户名:密码:UID:GID:详细说明:用户的家目录:默认shell - /etc/group:组及其属性信息:
group_name:password:GID:user_list
组名:组密码:组ID:以当前组为附件组的用户列表(如有多个,用逗号隔开) - /etc/shadow:用户密码及其相关属性(9个字段)
login name:用户名
encrypted password:加了密的密码
date of last password change:最近一次修改密码的日期:从1970年1月1日起到密码最近一次被修改的时间 值为0第一次登录必须修改密码
minimum password age: 密码的最小使用期限:密码必须使用多长时间 值为0随时更改
maximum password age:密码的最大使用期限:密码可以使用多长时间(密码有效期),使用多少天后必须更改 99999永久有效
password warning period:密码的警告时间段:密码过期前几天提醒用户
password inactivity period:密码禁用期:密码过期后还可以使用几天
account expiration date:账户的过期日期:从1970年1月1日算起,多少天后帐号失效
reserved field:预留 -
密码的加密解密机制:
加密:明文-->密文
解密:密文-->明文
对称加密:加密和解密使用同一密码
非对称加密:加密和解密使用同一对密钥,密钥对:公钥,私钥
单向加密:只能加密,不能解密,提取数据特征码,相同算法定长输出,获得密文不可逆推出原始数据
雪崩效应:初始条件的微小改变,引起结果巨大改变密码用策略: 使用随机密码 最短长度不要低于8位 应该使用大写字母,小写字母,数字和标点符号四类字符中至少三类 定期更换 算法:md5,sha1,sha224,sha256,sha384,sha512
用户和组的相关命令:
1.groupadd:添加组 groupadd [options] group
-g GID:手动指定GID,默认是上一个组的GID+1
-r:创建系统组
安全上下文:进程以发起者的身份进行,进程对文件的访问权限,取决于发起此进程的用户权限
2.groupmod:修改组属性:groupmod [options] GROUP
-g GID:修改组ID
-n name:修改组名
3.groupdel:删除组 groupdel [options] GROUP
4.useradd:创建用户 useradd [options] LOGIN
-u,UID,指定uid
-g ,GROUP,指定基本组id,此组得事先存在
-G ,为用户指定附加组
-c,指明注释信息
-d:指明用户家目录:通过复制/etc/skel此目录并重命名实现,指定的家路径,如果事先存在,则不会为用户复制环境配置文件
[root@localhostCentos7 etc]# ls -al skel/
total 24
drwxr-xr-x. 3 root root 78 Aug 1 2018 .
drwxr-xr-x. 141 root root 8192 Jul 3 21:24 ..
-rw-r--r--. 1 root root 18 Aug 3 2017 .bash_logout
-rw-r--r--. 1 root root 193 Aug 3 2017 .bash_profile
-rw-r--r--. 1 root root 231 Aug 3 2017 .bashrc
drwxr-xr-x. 4 root root 39 Aug 1 2018 .mozilla
-s,--shell,指明用户默认shell,可用shell列表(/etc/shells):
[root@localhostCentos7 etc]# cat shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
-r,--system:创建系统用户
-D:显示创建用户的默认配置:
[root@localhostCentos7 etc]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
useradd -D [options]:修改默认值
注:创建用户时诸多默认设定配置文件/etc/login.defs,修改结果保存于/etc/default/useradd文件中
5.usermod:修改用户属性:usermod [options] LOGIN
-u UID:修改用户的ID
-g GROUP:修改用户所属的基本组
-G,:修改用户所属的附加组,原来的附加组会被覆盖
-a,与-G一同使用,用于为用户追加新的附件组
-c:修改注释信息
-d:修改用户的家目录,用户原来的文件不会被转移至新的家目录,若要移动,则要同时使用-m选项
-l,--login:修改用户名
-s,--shell:修改用户的默认shell
-L,--lock:锁定用户密码,即在用户原来的密码字符串之前添加一个“!”
-U,--unlock,解锁用户密码
6.userdel:用户删除用户:userdel [options] LOGIN
-r:删除用户家目录
7.passwd:修改用户自己的密码
passwd USERNAME:修改指定用户密码,仅root有权限
-L:锁定用户
-U:解锁用户
-d:清除用户密码
-e:过期期限,日期DATE
-i:非活动期限,DAYS
-n:密码的最短使用期限
-x:密码的最长使用期限
-w:密码的警告期限
--studin:标准输入
echo "password" | password --studin root &> /dev/null
8.gpasswd:用户切换基本组
gpasswd [option] group
-a user:将user添加指定组中
-d user:将user从指定组中国删除
-A userlist:设置有组管理权限的用户列表
9.newgrp:临时切换基本组:
如果用户本不属于此组,则需要组的密码
10.chage:修改用户密码属性
chage [options] LOGIN
-d LAST_DAY:修改用户最近一次修改密码的时间
-I INACTIVE:修改用户的非活动期限11.id:显示用户真实和有效ID
-u:仅显示有效的UID
-g:仅显示用户的基本组ID
-G:仅显示用户所属的所有组的ID
-n:显示名字而非ID
12.su:switch user
登录式切换:会通重新读取用户的配置文件来重新初始化
非登录式切换:不会读取目标用户配置文件进行初始化
登录式切换: su -, -l, --login
非登录式切换:su
注:管理员可无密码切换其他任何用户
-c "COMMAND":仅以指定用户的身份运行此处命令
文件权限管理:-
权限表示方法:
rwxrwxrwx:
左三位:定义ower权限,
中三位:定义group权限,
左三位:定义other权限
进程运行上下文:进程对文件的访问权限应用模型
进程的属主与文件的属主是否相同,如果相同则应用属主权限,否则,则检查进程的属主是否属于文件的属组,如果是,则应用属组权限,否则就只能应用other权限
权限:r:read读,w:write写,x:excute执行文件:r:可获取文件的数据 w:可修改文件的数据 x:可将此文件运行为进程 目录:r:可使用ls命令获取其下的所有文件列表 w:可修改此目录下的文件列表,即创建或删除文件 x:可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息 权限、二进制表示、八进制表示对应的表示方法: ---:000 0 --x:001 1 -w-:010 2 -wr:011 3 r--:100 4 r-x:101 5 rw-:110 6 rwx:111 7
2.文件权限修改命令:
chmod:文件权限修改:
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
-R:表示递归
MODE:
修改一类用户的所有权限:u=,g=,o=,ug=,a=
修改一类用户的某位或某些位权限:u+,u-
chmod [OPTION]... --reference=RFILE FILE...
参考RFILE文件的权限,将FILE的修改为同RFILE的权限
文件的属主和属组修改:chown,chgrp:
注:文件的属主属组仅root可以使用
修改文件的属主:chown
chown [OPTION]... [OWNER][:[GROUP]] FILE...有三种表示方法:
(1)OWNER:只修改属主
(2)OWNER,GROUP修改属主和属组
(3)GROUP:只修改属组
修改文件的属组:chgrp
-R:递归
文件或目录创建时的遮罩码:umask
所谓遮罩码是指在创建一个文件或目录时的默认权限:
文件:666-umask
注:之所以文件是666,是因为表示文件默认不能拥有执行权限,如果减得的结果存在x权限,则需要+1
目录:777-umask
umask命令:
umask:查看umask
umask UMASK:设定umask的值
注:此类设置仅对当前shell进程有效 -