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对应的是4,w对应的是2,x对应的是1。分别用数字对其表示,然后用数字的方式代表文件的权限。
要会根据数字写出对应的权限,比如说现在文件的权限是rwxr-xr--,要将其表示为数字。每三位代表不同用户的权限,rwx所有者 r-x所属组 r--其他人,rwx即4+2=1=7即用7表示,r-x即4+1=5用5表示。r--即4。rwxr-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
数字后面直接加上文件名字就可以对文件权限进行修改。
对权限的深入理解
文件
(1)对文件具有r权限代表可以查看文件内容,比如使用这些命令,cat,more,tail,head。
(2)w表示可以修改文件的内容,比如可以使用这些命令vim,echo,即使文件权限为777也不一定可以将文件删除,还得取决于它所在目录的权限,对文件具有写权限不代表第文件具有删除权限,具有写权限代表可以对该文件进行修改。在目录上具有写权限代表才可以对目录里面的文件进行删除,删除一个文件必须在该文件目录具有写权限,否者删除不了。
(3)x可执行,文件可能是命令或者是脚本,这些都是可执行的。
[[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=755,755就是默认的创建文件的权限。
[[email protected] test]# umask -S
u=rwx,g=rx,o=rx
可以看到,创建目录默认的权限是755,但是创建文件默认的权限就不是755是644。
在Linux里面权限规则:缺省创建的文件不能授予可执行x权限。
创建文件和目录有默认的权限这样屏蔽了许多危险,这个也是Linux里面最基本的安全机制。
一般不建议修改系统创建文件默认的权限。如果要修改用777减去要修改后的权限得到掩码值,如想创建时默认权限为750,就777-750=027,umask 027即可修改系统的默认创建的文件权限。