linux学习笔记系列-文件权限

1、查看文件目录权限:ls -al

[myStudy@CentOs ~]$ ls -al
total 28
drwx------. 3 myStudy myStudy 4096 Apr 28 18:09 .
drwxr-xr-x. 6 root    root    4096 Apr 27 19:33 ..
-rw-------. 1 myStudy myStudy   63 Apr 27 22:47 .bash_history
-rw-r--r--. 1 myStudy myStudy   18 Jul 18  2013 .bash_logout
-rw-r--r--. 1 myStudy myStudy  176 Jul 18  2013 .bash_profile
-rw-r--r--. 1 myStudy myStudy  124 Jul 18  2013 .bashrc
drwxrwxr-x. 7 myStudy myStudy 4096 Apr 28 19:18 sudyFile

格式化的输出了文件和文件夹的信息。
第一列:文件的类别和权限,这列由10个字符组成,第一个字符表明该文件的类型,(表0-1表明了每个字符代表的含义),接下来的属性,每三个字符为一组,第2~4个字符,代表该文件所有者的权限,第5~7个字符表示该文件所有组的权限,第8~10个字符代表其他用户拥有的权限。每组都是rwx的组合。有读权限,在该组第一个字符显示“r”,有写权限,第二个字符显示“w”,有操作权限,第三个字符显示“x”.

表0-1
第一个字符可能的值            含义
    d                      目录
    -                      普通文件
    l                      链接文件
    b                      块文件
    c                      字符文件
    s                      socket文件
    p                      管道文件

第二列:连接数,除了目录文件之外,其他文件的链接数都是1,目录的连接数,是该目录包含其他目录的总个数+2。
第三列:代表改文件的所有人,第四列:代表改文件的所有组,第五列:是该文件的大小,第六列:是该文件的创建时间或最近的修改时间,第七列是文件名。
2、文件的隐藏属性
(1)lsattr filename显示文件的隐藏属性。

[myStudy@CentOs java]$ lsattr Hello1.txt
-------------e- Hello1.txt

结果中的第一列是13个“-”,其中每一个代表一个属性,如果设置了该属性,就会显示相应的字符。
(2)chattr 设置文件的隐藏属性

[root@CentOs java]# chattr +a Hello1.txt 
[root@CentOs java]# lsattr Hello1.txt 
-----a-------e- Hello1.txt
[root@CentOs java]# rm Hello1.txt 
rm: remove regular empty file `Hello1.txt'? y
rm: cannot remove `Hello1.txt': Operation not permitted

隐藏属性具体字符含义请看
3、改变文件权限:chmod
Linux下的每个文件都定义了User,group,others的权限。在使用chmod命令中,我们使用u,g,o来分别代表user,group,others,增加权限使用+,删除权限使用-。

[root@CentOs java]# ls -l
total 0
-rw-rw-r--. 1 myStudy myStudy 0 Apr 28 19:12 Hello1.txt
-rw-rw-r--. 1 myStudy myStudy 0 Apr 28 18:18 Hello.java
[root@CentOs java]# chmod u+x Hello1.txt 
[root@CentOs java]# ls -l
total 0
-rwxrw-r--. 1 myStudy myStudy 0 Apr 28 19:12 Hello1.txt
-rw-rw-r--. 1 myStudy myStudy 0 Apr 28 18:18 Hello.java
[root@CentOs java]# chmod u-x Hello1.txt 
[root@CentOs java]# ls -l
total 0
-rw-rw-r--. 1 myStudy myStudy 0 Apr 28 19:12 Hello1.txt
-rw-rw-r--. 1 myStudy myStudy 0 Apr 28 18:18 Hello.java

也可以使用数字表示法来设置权限(其中“r”=4,“w”=2,”x”=1,这样就可以得出777权限的由来。是通过每一组总和的权限代表数字的和。)实例:

[root@CentOs java]# ls -l
total 0
-rw-rw-r--. 1 myStudy myStudy 0 Apr 28 19:12 Hello1.txt
-rw-rw-r--. 1 myStudy myStudy 0 Apr 28 18:18 Hello.java
[root@CentOs java]# chmod 754 Hello1.txt 
[root@CentOs java]# ls -l
total 0
-rwxr-xr--. 1 myStudy myStudy 0 Apr 28 19:12 Hello1.txt
-rw-rw-r--. 1 myStudy myStudy 0 Apr 28 18:18 Hello.java

也可以使用参数 -R给一个目录下的所有目录和文件设置权限:

[root@CentOs sudyFile]# chmod -R 754 java
[root@CentOs sudyFile]# ls -la |grep java
drwxr-xr--. 2 myStudy myStudy 4096 Apr 28 19:12 java
drwxrwxr-x. 2 myStudy myStudy 4096 Apr 28 19:13 java1
[root@CentOs java]# ls -l
total 0
-rwxr-xr--. 1 myStudy myStudy 0 Apr 28 19:12 Hello1.txt
-rwxr-xr--. 1 myStudy myStudy 0 Apr 28 18:18 Hello.java

4、改变文件的拥有者:chown
linux系统默认使用什么用户登录,创建的文件就是哪个用户以及用户组。想要改变文件的拥有者,就可以使用chown命令。

[root@CentOs java]# ls -l
total 0
-rwxr-xr--. 1 myStudy myStudy 0 Apr 28 19:12 Hello1.txt
-rwxr-xr--. 1 myStudy myStudy 0 Apr 28 18:18 Hello.java
[root@CentOs java]# chown root Hello1.txt 
[root@CentOs java]# ls -l
total 0
-rwxr-xr--. 1 root    myStudy 0 Apr 28 19:12 Hello1.txt
-rwxr-xr--. 1 myStudy myStudy 0 Apr 28 18:18 Hello.java
[root@CentOs java]# chown root:root Hello1.txt
[root@CentOs java]# ls -l
total 0
-rwxr-xr--. 1 root    root    0 Apr 28 19:12 Hello1.txt
-rwxr-xr--. 1 myStudy myStudy 0 Apr 28 18:18 Hello.java

同样的可以使用-R改变一个目录以及目录下的所有文件和目录的用户和用户组。
5、改变文件的拥有组:chgrp
使用该命令可以改变一个文件的用户组。:

[root@CentOs java]# ls -l
total 0
-rwxr-xr--. 1 root    root    0 Apr 28 19:12 Hello1.txt
-rwxr-xr--. 1 myStudy myStudy 0 Apr 28 18:18 Hello.java
[root@CentOs java]# chgrp myStudy Hello1.txt 
[root@CentOs java]# ls -l
total 0
-rwxr-xr--. 1 root    myStudy 0 Apr 28 19:12 Hello1.txt
-rwxr-xr--. 1 myStudy myStudy 0 Apr 28 18:18 Hello.java

同样支持-R参数。

你可能感兴趣的:(linux学习笔记)