Shell的安全与权限
总结自《LINUX与UNIX SHELL编程指南》
概述
文件的访问方式
- 读r:显示该文件的内容
- 写w:编辑,删除文件
- 执行x:对于一个shell脚本或者程序
权限
- 文件的属主
- 同组的用户
- 其他用户,不属于该文件用户组的某一用户
文件
系统保存的文件的相关信息
位置,类型,长度,拥有的用户可访问的用户,i节点,修改时间,权限位
显示命令
ls -l
显示内容格式:类型-权限,硬连接数目,属主,属主所在的组,文件长度(单位Byte),更新时间,文件名
-rw-r--r-- 1 xkaneiki staff 0 2 17 00:11 hello.txt
类型-权限:-rwxr-xr-x
- -:文件类型
- rwx:文件的属主的权限
- r-x:同组其他用户的权限
- r-x:其他用户的权限
类型:
- -:普通文件,不属于以下文件的文件
- l:符号连接文件指向(指向另一个文件)
- d:目录
- s:套接字文件
- b:块设备文件
- c:字符设备文件
- p:命令管道文件
权限
权限的种类
- r:写
- w:读
- x:执行
改变权限
chmod命令符号模式
chmod [who] operator [permission] filename
# who的含义
# u 文件属主
# g 同组的其他用户
# o 表示其他用户
# operator的含义
# +/- 增加减少权限
# = 设定权限
# permission
# r,w,x
chmod命令相对模式
chmod [mode] file
# mode是一个**八进制数**
# 0400:文件属主可读
# 0200:文件属主可写
# 0100:文件属主可执行
# 0040:同组用户可读
# 0020:同组用户可写
# 0010:同组用户可执行
# 0004:其他用户可读
# 0002:其他用户可写
# 0001:其他用户可执行
- R 选项连同子目录下的文件一起设置:
chmod -R 664 /usr/local/home/dave/*
目录
目录对应的权限的共能和文件并不相同
- r:可以列出其中内容
- w:可以在目录中创建文件
- x:可以搜索和访问该目录
suid/guid
描述
suid:执行脚本时拥有属主的权限
guid:执行脚本时拥有该文件所属的组的权限
设置方法
符号命令
#suid
chmod u+s filename
#guid
chmod g+s filename
相对命令
# 4+权限位:suid
chmod 4777 filename
# 2+权限位:guid
chmod 2777 filename
# 6(4+2)+权限位
chmod 6777 filename
chown/chgrp
这两条命令都等同于如下命令
chmod -R -h owner file
# -R 对所有子目录进行操作
# -h 表示改变符号连接的文件属主时,不改变所指向的文件
umask
描述
若用户创建一个文件,则文件的默认访问权限为 -rw-rw-rw-(666) ,创建目录的默认权限 drwxrwxrwx(777) ,而umask值则表明了需要从默认权限中去掉哪些权限来成为最终的默认权限值。
命令
umask # 显示umask
umask nnn # 设置系统的umask为nnn
# 当创建文件时默认的权限为666-nnn
# 当创建目录时默认的权限为777-nnn
符号连接(软连接)
ln [-s] source_path target_path
# source_path源文件地址
# target_path连接文件地址
ln -s /usr/opt/monitor/regstar/reg.log /var/adm/logs/monitor.log
# 把monitor指向reg