1   文件目录权限

   针对于文件或目录而言,我们对其进行操作,无非就是读写执行, 那么,它的权限,自然也只有

读写和执行了。

  在linux中的读写执行,是用这三个字母分别表示的 r  w  x  (write read exe)

 怎么看一个文件的相关权限呢?

 ls -l  file 或dir  也可以直接用:

ll   file  或dir  

如:
nfyx@nfyx:~/test/99$ ls -l bb
-rw-rw-r-- 1 nfyx nfyx 0 10月 25 14:17 bb
nfyx@nfyx:~/test/99$ ll bb
-rw-rw-r-- 1 nfyx nfyx 0 10月 25 14:17 bb

这里是查看的文件,而这个
-rw-rw-r--,就是表面的文件权限

前面的第一个-小的一横,之前在文件类型上说过(linux的文件类型)

剩下的

-rw-rw-r--,这表示不同的用户组所拥有的权限。

第一个 rw-,   表示拥有者所拥有的权限(可以理解为文件创建者,所拥有的权限)

第二个 rw-,   表示文件所属组,所拥有的权限,即(创建都所属的那个用户分组)

第三个 r-- ,    表示的是其它用户所拥有的权限。

而这里的  

     rw-rw-r--

所表示的是:创建者拥有 读写权限、所属用户组拥有 读写权限 、其它用户只拥有的权限

其它的就都类似。

如何改变一个文件的权限?

有两种方式 (字母加减和数字)

用到的命令:

chmod

a: 字母加减

首先要知道     a=all  u=user  g=group o=other,这表示的用户或用户组

案例:

nfyx@nfyx:~/test/chmod$ ll aa
-rw-rw-r-- 1 nfyx nfyx 0 10月 25 17:55 aa
nfyx@nfyx:~/test/chmod$ chmod u+x aa
nfyx@nfyx:~/test/chmod$ ll aa
-rwxrw-r-- 1 nfyx nfyx 0 10月 25 17:55 aa*
nfyx@nfyx:~/test/chmod$ chmod g+x aa
nfyx@nfyx:~/test/chmod$ ll aa
-rwxrwxr-- 1 nfyx nfyx 0 10月 25 17:55 aa*
nfyx@nfyx:~/test/chmod$ chmod o+x aa
nfyx@nfyx:~/test/chmod$ ll aa
-rwxrwxr-x 1 nfyx nfyx 0 10月 25 17:55 aa*
nfyx@nfyx:~/test/chmod$ chmod a-w aa
nfyx@nfyx:~/test/chmod$ ll aa
-r-xr-xr-x 1 nfyx nfyx 0 10月 25 17:55 aa*
nfyx@nfyx:~/test/chmod$ chmod go-x aa
nfyx@nfyx:~/test/chmod$ ll aa
-r-xr--r-- 1 nfyx nfyx 0 10月 25 17:55 aa*
nfyx@nfyx:~/test/chmod$ chmod u-x aa
nfyx@nfyx:~/test/chmod$ ll aa
-r--r--r-- 1 nfyx nfyx 0 10月 25 17:55 aa
nfyx@nfyx:~/test/chmod$ chmod a+w aa
nfyx@nfyx:~/test/chmod$ ll aa
-rw-rw-rw- 1 nfyx nfyx 0 10月 25 17:55 aa
nfyx@nfyx:~/test/chmod$

这样子,就可以把文件的权限进行相关的更改。

b 用数字表示

在这里我们得先知道  r=4 w=2 x=1,知道这之后就可以进行权限更改了,

那么,这里的rwx,一共有3 组,也就是有3组数字

  第一组表示 用户user的权限 (0-7)最大7(r+w+x)最小0

   第二组表示 用户所在组的权限(0-7)最大7(r+w+x)最小0

    第三组表示 其它用户的权限(0-7)最大7(r+w+x)最小0

案例:

nfyx@nfyx:~/test/chmod$ ll aa
-rwxrwxrwx 1 nfyx nfyx 0 10月 25 17:55 aa*
nfyx@nfyx:~/test/chmod$chmod 751 aa
nfyx@nfyx:~/test/chmod$ ll aa
-rwxr-x--x 1 nfyx nfyx 0 10月 25 17:55 aa*
nfyx@nfyx:~/test/chmod$ chmod 007 aa
nfyx@nfyx:~/test/chmod$ ll aa
-------rwx 1 nfyx nfyx 0 10月 25 17:55 aa*
nfyx@nfyx:~/test/chmod$ chmod 710 aa
nfyx@nfyx:~/test/chmod$ ll aa
-rwx--x--- 1 nfyx nfyx 0 10月 25 17:55 aa*
nfyx@nfyx:~/test/chmod$ chmod 755 aa
nfyx@nfyx:~/test/chmod$ ll aa
-rwxr-xr-x 1 nfyx nfyx 0 10月 25 17:55 aa*
nfyx@nfyx:~/test/chmod$ chmod 000 aa
nfyx@nfyx:~/test/chmod$ ll aa
---------- 1 nfyx nfyx 0 10月 25 17:55 aa
nfyx@nfyx:~/test/chmod$ chmod 777 aa
nfyx@nfyx:~/test/chmod$ ll aa
-rwxrwxrwx 1 nfyx nfyx 0 10月 25 17:55 aa*
nfyx@nfyx:~/test/chmod$

