权限
-rw-r--r-- 644
-rwxrwxrwx
属主
属组
其他用户
r 可读
w 可写
x 可执行
- 没有权限
r 4
w 2
x 1
- 0
chmod u + w test.txt 加w权限
chmod u - w test.txt 减w权限
chmod u = rwx test.txt
u 属主
g 属组
o 其他用户
a 所有用户
chmod 644 test.txt 通过数字设置权限
chmod -R 700 test 递归修改权限,针对目录及目录下的所有内容
权限对文件的影响
只有r权限,只能查看文件,其他的不能操作
只有w权限,不能使用vim命令进行修改,如果强制修改,会把源文件内容覆盖掉,只能追加
w权限需要r权限进行配合,不要给文件单独的w权限
只有x权限,什么都不能操作,需要r权限配合使用,rx
正常设置权限:
r
rw
rx
rwx
权限对目录的影响
r 是否能够查看目录下的列表,如果只有r权限,无法查看目录下文件的属性信息,只能以?表示
w 是否能够对目录下的文件进行删除,移动等操作
x 是否能够进入该目录
r权限需要x权限的配合,可以正常查看目录列表
w权限需要x权限的配合,可以删除,新建文件的权限,如果要移动,需要有对目标目录的wx权限
x权限只能进入目录,其他的操作都不能执行
正常权限设置为:
rx
rw
rwx
属主和属组的修改
chown 修改属主和属组
-R 递归修改
chgrp 只能修改属组
权限控制位
umask 控制权限,默认值是022
计算权限位
umask的默认权限位022,目录的最大权限位 是777,系统默认创建的目录是最大权限减去umask的权限,得出结果就是755,文件的最大权限是666,减去之后就是644,如果文件的权限位遇到奇数,奇数位加1
umask 033 临时修改,如果要永久修改,就要修改文件/etc/profile
特殊权限(特别危险)
setuid 执行命令的时候,相当于这个命令的所有者(属主)
权限位是4位,第一位如果是数字4,则表示该文件有setuid的权限
S和s的区别:
主要看文件的属主的x权限,如果属主有x权限,就是s,没有就是S,功能上面没有区别
setgid 共享目录,让所有用户在一个目录下面创建的所有文件属组都是固定一个组
chown -R .setgid /opt 修改属组为setgid
chmod g+s /opt 设置setgid权限,让所有用户在一个目录下面创建的所有文件属组都是setgid
sticky 粘滞位,让所有用户在一个目录,只能管理自己的文件
chmod 777 /data
chmod o+t /data
特殊属性
a 只能对文件进行追加的操作,其他的没有权限,可读,可以cp
lsattr test.log 查看特殊属性
chattr +a test.log 添加特殊属性
chattr -a test.log 删除特殊属性
i 只能查看和cp,其他的操作不允许
输入和输出
重定向
三个文件
ll /dev/std*
类型 | 用途 | |
标准覆盖输出重定向 | > | 将程序输出的正确结果输出到指定的文件中,会覆盖文件原有的内容 |
标准追加输出重定 | >> | 将程序输出的正确结果以追加的方式输出到指定文件,不会覆盖原有文件 |
错误覆盖输出重定向 | 2> | 将程序的错误结果输出到执行的文件中,会覆盖文件原有的内容 |
错误追加输出重定向 | 2>> | 将程序输出的错误结果以追加的方式输出到指定文件,不会覆盖原有文件 |
标准输入重定向 | < | 将命令中接收输入的途径由默认的键盘更改为指定的文件或命令 |
标识符限定输入重定向 | << | 命令从标准输入中读入内容,直到遇到“标识符”分解符为止 |
管道
管道操作符号 "|" ,主要用来连接左右两个命令, 将左侧的命令的标准输出, 交给右侧命令的标准输入
PS: 无法传递标准错误输出至后者命令
管道中tee技术
选项
-a 追加
tee和重定向的区别