Linux文件权限管理命令

 

文件权限管理命令:chmod

命令名称:chmod

命令所在路径:/bin/chmod

执行权限:所有用户

语法:chmod 1[ugo][+-=][rwx][目录或文件]

             2[mode=777][文件或目录]

功能描述:改变文件或目录权限

 

对文件授权有两种方式

第一种:

u-所有者  g-所属组  o-其他人   要想给哪类用户增加权限只需要设置就行了,—号是给用户减小权限,+号是给用户增加权限,=代表不管之前用户是什么权限现在是=号后面的权限了。

权限也有基本的三种类型 r-可读,w可写,x可执行。

chmod u+wx 这样就将所有者的权限增加了写和执行的权限。chmod o-rx代表其他人减少可读可执行权限。chmod g=wrx代表所属组之前不管有什么权限,更改后的权限为wrx权限。

[[email protected] test]# ls -l /test/issue

-rw-r--r--. 1 root root 23 Oct 27 15:29 /test/issue

[[email protected] test]# chmod u+x /test/issue  为所有者增加可执行权限

[[email protected] test]# ls -l /test/issue

-rwxr--r--. 1 root root 23 Oct 27 15:29 /test/issue

 

[[email protected] test]# chmod o-r /test/issue 为其他人减去可读权限

[[email protected] test]# ls -l /test/issue

-rwxr-----. 1 root root 23 Oct 27 15:29 /test/issue

 

[[email protected] test]# chmod g=wrx /test/issue 更改后所属组的权限为可读,可写,可执行

[[email protected] test]# ls -l /test/issue

-rwxrwx---. 1 root root 23 Oct 27 15:29 /test/issue

 

第一种授权的方式很简单,但是第二种通过数字授权的方式更好。

 

 

第二种:

可以用数字对应r,w,x的权限。r对应的是4w对应的是2x对应的是1。分别用数字对其表示,然后用数字的方式代表文件的权限。

要会根据数字写出对应的权限,比如说现在文件的权限是rwxr-xr--,要将其表示为数字。每三位代表不同用户的权限,rwx所有者  r-x所属组   r--其他人,rwx4+2=1=7即用7表示,r-x4+1=55表示。r--4rwxr-xr--用数字表示就是754

要会根据数字写出字母和根据字母写出数字。

 

为什么不用第一种修改文件权限的方式,因为在系统里面很多的脚本都是用数字的方式进行标记。一般是使用数字的方式进行标识而不是使用字母。

[[email protected] test]# ls -l /test/issue

-rwxrwx---. 1 root root 23 Oct 27 15:29 /test/issue

[[email protected] test]# chmod 777 /test/issue  改变权限

[[email protected] test]# ls -l /test/issue

-rwxrwxrwx. 1 root root 23 Oct 27 15:29 /test/issue

数字后面直接加上文件名字就可以对文件权限进行修改。

 

 

对权限的深入理解

 Linux文件权限管理命令

文件

(1)对文件具有r权限代表可以查看文件内容,比如使用这些命令,cat,more,tail,head

2w表示可以修改文件的内容,比如可以使用这些命令vim,echo,即使文件权限为777也不一定可以将文件删除,还得取决于它所在目录的权限,对文件具有写权限不代表第文件具有删除权限,具有写权限代表可以对该文件进行修改。在目录上具有写权限代表才可以对目录里面的文件进行删除,删除一个文件必须在该文件目录具有写权限,否者删除不了。

3x可执行,文件可能是命令或者是脚本,这些都是可执行的。

[[email protected] test]# ls -ld  /test

dr-xr-xr-x. 2 root root 20 Oct 30 10:48 /test

[[email protected] test]# cd /test

[[email protected] test]# touch pre

[[email protected] test]# chmod 777 /test/pre

[[email protected] test]# ls -ld /test/pre

-rwxrwxrwx. 1 root root 0 Oct 30 10:56 /test/pre

[[email protected] test]# su test

[[email protected] test]$ rm -r /test/pre

rm: cannot remove /test/pre: Permission denied

Test用户对/test/pre有可读可写可执行权限,但是删除不了该文件,因为/test目录对应其他人只有r-x权限,缺少w权限。

[[email protected] test]$ su

Password:

[[email protected] test]# chmod 557 /test  将目录的权限改为对其他人具有可写的权限

[[email protected] test]# su test

[[email protected] test]$ rm /test/pre

[[email protected] test]$ ls -l /test

total 4

-rw-r--r--. 1 root root 1111 Oct 26 11:20 my.cnf  可以看到普通用户删除了pre文件

 

目录

(1)r带表可以列出目录当中的内容,如可以使用ls命令。

(2)w代表可以在目录里面创建和删除文件,如果当前用户对目录具有w权限,表示可以在该目录创建删除文件,删除文件不是对该文件具有写权限,对文件具有写权限只是对文件可以进行内容的修改,删除一个文件是要对该文件所在的目录具有写权限。

(3)x权限代表可以进入该目录

 

几乎所有的目录都有rx权限,如果只有r权限代表可以使用ls查看目录但是死活进不去。如果只有x权限可以进入该目录但是查看不了该目录,这些都是不合理的所以目录的权限都是rx在一起的。

对目录只有读和可执行的权限是删除不了文件的。

 

 

改变文件所有者

命令名称:chmod

命令所在路径:/bin/chown

执行权限:所有用户

语法:chmod [用户][文件或目录]

功能描述:改变文件或目录所有者

范例:$chown nobody file 改变文件file1的所有者为nobody

 

这个所有者不可以随便乱写,必须是该系统的用户。

Linux里面添加用户特别简单就两步

useradd 用户名

passwd 密码

 

[[email protected] test]# touch chown

[[email protected] test]# ls -l chown

-rw-r--r--. 1 root root 0 Oct 30 11:22 chown

[[email protected] test]# chown test chown

[[email protected] test]# ls -l chown

-rw-r--r--. 1 test root 0 Oct 30 11:22 chown

 

 

改变文件所属组

命令名称:chgrp

命令所在路径:/bin/chgrp

执行权限:所有用户

语法:chmod [用户组][文件或目录]

功能描述:改变文件或目录所属组

范例:$chgrp  adm file1 改变文件file1的属组改为adm

 

 

 

使用touch的时候是创建一个文件,但是该文件的权限是默认设置的。如何查询创建目录和文件的默认权限以及如何修改

如果要查看默认创建目录的权限直接使用umask,要想更加直观使用umask -S注意是大写

umask是一个数字。

[[email protected] test]# umask

0022

0022分为两个部分,第一个0代表特殊权限位,后面022指的是用户的权限位,022是一个权限掩码值,这个022不是最终的默认权限,用777-022=755755就是默认的创建文件的权限。

[[email protected] test]# umask -S

u=rwx,g=rx,o=rx

可以看到,创建目录默认的权限是755,但是创建文件默认的权限就不是755644

Linux里面权限规则:缺省创建的文件不能授予可执行x权限。

 

创建文件和目录有默认的权限这样屏蔽了许多危险,这个也是Linux里面最基本的安全机制。

一般不建议修改系统创建文件默认的权限。如果要修改用777减去要修改后的权限得到掩码值,如想创建时默认权限为750,就777-750=027umask 027即可修改系统的默认创建的文件权限。