文件的权限
文件的权限主要针对三类对象进行定义 owner: 属主, u group: 属组, g other: 其他, o 每个文件针对每类访问者都定义了三种权
r: Readable
w:Writable
x:Excutable
文件
当仅r权限作用在文件上的时候,表示用户可以读取该文件的内容
-r--------. 1 tom tom 12 Jun 9 03:17 a
[tom@centos6(mit) app]$ cat a
hello world 当仅w权限作用在文件上的时候,表示用户可以修改该文件的内容 --w-------. 1 tom tom 16 Jun 9 03:22 a echo 123 >> a chmod 600 a [tom@centos6(mit) app]$ cat a hello world 123
当仅x权限作用在文件上的时候,没有意义。
当rw同时作用在文件上的时候,表示用户可以读写文件
[tom@centos6(mit) app]$ ll a
-rw-------. 1 tom tom 16 Jun 9 03:22 a [tom@centos6(mit) app]$ cat a hello world 123 [tom@centos6(mit) app]$ echo 321 >> a [tom@centos6(mit) app]$ cat a hello world 123 321
当rx同时作用在文件上的时候,表示用户可以读且可以执行该文件
[tom@centos6(mit) app]$ ll a
-r-x------. 1 tom tom 33 Jun 9 03:36 a [tom@centos6(mit) app]$ cat a #!/bin/bash
echo "hello world"
[tom@centos6(mit) app]$ ./a hello world 当wx同时作用在文件上的时候,权限与仅w相同 [tom@centos6(mit) app]$ ll a --wx------. 1 tom tom 33 Jun 9 03:36 a [tom@centos6(mit) app]$ echo passwd >> a [tom@centos6(mit) app]$ cat a cat: a: Permission denied [tom@centos6(mit) app]$ ./a /bin/bash: ./a: Permission denied 当rwx同时作用在文件上的时候,用户可以读写执行。 [tom@centos6(mit) app]$ ll a -rwx------. 1 tom tom 40 Jun 9 03:38 a [tom@centos6(mit) app]$ cat a #!/bin/bash
echo "hello world" [tom@centos6(mit) app]$ echo "how are you">> a [tom@centos6(mit) app]$ ./a hello world
目录
当仅r权限作用在目录上的时候,表示用户可以短列出查看目录下的文件名
[tom@centos6(mit) ~]$ ls /app/ (短列出)
a apache22 test [tom@centos6(mit) ~]$ ls -l /app/ (长列出)
-????????? ? ? ? ? ? a d????????? ? ? ? ? ? apache22 d????????? ? ? ? ? ? test 当仅w权限作用在目录上的时候,没有意义 当仅x权限作用在目录上的时候,表示用户可以进入且可以访问目录下的文件(用户需知道目录下有哪些文件),但不能列出文件名 d--x--x--x. 4 root root 12288 Jun 9 03:48 /app/ [tom@centos6(mit) ~]$ cd /app/ [tom@centos6(mit) app]$ ls ls: cannot open directory .: Permission denied [tom@centos6(mit) app]$ cat a #!/bin/bash
echo "hello world"
当仅rw权限同时作用在目录上的时候,权限等同于仅r权限作用在目录
当仅rx权限同时作用在目录上的时候,表示用户可以进入,可以访问子文件,同时可以长列出文件
[tom@centos6(mit) ~]$ cd /app [tom@centos6(mit) app]$ ll total 12 -rwx------. 1 tom tom 52 Jun 9 03:44 a drwxr-xr-x. 13 root root 4096 Jun 5 09:30 apache22 drwxrwxr-x. 2 tom tom 4096 Jun 9 03:48 test
[tom@centos6(mit) app]$ cat a #!/bin/bash
echo "hello world"
[tom@centos6(mit) app]$ ls a apache22 test [tom@centos6(mit) app]$ touch b touch: cannot touch `b': Permission denied 当仅wx权限同时作用在目录上的时候,表示用户可以进入,可以访问子文件,可以创建、编辑及删除,但不能列出
[tom@centos6(mit) ~]$ ls -dl /app/ d-wx-wx-wx. 4 root root 12288 Jun 9 03:48 /app/ [tom@centos6(mit) ~]$ cd /app/ [tom@centos6(mit) app]$ cat a #!/bin/bash
echo "hello world"
[tom@centos6(mit) app]$ touch b [tom@centos6(mit) app]$ vim a
#!/bin/bash
echo "hello world" how are you
[tom@centos6(mit) app]$ ls ls: cannot open directory .: Permission denied [tom@centos6(mit) app]$ rm -rf test
当rwx权限同时作用在目录上的时候,表示用户有完整权限
X 对于批量增加x权限时,可以跳过文件而只对目录加x
[tom@centos6(mit) app]$ ll drw-rw-r--. 3 tom tom 4096 Jun 9 04:19 test [tom@centos6(mit) app]$ chmod -R + X test/ [tom@centos6(mit) app]$ ll drwxrwxr-x. 3 tom tom 4096 Jun 9 04:19 test [tom@centos6(mit) app]$ cd test/ [tom@centos6(mit) test]$ ll total 4 -rw-rw-r--. 1 tom tom 0 Jun 9 04:19 c drwxrwxr-x. 2 tom tom 4096 Jun 9 04:19 test1
文件权限用八进制表示如下: - - - 000 0 - - x 001 1 - w- 010 2 -w x 011 3 r - - 100 4 r - x 101 5 r w - 110 6 r w x 111 7
如:640: rw-r-----
755: rwxr-xr-x
修改文件权限
chmod [OPTION]... OCTAL-MODE FILE... -R:递归修改权限 chmod -R g+rwx /testdir chmod [OPTION]... MODE[,MODE]... FILE... MODE: 修改一类用户的所有权限: u= g= o= ug= a= chmod o=rx file 修改一类用户某位或某些位权限 u+ u- g+ g- o+ o- a+ a- + -(chmod a+x b 和chmod +x b 效果一样) chmod [OPTION]... --reference=RFILE FILE... 参考RFILE文件的权限,将FILE的权限修改成和RFILE的权限一样 [root@centos6(mit) app]# ll b -r--r--r--. 1 tom tom 0 Jun 9 04:10 b [root@centos6(mit) app]# ll c -rw-rw-rw-. 1 root root 0 Jun 9 05:26 c [root@centos6(mit) app]# chmod --reference=c b [root@centos6(mit) app]# ll b -rw-rw-rw-. 1 tom tom 0 Jun 9 04:10 b
新建文件和目录的默认权限 umask值可以用来保留创建文件权限
新建FILE权限:666 - umask 如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变 新建DIR权限:777-umask 非特权用户umask是002 root的umask是022
全局设置:/etc/bashrc 用户设置:~/.bashrc