Linux的文件权限及目录配置
Linux一般将文件可读写的身份分为3种:拥有者(owner)、所属群组(group)、其他人(others);而这3种身份各有读(read)、写(write)、执行(execute)等权限。
简而言之:owner我自己,group我所在的组, others组外的人,root基本不受系统的权限限制。
如何修改文件属性与权限?
- chgrp:修改文件的所属组
- chown:修改文件的所有者
- chmod:修改文件的权限
主要说下怎么修改文件的权限吧
修改文件权限有2种方式:使用数字/符号来进行修改
- 数字类型修改:
-rwxr--rw-
其中:
r:4 w:2 x:1
以上文件权限可以表述为:owner=rwx=4+2+1=7 group=r--=4+0+0=4 others=rw-=4+2+0=6,即该文件的权限数字就是746
所以:如果要把test.txt的权限修改成上述权限的话,可以用:chmod 746 test.txt
- 符号类型修改
chmod | a u g o | + - = | r w x | 文件或目录 |
还是刚才那个文件,可以用:
chmod u=rwx,g=r,o=rw test.txt 来赋予权限
注意:
- 对于文件来说:
rwx是针对文件的内容而言,read代表可以读取文件内容,write代表可以对文件内容进行新增、修改 。execute代表可以执行文件。在Linux下判断一个文件是否能执行是根据是否具有【x】这个权限来决定的,而Windows下则是根据后缀名(.exe/.bat/...)来决定的。
- 对于目录来说:
【r】表示具有读取目录结构列表的权限,通俗点就是,当你拥有了一个目录的【r】权限,你就可以查到该目录下的文件名数据。只有【r】的话可以读取目录的文件名列表,详细信息还是读不到;
【w】表示你具备更改该目录结构列表的权限,也就是:
- 创建新的文件与目录
- 删除已经存在的文件与目录
- 修改已存在的文件名或目录名
- 移动该目录内的文件、目录位置
总之,目录的【w】权限与该目录下文件名的变动有关系。
目录不能用来执行,因此对于目录而言【x】权限表示:用户能否进入该目录成为工作目录的用途。工作目录就是你目前所在的目录。能不能进入某一个目录,只与该目录的【x】权限有关,也就是【x】权限决定了你能不能cd切换到这个目录下。
要开放目录给任何人浏览时,至少也要开放【r】和【x】权限。
Linux文件种类及扩展名
Linux文件种类:
标识符号 | 文件类型 |
- | regular file 普通文件 |
d | directory 目录 |
l | link 链接文件。类似Windows下的快捷方式 |
b、c | device(block、character) 设备与设备文件 |
s | sockets 数据接口文件 |
p | FIFO,pipe 数据输送文件 |