在开始今天的话题之前,我们首先来回顾下ls命令。在ls命令中参数“-l”会显示出来目标的详细信息,如下所示:
[root@server02~]#ls-l/tmp/
总用量4
-rwx------.1rootroot8365月2706:19ks-script-ogzDFA
drwxr-xr-x.5rootroot755月3005:26test
drwxr-xr-x.2rootroot65月3004:15test1
drwxr-xr-x.3rootroot175月3004:16test2
-rw-------.1rootroot05月2706:10yum.log
[root@server02~]#
在前几帖中,我们曾提到过第一列(上图的“-”和“d”等)标记的是对象的文件类型。而后面还有10位,最后一位“.”表示开启了selinux,当关闭后,这个标识位将会消失。而中间的“rwxr-xr-x”等9位字符标记的是对象的权限。
这9位字符中,前三位描述的是所有者(如上图某行的第一个root,表示所有者是root用户)的权限,中间三位描述的是所属组(如上图某行的第二个root,表示所属组是root组)的权限,最后三位则描述的是除所有者和所属组外其他人的权限。其中“r”表示可读,“w”表示可写,“x”表示可执行,而“-”则表示的是没有该项权限。
在使用时,我们把“r”规定值为4,“w”为2,“x”为1,以及“-”为0,如rwx=7、r-x=5等。这样也就方便我们描述对象的权限。
chmod
1、命令作用
赋予文件或目录权限
2、命令格式
chmod [options] file
3、参数
-R对目前目录下的所有文件和子目录进行相同的权限变更。
4、样例
[root@server02test]#ll
总用量0
-rw-r--r--.1rootroot05月3007:031.txt
-rw-r--r--.1rootroot05月3007:032.txt
drwxr-xr-x.2rootroot65月3007:04file1
[root@server02test]#chmod7771.txt
[root@server02test]#chmodu=rwx,g=rw,o=r2.txt
[root@server02test]#chmodg+wfile1
[root@server02test]#ll
总用量0
-rwxrwxrwx.1rootroot05月3007:031.txt
-rwxrw-r--.1rootroot05月3007:062.txt
drwxrwxr-x.2rootroot65月3007:04file1
[root@server02test]#
注:推荐使用数字的方式赋予权限。
chown
1、命令作用
更改文件或目录的所有者或所属组
2、命令格式
chown[options] file
3、参数
-R对目前目录下的所有文件和子目录进行相同的权限变更。
4、样例
[root@server02test]#ll
总用量0
-rwxrwxrwx.1rootroot05月3007:031.txt
-rwxrw-r--.1rootroot05月3007:032.txt
drwxrwxr-x.2rootroot65月3007:04file1
[root@server02test]#chownuser11.txt
[root@server02test]#chownuser2:user22.txt
[root@server02test]#chown:user3file1
[root@server02test]#ll
总用量0
-rwxrwxrwx.1user1root05月3007:031.txt
-rwxrw-r--.1user2user205月3007:032.txt
drwxrwxr-x.2rootuser365月3007:04file1
[root@server02test]#
注:chgrp命令也可以更改所属组,因为chown也可以更改,不推荐使用
通过chown和chgrp两条命令,我们可以赋予文件或目录权限,也可以更换其所有者和所属组。那么,当一个新的文件和目录被创建的时候,它们的权限是怎么设置的呢?
[root@server02test]#mkdirdirectory
[root@server02test]#touch1.txt
[root@server02test]#ll
总用量0
-rw-r--r--.1rootroot05月3007:291.txt
drwxr-xr-x.2rootroot65月3007:28directory
[root@server02test]#
可以看到默认生成的目录权限是755,文件权限是644。这样设置的原因是,目录需要执行权限才能cd进入目录下,而文件不需要执行权限,这样更安全些。而完成这个权限设置的功臣就是linux系统内的umask值。
[root@server02test]#umask
0022
[root@server02test]#
umask值默认为0022。目录采用777(rwxrwxrwx),文件采用666(rw-rw-rw-)的初始值,和umask值通过减权限(不是减法)的方式运算出目录和文件的初始权限。
例1:umask002002
当创建一个文件666-002=664
当创建一个目录777-002=775
例2:umask033033
当创建一个文件666-033=644
当创建一个目录777-033=744
chattr
改变文件或目录属性
chattr[options] file
-i不可以增加、追加、删除和更改,重命名任何内容和信息。
-a只可以追加内容,不可以删除、更改和重命名。
4、样例
[root@server02test]#chattr+i1.txt
[root@server02test]#chattr+a2.txt
[root@server02test]#chattr-i1.txt
lsattr
查看文件或目录属性
lsattr[options] file
-d列出目录的属性信息。
-a列出当前文件或目录下的所有文件(包含隐藏文件)的属性信息。
-R列出目录下的所有文件和子目录及其下的所有文件的属性信息。
4、样例
[root@server02test]#lsattr
----------------./directory
----i-----------./1.txt
-----a----------./2.txt
----i-----------./dir1
[root@server02test]#lsattr-a
----------------./.
----------------./..
----------------./directory
----i-----------./1.txt
-----a----------./2.txt
----i-----------./dir1
----------------./.3.txt
[root@server02test]#lsattr-d
----------------.
[root@server02test]#lsattr-Rdirectory
-----a----------directory/test.txt
----------------directory/dir2
directory/dir2:
-----a----------directory/dir2/100.txt
[root@server02test]#
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。