一:知识背景
linux\unix本身就是由无数个文件组成的系统,允许多个用户进行同时登录进行操作,这个时候文件的权限和安全就极为重要,互联网安全红线和隐私永远是重点关注的地方。
本次笔记内
1. 文件和目录的权限介绍
2. chmod\chown\chgrp
3.suid\guid\umask
4.符号连接
二:干货
2.1 文件的目录以及权限
以这个文件为例
total 20500:是该目录所有文件占用空间,没有options就是以byte为单位
首字母是文件类型:
d 目录:大概就是dictionnary的缩写,
l 符号链接:这个在后面详细写下
s 套接字文件 :我们平常以mysql和mysql -uuser -p password就是以socket链接,就是上图的msyql.sock,本地登录。或者以tcp链接(mysql -h ip -u -p)
- 就是大家熟悉的普通文件
-c 字符设备文件 -b block 块设备文件 -p 命名管道文件
文件权限:
rwx rwx rwx 分别对应的就是 对应的 read write execute 读写执行的权限
mysql mysql 就是对应这个文件的所有者(user)和 所属群组(group),属主和属组
4096 文件大小
DEC 12 16 就是文件修改的最后日期
mysql.sock就是文件名称
2.2修改文件权限:
method1:
chmod 【who】operation permission filename
who:u:user属主 g:group属组,同组用户 o:other 其他用户
opration:加减权限 + -
permission:权限,r w x
实例:chomd u+x mysql.sock,增加mysql属主的执行权限
method2:
第二种方法被称为绝对值法 也是大家最多使用的方法
rwx rwx rwx ,9位权限位 有就代表为1 ,没有就是为0,以二进制的形式去表达 rwx r-- rwx 就是740,rwx rwx rwx 就是777
这个就是为什么大家称为 r为4 w为2 x为1的原因,还有博客喜欢用八进制表达,道理大概差不多
实例:chmod 777 mysql.sock 就是赋予mysql.scok文件 rwx rwx rwx的权限
method3:
chown 改变属主
chown username filename
实例:chown linux mysql msyql文件的属主就是linux
chown user:group filename 可以同时改变属主和属组
chowm root:root mysql 可以同时修改mysql文件的属主和属组
chown的多功能性导致chgrp命令的很少使用
chgrp groupname filename ,语法也是大概差不多
-R 这个选项很实用,能够是赋权目录下面所有子目录文件权限发生改变,但是确实要谨慎使用
2.4 umask\suid\sgid
umask:使用touch/mkdir创建目录属主和属组和创建用户一致,但是权限就是和umake相关
大家看到这里,UID= id -ur (配置文件定义的,没有截图出来)显示用户的id ,判断是否大于199,id越小权限越大,root的权限为0,那么 rmask为 002,大于199判断 group id和 user id 是否相同,一致就为002,不一致就是022
用户的umask 在/etc/profile可以看到,不同用户的umask值标识创建用户的缺省权限,也可以在/etc/passwd查看用户的权限
suid/sgid 全称set user id
suid意味着如果某个用户对属于自己的 s h e l l脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限。于是,如果根用户的某一个脚本设置了这样的权限,
那么其他普通用户在执行它的期间也同样具有根用户的权限。同样的原则也适用于 sgid执行相应脚本的用户将具有该文件所属用户组中用户的权限
比如大家都知道的ping命令 基于icmp协议的网络报文,权限位就是rws ,所以在任何用户都可以使用ping探测网络互通性
这么好权限位如何设置,suid是在相应的权限位前一位设置为4,sgid同理为2,并且s将会出现在x的位置上面,记住:在设置 suid或sgid的同时,相应的
执行权限位必须要被设置。例如,如果希望设置sgid,那么必须要让该用户组具有执行权限。
2.5 符号链接:分为硬连接和软链接,硬连接有无法给目录创建和必须同一系统超级管理员的限制而较少使用
在上一篇博文linux安装mysql数据库中间就出现过
语法: ln -s sourcefile softlink_file ,在对符号链接操作时候,转换为自动对源文件操作。删除软链接不会删除源文件,只会中断之间的关系 rm softlink_file
linux根目录bin目录就是指向/usr/bin,/bin文件为软链接文件