文件的权限

 文件的权限主要针对三类对象进行定义    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