一、文件权限详细介绍
1.文件数据权限知识介绍:r w -
普通文件:
r:可以查看文件真实数据信息
w:可以编辑修改文件真实内容
x:文件可以直接执行使用
结论:
1)root用户可以随意查看或者编辑文件信息,但是如果想执行文件,需要具有执行权限设置
2)对于普通文件读权限是最重要的,只有具有读权限,文件才能正常的编辑以及执行
目录文件:
r:可以查看目录下面有什么数据内容
w:可以删除或添加或重命名目录下面的数据内容
x:可以进入到目录中
结论:
1)root用户对于目录文件可以随意做任何操作
2)对于目录文件执行权限最重要,只有具有执行权限,目录文件才能正常查看数据信息以及在目录中做创建删除文件操作
2.文件数据调整方式介绍:
chmod --- 修改用户权限
针对指定用户修改权限:
chmod o+r/o-r/o=r #o--other ,对其他用户添加 /取消 /设置权限信息
chmod u+r/u-r/u=r #o--other ,对属主用户添加 /取消 /设置权限信息
chmod g+r/g-r/g=r #o--other ,对属组用户添加 /取消 /设置权限信息
实现批量修改用户权限
chmod a+r /a-r/ a=r #a--all ,对所有用户添加 /取消 /设置权限信息
chmod 760 /etc/shadow
chmod -R #对目录本身以及目录下面所有数据进行递归修改
chown
修改文件属主信息:
chown ytt /etc/shadow #单独修改文件属主信息
修改文件属组信息:
chown .ytt /etc/shadow #单独修改文件属组信息
chown ytt.ytt /etc/shadow #同时修改文件数主和属组信息
chown -R
命令补充
find -inum "xxxxx" #xxxx表示inode编号 根据文件inode编号查找数据
find -perm ??? #???表示数字权限 根据文件权限查找数据
ln --- 用于创建链接文件
ln 源文件 链接文件 #创建硬链接 不能跨分区创建硬链接
ln -s 源文件 链接文件 #创建软链接
二、用户权限
1.用户权限知识介绍:
权限计算方法:
系统创建文件或目录的默认权限:
文件默认权限:644
目录默认权限:755
umask:用于设置权限计算参考值
文件:666 - umask = 666 -022 = 644 偶数运算
文件:666 - umask = 666 -033 = 633 + 1 = 644 奇数运算
目录:777 - umask = 777 - 022 = 755 没有奇偶运算区别
2.用户相关命令介绍 useradd
usermod
passwd
id
w
(1)添加/删除用户 useradd
userdel
张三 运维部门 sa_zhangsan sa组
李四 开发部门 dev_lisi dev组
王五 数据库部门 db_wangwu db组
john 全才 sa_john sa组 dev db
groupadd #提前创建指定的用户组
-g --- 指定用户组gid数值
useradd #添加用户
-g --- 指定用户属于那个特定组(主要组)
-G --- 指定用户属于哪个特定组(附属组)
-u --- 指定用户编号信息(uid)
-c --- 指定用户描述信息
-M --- 不创建家目录
-s --- 指定用户登录方式
用户登录系统设置方式:
能登录 :/bin/bash
不能登录:/sbin/nologin
用户和组的关系:
1对1关系:一个用户属于一个组
1对多关系:一个用户属于多个组
n对1关系:多个用于属于一个组
n对n关系:多个用户属于多个组
userdel #删除指定用户
-r --- 彻底删除用户所用信息
w #显示当前登录系统用户信息
踢除指定用户:
历程一:查看已连接用户的ssh会话进程id信息
ps -ef|grep ssh
历程二:停止指定用户得会话进程(等价于踢除指定用户)
kill 进程编号
(2)修改用户密码信息 passwd
交互设置密码:
passwd 用户名
普通用户设置修改密码有复杂度要求:
1)长度不能小于8位
2)密码需要有字符组合
非交互设置密码:
echo 654321|passwd --stdin sa_zhangsan
=============================================================
01.如何创建多个用户 oldboy01 oldboy02 oldboy03 并且每个用户密码信息为123456 通过一条命令创建出来?(较难)
单个用户创建并设置密码:
useradd ytt01 ; echo 123456|passwd --stdin ytt01
如何创建多个用户 ytt01 zhangsan02 lisi03 并且每个用户密码信息位123456 通过一条命令创建出来?(暂缓)
(3)修改已有用户设置信息:usermod
usermod #修改用户信息
-g --- 指定用户属于那个特定组(主要组)
-G --- 指定用户属于哪个特定组(附属组)
-u --- 指定用户编号信息(uid)
-c --- 指定用户描述信息
-M --- 不创建家目录
-s --- 指定用户登录方式
用户登录系统设置方式:
能登录 :/bin/bash
不能登录:/sbin/nologin
3.用户相关文件或目录了解
/etc/passwd --- 记录系统中所有用户信息
/etc/shadow --- 记录系统用户密码信息
/etc/group --- 记录系统用户组信息
/etc/gshadow --- 记录系统用户组密码信息
/etc/skel/ --- 保存用户家目录模板文件信息(样本间)
useradd 用户:
创建家目录 --- 类似经历了 cp /etc/skel/* /home/用户/
-bash-4.2$ --- 命令提示符出现此种情况,表示家目录被毁了
恢复方式:
cp /etc/skel/.b* ~/
.bash_logout 相对于 /etc/rc.local
命令补充:
history #查看输入的历史命令
-c #清除历史命令记录信息
-w #将内存中记录的历史命令信息立即保存到历史命令文件中
su #进行用户之间的切换
ps # 查看系统进程
-ef #显示更全系统进程信息
kill #杀进程命令
kill pid(进程编号)
kill -9 pid(进程编号) #强制杀死某进程(尽量不要用 慎用!)
系统特殊符号:
* --- 匹配符号 匹配任意字符信息(根据文件名称查找文件时)
.* --- 匹配符号 匹配任意字符信息(根据文件内容查找文件信息时)
引号符号区别:
"" 可以解析识别特殊符号信息 $ '' () 信息中有空格符号时需要构成一个整体时
'' 所见即所得
反引号 在引号里面放入命令信息,将引号里面的命令结果交给引号外面命令再次进行处理识别
没有引号 基本上没有引号和有双引号作用相同,需要输出序列信息时,不能加双引号
4.用户权限提权设置
概念解释:将root用户具有的能力可以分配给指定的用户进行使用
用户提权步骤:
第一个历程:设置指定用户的特殊权限
visudo --- 切换到92行 == vi /etc/sudoers
92行 root ALL=(ALL) ALL
sa_zhangsang ALL=(ALL) /bin/vim /etc/hosts, /bin/touch /etc/*
1):指定授予特殊权限用户信息
2):可以实现权限设置集中管理
3):具体赋予特殊权限信息
运维人员 zhangsa 可以随意管理所有主机
开发人员 lisi 网站服务器(网站代码信息-前端开发)
数据库人员 wangwu 数据库服务器 存储服务器 监控服务器
zhangsan --> 网站服务器-10.0.0.7 zhangsan --- 管理主机 /etc/ /var/ /opt/
数据库服务器-10.0.0.51
存储服务器-10.0.0.31 ---> 权限集中管理服务器(jumpserver)
备份服务器-10.0.0.41
监控服务器-10.0.0.51
第二个历程:行使赋予的特权
查询确认是否有特权设置:
sudo -l
测试特权功能:
sudo touch /etc/ytt.txt --- 使用特权命令需要加上sudo
用户提权操作的扩展说明:
(1)如何在使用特权时不用输入密码:
sa_zhangsang ALL=(ALL) NOPASSWD: /bin/vim /etc/hosts, /bin/touch /etc/*
(2)危险权力的排除操作:
sa_zhangsang ALL=(ALL) NOPASSWD: /bin/vim /etc/hosts, !/bin/vim/etc/sudoers, /bin/touch /etc/*
(3)系统内置命令特权操作是不能赋予其他用户的
5.系统的特殊权限设置
(1)特殊权限位介绍 9+3 = 12位权限
setuid 权限位(属主位设置):对命令文件设置特殊权限,让普通用户具有命令文件属主执行能力
chmod u+s 命令文件 s=4
setgid 权限位(属组位设置):对命令文件设置特殊权限,让普通用户具有命令文件属组执行能力
chmod g+s 命令文件 s=2
sticky 权限位(其他用户位设置):粘滞位
可以在系统中设置一个共享存储目录,目录中的数据可以互相查看,但是只能文件所有者进行编写和删除操作,不能被其他用户管理
chmod o+t 目录信息 t=1
(2)文件数据上锁权限设置
文件被上锁设置后,系统中所有用户(包含root)都不能对文件进行编辑修改
给文件加上锁权限:
chattr +i /etc/hosts
查看文件是否上锁:
lsattr /etc/hosts
给文件解锁操作过程:
chattr -i /etc/hosts
作用:将重要文件数据信息进行上锁保护
(3)给文件数据权限设置访问控制列表
作用:一个数据文件可以被多个指定用户进行管理 可以被多个指定用户组进行管理
getfcal:查看文件访问控制列表信息
setfacl -m user:ytt:rw- /etc/hosts
setfacl -m group:ytt:rw- /etc/hosts