目录
权限的概念
- rw- r-- r-- abc.txt
所属用户权限 所属组权限 其他用户权限
三个权限位
r(4) : 读
w(2) : 写
x(1) : 可执行
权限的归属
u : 代表着自己
g : 代表着组
o : 代表着其他人
权限的设置(chmod)
# 自己和所属组拥有可读可写权限,其他人拥有可读权限。
rw- rw- r--
rw-rw-r-- 7 = 4 + 2 + 1
chmod 664 文件名称
权限对⽂件or⽬录的意义
探讨权限对文件及目录的意义
探讨权限对目录下文件可读的影响
[root@localhost ~]# su - test1
Last login: Mon Mar 15 15:25:08 CST 2021 on pts/1
[test1@localhost ~]$ ls -l /a/
ls: cannot open directory /a/: Permission denied
[test1@localhost ~]$ ls -l /a/b
ls: cannot access /a/b: Permission denied
[test1@localhost ~]$ ls -l /a/b/c
ls: cannot access /a/b/c: Permission denied
[test1@localhost ~]$ ls -l /a/b/c/abc.txt
ls: cannot access /a/b/c/abc.txt: Permission denied
# 1、在目录下,只有可读权限,无法查看文件内容(因为你无法操作目录)
# 2、在目录下,只有可读可写权限,无法查看文件内容(理由同上)
# 1、要想查看文件夹下的文件,文件夹必须至少拥有可执行权限;同时文件必须拥有可读权限.
文件夹至少是 1
文件也至少是 4
探讨权限对目录下文件可编辑的影响
# vim mv rm
# 要想目录下的文件可以被编辑,目录必须拥有可执行权限同时目录下的文件必须拥有可读可写权限。
文件夹至少是 1
文件至少是 6
探讨权限对目录下的文件的可执行的影响
# 要想目录下的文件可以被执行,目录及文件都必须拥有可执行权限且文件同时还要有可读权限。
文件夹和文件至少是 1
文件至少是 4
权限之特殊权限
SUID
- 作用对象必须是二进制文件(cat出来是乱码的文件)
- 该文件必须拥有可执行权限
chmod 4xxx [文件名]
or
chmod u+s [文件名]
SBIT
- 只对目录有效,用来阻止非文件的所有者删除文件,比较常见的就是/tmp目录
chmod o+t [文件名]
or
chmod 1xxx [文件名]
SGID
- 用户对某一目录具有写和执行权限,用户就可以在该目录下建立文件,如果该目录被SGID修饰,则该用户在这个目录下建立的文件都是属于这个目录所属的组
chmod g+s [文件名]
or
chmod 2xxx [文件名]
Umask
新建的文件、目录的默认权限是由umask决定的
在Linux中,目录的默认权限为777,文件的默认权限为666。
⽂件权限计算⽅法:偶数位直接相减,奇数位相减后加1
⽬录权限计算⽅法:直接相减即可
总结:umask设置的越小,权限就越大,慎用
临时设置umask
[root@localhost ~]# umask 000 //设置umask权限
永久设置umask
#更改配置文件
[root@localhost tmp]# vim /etc/profile # 或者/etc/bashrc内容⼀样
......
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002 //表示uid⼤于等于199的默认umask值,表示普通⽤户
else
umask 022 //表示uid⼩于199的默认umask值,表示root
fi
文件的输入与输出
输入内容到文件和输出内容到文件
追加和覆盖
-
> : 覆盖内容
覆盖符号是将文件内容清空,之后在将新的内容写入文件。
-
>> : 追加内容
# 在文件的末尾追加内容 [root@localhost ~]# echo "String" >> abc.txt [root@localhost ~]# cat abc.txt String [root@localhost ~]# echo "String" >> abc.txt [root@localhost ~]# cat abc.txt String String [root@localhost ~]#
-
Linux中:
0代表标准输入
1代表标准正确输出
2代表标准错误输出
-
将正确输出与错误输出都输出在一个文件上