1、文件类型共七种:
代码语言:javascript复制d 目录
l 符号链接(软硬连接)
s 套接字文件
b 块设备文件
c 字符设备文件
p 命名管道文件
- 普通文件,或者更准确的说,不属于以上几种类型的文件
2、 文件权限设置
代码语言:javascript复制chmod [who] operator [permission] filename
who的含义:
代码语言:javascript复制u 文件属主权限
g 同组用户权限
o 其他用户权限
a 所有用户(u g o)
operator的含义:
代码语言:javascript复制 增加权限
- 取消权限
= 设定权限
permission的含义:
代码语言:javascript复制r 读权限
w 写权限
x 执行权限
t 粘性位*
l 给文件加锁,使其他用户无法访问
u.g.o 针对文件属主,同组用户以及其他用户的操作
粘性位“t” 如果在一个目录上出现“t”位,那么表示该目录只有其属主才可以删除;如果出现在文件列表,那么意味着该脚本或者程序在执行时会被放在交换区(虚存)
修改权限(符号模式):
代码语言:javascript复制chmod u x hello.py
chmod w hello.py
chmod -R x runall.sh : -R 表示递归修改,包括该文件夹下的子文件
修改权限(绝对模式,不同数字代表不同权限):
代码语言:javascript复制chmod 664 hello.py
chmod 777 *
<<< 绝对模式下,用数字代替相应的权限位,可读用数字4,可写用数字2,可执行用数字1表示,修改同一个用户(u或者g或者o)权限只需要将对应的权限位的值相加:比如,6代表可读可写。
<<<修改多个用户的不同权限需要多个数字一并设置,第一个数字代表属主用户,第二个数字代表同组用户,第三个数字代表其他用户:比如,664代表属主用户可读可写,同组用户可读可写,其他组可读
在绝对模式下修改权限应该有四位数字664其实是0664。第一位是设置suid和guid的,一旦设置了该位,那么在可执行权限位x上会出现一个s:suid(权限数字4)意味着如果某个用户对属于自己的shell脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主相应的权限;guid(权限数字2)意味着执行相应的脚本的用户将具有该文件所属用户组中用户的权限。
修改文件所属:
代码语言:javascript复制语法: chown -R -h owner file
-R意味着对所有子目录下的文件做同样的修改; -h意味着在改变符号链接文件的属主时不影响该链接所指向的目标文件。
代码语言:javascript复制chown root hello.py :将hello.py文件的所属修改为root
修改文件所在组:
语法类似于chown
代码语言:javascript复制chgrp root hello.py :将hello.py文件所在组修改为root
创建文件默认权限:
umask命令确定创建文件的缺省权限,一般umask在/etc/profile文件中设置,每个用户登录时会引用该文件,如果设置umask,那么可以在$HOME下的.profile或者bash_profile文件中保存。