用户和组:
实现资源分派的核心要素;
组:容器:用户
权限
类别:管理员
普通用户
User ID = UID
Group ID = GID
名称解析
文本文件
关系型数据库
密码:口令 认证机制
authorization: 授权
audit:审计 记录日志
id:
管理员:0
系统用户:1-499 cent7 1-999
普通用户:500+ cent7 1000+
登录:交互式访问
权限:
r
w
x
文件:
r:查看文件内容
w:修改文件内容
x:可以发起为进程
目录:
r:可使用ls命令查看目录中的文件名列表
w:可以在目录中创建或删除文件
x:可以cd到此目录中,以及使用ls -l显示文件的元数据信息
用户访问文件时的权限匹配模型:
1.检查运行此程序的属主是否与其正在访问的文件的属主相同?
如果相同则以属主的权限访问;
2.检查运行此进程的属主是否属于此文件的属组,如果是,则以属组的权限访问;
3.以其他用户的身份访问;
用户管理:
/etc/passwd:用户的账号信息
/etc/shadow:用户密码和相关的账户信息
/etc/group:组的账号信息
/etc/gshaow:组的密码
passwd: 用户名:密码占位符:UID:GID:注释信息:家目录:默认shell
shadow:用户名:密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期限:非活动期限:账号过期期限:保留字段
# 非活动期限登录就要改密码
最短使用期限是天数
最近修改是相对计时法
过期期限是固定日期
group: 组名:组密码占位符:GID:以逗号分隔属于此组的用户列表(以之做为额外组)
useradd:
-u:指定UID
-g:指定所属的基本组
-G:所属的附加组
-c:注释信息
-d:指定家目录,如果此目录事先存在,会有警告信息;
-s:必须是/etc/shells文件中存在的shell
-m:强制给用户创建家目录
-M:不给用户创建家目录
-r:创建系统用户
groupadd:
-g :指定GID
-r:创建系统组
passwd:
普通用户只能修改自己的密码
管理员:passwd [username]
密码复杂度策略:
数字,小写 大写字母和特殊字符至少三类
最短5位
定期修改 不使用容易猜测密码
密码复杂度对管理员无效
stdin:标准输入
echo ‘redhat’ | passwd –stdin username &>/dev/null :通过标准输入修改密码
加密方式:
对称加密:加密和解密使用同一个密钥
密钥分发困难
公钥加密:加密和解密使用一对儿密钥
公钥:公开的
私钥:保密的
单项加密:提取数据的唯一的特征码
1.定长输出
2.不可逆
3.雪崩效应
数字签名
md5:128bit sha1:160bits
CA:证书颁发机构
passwd:
-l:锁定用户
-u:解锁
-d:删除密码 管理员可用
-n:最短使用期限
-x:最大使用期限
-w:提前多少天开始警告
-i:非活动期限
--stdin:从标准输入接收用户密码;echo ‘centos’ | passwd --stdin user1 &>/dev/null
userdel:
-r:删除家目录
groupdel: 删除组
usermod:
-u:修改uid
-g:修改基本组
-G:… 修改附加组 通常与-a一起使用以追加方式
usermod -G GROUP1 GROUP2 USERNAME
-d:修改家目录的位置,同时使用-m选项可保证创建家目录 并将用户原有的文件移动至新的家目录中
-c:修改注释信息
-s: 修改SHELL
-l:修改username
-L:锁定用户
-U:解锁
-r YYYY-MM-DD 指定帐号过期日期
-f 设定非活动期限天数
-e 指定账号过期日期 YYYY-MM-DD
chsh:修改SHELL
chfn:修改注释信息
chage:
-m:密码最短使用天数,为0随时都可以改
-M:密码最长使用天数
-W:密码到期前,提前收到警告信息的天数
-E:账号到期的日期 时间格式 月/日/年 10/20/2012
-d:上一次更改的日期
-I:非活动期限
-l:列出当前的设置,由非特权用户来确定他们的密码或账号何时过期
查看用户信息:
id:查看ID 组信息 基本组(附加组)
id -g:显示基本组id,加n显示名称
id -G:显示所有组id,加n显示名称
id -un:显示用户名
finger:显示用户信息
w
who
whoami
切换用户:
su -l:完全切换,l可省略
-c ‘COMMAND’仅以指定用户运行命令,并取回结果;su – user1 -c ‘COMMAND’
修改组:
groupmod
-g:修改gid
-n:修改组名
groupdel 删除组
给组设定密码:
gpasswd GROUPNAME
gpasswd [OPT] GROUP
-a username :添加用户列表到指定组中;
-A username :设置有管理权限的用户列表;
newgrp:临时切换基本组 ,如果原来不属于附加组则需要输组密码
pwck 检查用户完整性;
linux权限 安全模型:
rwx:111 7 读写执行
rw-:110 6 读写
r-x:101 5 读执行
r--:100 4 读
-wx:011 3 写执行
-w-:010 2 写
--x:001 1 执行
---:000 0 无
chmod:
操作三类用户的权限,使用八进制,不能省略没有权限位补零
操作指定类别使用者的权限:
u:属主
g:属组
o:其他
a:all
指定一个或多个类别=mode
chmod u=rw
chmod g=r
操作指定类别的使用者权限位:+/-
chmod u+x
chmod +w 注意:不加a只会修改属主的权限
–reference= :参考一个文件的权限去修改另一个文件
-R:对目录递归修改 -R mod dir
chown:修改属主也能修改属组
[–reference=] user file… 参考一个文件
-R 递归
chown :group file 只修改属组
chown user: file 只修改属主
chown user:group file 同时修改属主 属组
chgrp:[–reference=] user file… 参考一个文件
-R 递归
umask:
文件:666-umask
目录:777-umask
注意:若文件使用666-umask的结果中存在执行权限,则对应的权限会被加1后作用生效的权限
安全上下文:
cat –> /bin/cat
s: suid, set uid,属主有s权限,意味着用户在执行此程序时,其进程的属主不再是发起者本人,而是这个程序文件的属主;
s:属主原有执行权限
S:属主无执行权限
chmod u+|-s /path/to/somefile
chmod 4644 /path/to/somefile
s: sgid, set gid,属组有s权限,意味着执行此程序时,其进程的属组不再是运行者本人所属的基本组,而是此程序文件的属组;
chmod g+|-s /path/to/somefile
t: sticky, 粘贴位,附加other的权限上,表现为t
t:
T:
chmod o+|-t /path/to/somefile
u:s
g:s
o:t
suid,sgid,sticky
000
ugt: 001
010
100
011
101
110: 6
111
chmod 6664 /tmp/a.txt
umask: 0022
/tmp/test
chmod g+s,o+t /tmp/test
775
chmod 3775 /tmp/test
chown :mygrp /tmp/test
FACL: 文件访问控制列表
hadoop: /var/tmp/test.txt
hadoop, hadoop
664: 其它,只读
hadoop希望能够让hive写此文件,他该如何进行?只能修改other的权限有写权限;
acl: 用于实现在原有的访问控制机制之外补充一种文件访问控制机制
用户访问文件:
1、用户是否为文件属主?
2、用户是否有特定的访问控制条目?
3、用户是否属于文件属组?
4、用户所属的组是否有特定的访问控制条目?
5、其它。
getfacl /path/to/somewhere: 查看文件或目录的访问控制列表;
setfacl -m u:USERNAME:MODE FILE: 为USERNAME指定的用户设定对文件/path/to/somewhere具有MODE访问权限;
setfacl -m g:GROUPNAME:MODE FILE: 为GROUPNAME指定的组设定对文件/path/to/somewhere具有MODE访问权限;
-x:取消权限 不需要指定权限
setfacl -x u:USERNAME FILE
setfacl -x g:GROUPNAME FILE
额外挂载的文件系统默认不支持acl,如果要支持,
方法1:
mount -o acl DEVICE MOUNT_POINT
永久有效:需要编辑/etc/fstab,在挂载选项后附加acl选项;
方法2:设定分区的默认挂载选项中有acl,则挂载时无须再指定acl;
tune2fs -o acl DEVICE
取消此默认挂载选项:
tune2fs -o ^acl DEVICE
hadoop: 文件/var/tmp/hadoop.txt, 664
拒绝hive用户对此的任何访问;设置时权限位为空—
setfacl -m u:hive:— /var/tmp/hadoop.txt
浙公网安备 33010602011771号