即: 这里的数字总合,就是r+w+x 的总合,即 r+w+x=4+2+1=7   表示拥有读写执行的权限

                                                 r+w =4+2=6  表示只拥有 读写的权限

                                                 r+x = 4+1      表示只拥有 读和执行的权限

                                                  r=4                   表示只拥有读的权限

                                这样子就可以组合为:654

如:       

nfyx@nfyx:~/test/chmod$ chmod 654 aa
nfyx@nfyx:~/test/chmod$ ll aa
-rw-r-xr-- 1 nfyx nfyx 0 10月 25 17:55 aa*
nfyx@nfyx:~/test/chmod$

这样子,改变文件的权限差不多,就应该没什么 大问题了。

既然能改变文件权限,那么,就可以改变用户所属关系。

如何改变用户所属,或用户组???

2  文件所有者属性,或文件 拥有者相关属性

先看一个例子:

nfyx@nfyx:~/test/chmod$ ll aa
-rw-r-xr-- 1 nfyx nfyx 0 10月 25 17:55 aa*

这里的两个 nfyx  nfyx  代表的是什么呢?

第一个nfyx 代表文件属于哪个用户的

第二个nfyx代表文件属于哪个用户组的。

如何改变? 

   改变拥有者(所有者),即改变为另外一个用户的。(前提:必需是已经存在的用户)

用到的命令:

chown

案例1:

root@nfyx:/home/nfyx/test/chmod# ll aa
-rw-r-xr-- 1 nfyx nfyx 0 10月 25 17:55 aa*
root@nfyx:/home/nfyx/test/chmod# chown root aa
root@nfyx:/home/nfyx/test/chmod# ll aa

-rw-r-xr-- 1 root nfyx 0 10月 25 17:55 aa*
chown  user  file或dir    (改变用户所有者)

案例2:

root@nfyx:/home/nfyx/test/chmod# ll aa
-rw-r-xr-- 1 root nfyx 0 10月 25 17:55 aa*
root@nfyx:/home/nfyx/test/chmod# chgrp root aa
root@nfyx:/home/nfyx/test/chmod# ll aa
-rw-r-xr-- 1 root root 0 10月 25 17:55 aa*
root@nfyx:/home/nfyx/test/chmod#

chgrp  group file 或dir    (改变用户所属组)

案例3:   若要让目录下的所有文件都跟着改变怎么办?

root@nfyx:/home/nfyx/test/chown# touch aa/{file,file1}     在目录aa 下建立两个文件
root@nfyx:/home/nfyx/test/chown# ll aa/
总用量 8
drwxr-xr-x 2 root root 4096 10月 25 19:54 ./
drwxr-xr-x 3 root root 4096 10月 25 19:53 ../
-rw-r--r-- 1 root root    0 10月 25 19:54 file
-rw-r--r-- 1 root root    0 10月 25 19:54 file1
root@nfyx:/home/nfyx/test/chown# chown -R nfyx aa/      (用chown -R  dir  改变文件递归,加R参数)
root@nfyx:/home/nfyx/test/chown# ll aa
总用量 8
drwxr-xr-x 2 nfyx root 4096 10月 25 19:54 ./
drwxr-xr-x 3 root root 4096 10月 25 19:53 ../
-rw-r--r-- 1 nfyx root    0 10月 25 19:54 file
-rw-r--r-- 1 nfyx root    0 10月 25 19:54 file1
改变用户组也是一样的,例如:

root@nfyx:/home/nfyx/test/chown# chgrp -R nfyx aa/
root@nfyx:/home/nfyx/test/chown# ll aa
总用量 8
drwxr-xr-x 2 nfyx nfyx 4096 10月 25 19:54 ./
drwxr-xr-x 3 root root 4096 10月 25 19:53 ../
-rw-r--r-- 1 nfyx nfyx    0 10月 25 19:54 file
-rw-r--r-- 1 nfyx nfyx    0 10月 25 19:54 file1
root@nfyx:/home/nfyx/test/chown#

若要同时改变用户和用户组,可以这样写:

root@nfyx:/home/nfyx/test/chown# chown -R root:root aa
root@nfyx:/home/nfyx/test/chown# ll aa
总用量 8
drwxr-xr-x 2 root root 4096 10月 25 19:54 ./
drwxr-xr-x 3 root root 4096 10月 25 19:53 ../
-rw-r--r-- 1 root root    0 10月 25 19:54 file
-rw-r--r-- 1 root root    0 10月 25 19:54 file1
root@nfyx:/home/nfyx/test/chown#

单独改一个也可以

root@nfyx:/home/nfyx/test/chown# chown root:nfyx aa
root@nfyx:/home/nfyx/test/chown# ll aa
总用量 8
drwxr-xr-x 2 root nfyx 4096 10月 25 19:54 ./
drwxr-xr-x 3 root root 4096 10月 25 19:53 ../
-rw-r--r-- 1 root root    0 10月 25 19:54 file
-rw-r--r-- 1 root root    0 10月 25 19:54 file1
root@nfyx:/home/nfyx/test/chown#

即:

chown  user:group file 或dir

chown -R user:group dir

以上,就是对文件所有者和用户组,的改变。


2017.10.25