首页 > 代码库 > 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文件权限整理