注:本系列文章所用的注释符号统一为#
1. 文件和目录的权限
*文件的权限:
读r、写w、执行x
*针对的用户,文件的权限可分为:
文件属主,创建该文件的用户。
同组用户,拥有该文件的用户组中的任何用户。
其他用户,即不属于拥有该文件的用户组的某一用户。
eg:
fish@piniheaven:~$ ls -l
总用量 52
-rw-r--r-- 1 fish fish 8445 6月 21 20:39 examples.desktop
-rw-rw-r-- 1 fish fish 0 6月 23 19:38 libpeerconnection.log
解析:
总用量 52 该目录中所有文件所占的空间。
-rw-r--r-- 1 该文件的权限位。如果除去最前面的横杠,这里一共是 9个字符,他们分别对应 9个权限位,每三位为一组
rw-: 文件属主权限,前面三位
r--: 同组用户权限,中间三位
r--: 其他用户权限,最后三位
其中出现在 r、w、x位置上的横杠表示相应的访问权限被禁止。
1 该文件硬链接的数目。
fish 文件的属主。
fish 文件的属主 fish所在的缺省组(也叫做fish)。
8445 用字节来表示的文件长度,记住,不是 K,而是字节!
6月 21 20:39 文件的更新时间。
examples.desktop 文件名。
2.文件类型(有七种):文件权限位前面的那个字符
d 目录。
l 符号链接(指向另一个文件 )。
s 套接字文件。
b 块设备文件。
c 字符设备文件。
p 命名管道文件。
- 普通文件,或者更准确地说,不属于以上几种类型的文件。
3.权限
eg:
fish@piniheaven:~/MyDoc$ touch test #touch 新建一个不存在的文件
fish@piniheaven:~/MyDoc$ ls -l
总用量 16
-rw-rw-r-- 1 fish fish 0 7月 3 16:37 test
4.改变权限位
法一:
*chmod命令的一般格式为:
chmod [who] operator [permission] filename
*who的含义是:
u 文件属主权限。
g 同组用户权限。
o 其他用户权限。
a 所有用户(文件属主、同组用户及其他用户 )。
注:可以用英文单词助记,当然了,这只是本人主观的看法:u:user g:group o:other a:all
*operator的含义:
+ 增加权限。
- 取消权限。
*permission的含义:
r 读权限。
w 写权限。
x 执行权限。
eg:
fish@piniheaven:~/MyDoc$ chmod ug-w test
fish@piniheaven:~/MyDoc$ ls -l
总用量 16
-r--r--r-- 1 fish fish 0 7月 3 16:37 test #与未更改权限之前对比 -rw-rw-r-- 1 fish fish 0 7月 3 16:37 test
法二:
chmod命令绝对模式的一般形式为:
chmod [mode] file
其中mode是一个八进制数。为了方便记忆,可以用十进制表示:r:4 w:2 x:1,最后把同一组的rwx加起来作为一位八进制数
eg:
fish@piniheaven:~/MyDoc$ chmod 666 test
fish@piniheaven:~/MyDoc$ ls -l
总用量 16
-rw-rw-rw- 1 fish fish 0 7月 3 16:37 test #r+w=6 所以666表示把每一组的权限都设置为rw
Tip:
一次设置目录下所有文件(目录和文档)的权限,可以用:
eg:
chmod 777 *
通过使用 -R选项连同子目录下的文件一起设置:
eg:
chmod -R 777 ~/MyDoc/* #把~/MyDoc/目录下的所有文件连同各个子目录下的文件的权限全部一起设置
5.目录
*读权限位意味着可以列出其中的内容。 (读取列出目录的权限)
*写权限位意味着可以在该目录中创建文件
*执行权限位则意味着搜索和访问该目录 (某个用户访问进入这个目录的权限)
eg:
fish@piniheaven:~/MyDoc$ chmod 300 ./hello #把hello目录权限改为-wx--- ---
fish@piniheaven:~/MyDoc$ ls -l
总用量 24
d-wx------ 2 fish fish 4096 7月 3 18:56 hello
fish@piniheaven:~/MyDoc$ cd ./hello #进入hello目录
fish@piniheaven:~/MyDoc/hello$ ls #列出hello目录下的内容
ls: 无法打开目录.: 权限不够