1、Linux的文件类型
- 普通文件
d 目录
p 管道文件
l 软连接文件
c 字符设备文件
s socket文件
b 块设备文件
2、权限
Linux中含有三类用户:
文件拥有者u 本组用户g 其他用户a
每种用户都含有以下三种权限:
读r 写w 执行x
r: 控制是否能ls
W: 是否可以创建
x:是否可以cd
接下来让我们设置并测试一下权限:
- 首先创建一个文件:touch /tmp/test
查看权限:
ls -l test(查看文件权限)
echo “cal” > /tmp/test(将cal命令加入该文件下)
chmod o+x /tmp/test(改变其他用户执行的权限)
cd /tmp(进入目录)
./test(执行文件)修改权限:chmod 权限 文件
方法一:
chmod u /g/o/a +/-/= r/w/x (文件名)
u(文件拥有者) /g(本组用户)/o(其他用户)/a(所有人)
+(增加权限)/-(去除权限)/=(赋于权限)
r(读权限)/w(写权限)/x(执行权限)
例如:chmod g+x test (给test文件增加本组用户可执行权限)
方法二:
将每组用户对应三种权限用三位8进制表示
例如:chmod 777 test(给test文件设置权限为三种用户都可以读写执行)修改文件的拥有者:chown 用户名 文件名
- 修改文件或目录的所属组:chgrp 用户组名 文件名
常用选项:-R :递归修改文件或目录的所属组 - umask:查看或修改文件掩码
计算:
新建文件夹默认权限=0666-权限掩码
新建目录默认权限=0777-权限掩码
说明:将现有的存取权限减去权限掩码后,即可产生建立文件是预设权限。超级用户的默认掩码值为0022,普通用户默认为0002.
格式:
umask 权限值
创建文件的缺省权限是666
实际文件还受umask的影响,最终文件权限 =umask的反码和之相与后的值
例如:umask 0022
反码为111 101 101
666: 110 110 110
相与最后得到110 100 100(0644)
目录查看权限:
ls -ld dir
创建目录的缺省权限为777
也受umask的影响
补充:
粘滞位(t):sticky bit(一般应用于可执行的目录)
当一个用户创建了一个目录,并对该目录设置了777的权限,即说明其他用户在该目录下进行增删查等一系列操作,为了防止其他用户删掉该目录下的文件可使用该命令chmod o+t dirname,此时,其他用户可以在该目录下进行一些操作,但不能删除该目录下原本的文件,该位只有在其他用户具有执行权限x时才有效,否则为T,表示无效。
详细步骤如下:
1、在root用户下对根目录设置权限chmod o+x /
2、对根目录的权限进行查看ls -ld /
3、进入一个普通用户user
4、在根目录下创建一个bshs目录
5、查看该目录的权限,没有其他用户可执行的权限
6、设置权限chmod o+x /bshs/
7、再次查看权限已改
8、在根目录下创建一个文件touch tlp
9、切换到root目录更改/bshs为粘贴位 chmod o+t /bshs
10、切换另一个用户可以进入/bshs目录下创建删除文件,将无法删除