首页 > 代码库 > linux文件权限整理

linux文件权限整理

  网上对linux文件权限的已经很多,不过还是要自己整理一下,不然每次都要查资料。

  linux下所有东西都是文件,包括设备,所以这里的文件也包括文件夹。

  先是查看文件权限:ls -lh

xzc@xzc-HP-ProBook-4446s:~/桌面/remote_cmd$ ls -lha总用量 20Kdrwxrwxr-x 2 xzc xzc 4.0K 12月 28 15:27 .drwxr-xr-x 3 xzc xzc 4.0K 12月 28 13:43 ..-rwxr----- 1 xzc xzc 2.7K 12月 28 13:55 remote_cmd.sh-rwxr----- 1 xzc xzc  176 12月 28 15:25 SERVERS-rwxr----- 1 xzc xzc   67 12月 28 15:22 SQLS

这里第一列带rwx的是权限,第三列xzc是用户,第四列是用户组。

  linux下文件的权限可以对3类用户进行限制:分别是用户(user),简称u,也就是文件的拥有者;用户组(group),简称g;其他人(other),简称o,是除用户、用户组以外的所有用户。把这些人加起来叫所有人(all),简称a。只有文件的拥有者可以改变文件的权限,用户的权限高于用户组的权限。而root用户永远有最高权限,不受权限限制。

  linux下权限表示方法有两种,字母和数字。对于字母,rwx分别为read、write、x(eXecute,执行,对于目录是进入的权限)。对于数字,r=4、write=2、x=1。采用字母的方法表示,要完全表示user、group、other的权限,则需要9个字母。而数字可以用相加的方式,只需要3个数字就可以。

例如:-rwxr----- 1 xzc xzc 2.7K 12月 28 13:55 remote_cmd.sh

这里的第一个"-"表示当前文件是目录还是文件,如果是目录则为字母d,文件则为-。剩余的9个字母三个为一组,表示user、group、other的权限。如rwxr-----分为rwx、r--、---,第一个rwx表示这个文件的用户xzc拥有读、写、执行的权限,第二个r--表示在用户组里的用户只有读的权限,第三个---表示其他用户什么权限也没有。如果用数字表示,rwx=4+2+1=7,r--=4+0+0=4,---=0+0+0=0。所以rwxr-----也就是740。

  使用chmod来改变权限:chmod [augo][+-][rwx] file

  chmod u+x remote_cmd.sh    #给用户xzc加上x权限

     chmod +x remote_cmd.sh      #同上,默认对文件所有者进行操作

     chmod a+x remote_cmd.sh    #给所有人加上x权限

     chmod ugo+x remote_cmd.sh #同上

     chmod a-w remote_cmd.sh     #取消所有人的写权限

  如果chmod中使用数字表示权限,则是设置所有人权限而不能对单个用户的某个权限操作

     chmod 777 remote_cmd.sh   #给所有人加上rwx权限

  使用chown改变文件的用户及用户组

  chown root remote_cmd.sh    #把所有者指定为root

  chown xzc:root remote_cmd.sh #把用户指定为xzc,用户组为root

PS:chgrp可以只改变用户组

  另外,在debian中,如果没有目录的x权限而执行ls,则文件属性会显示为???

xzc@debian:~$ ls test -lha     ls: cannot access test/id.txt: Permission deniedls: cannot access test/.: Permission deniedls: cannot access test/..: Permission deniedtotal 0d????????? ? ? ? ?            ? .d????????? ? ? ? ?            ? ..-????????? ? ? ? ?            ? id.txt

 

linux文件权限整理