1,一个文件对于不同的用户应该有不同的操作权限,linux分别在文件所有者用户,文件所在组用户,其他组用户这三类用户中设置文件的不同权限,实现每一类的权限不同。下面看看这三类的含义:
1)文件所有者:默认是创建文件的用户,也可通过命令改变
2)文件所在组:默认是创建文件的用户所在的组,也可通过命令改变
3)其他组:除去文件所在组的其他组
2,查看这三类用户的权限
在某个目录中,执行命令ls -alh,显示该目录下所有文件的信息,后+文件路径即显示特定目录下的文件信息。
注意:下面对于各项字段的讲解以panda.cpp为例。
其他说明:
1)第二列的“1”:对于文件来说是硬连接数,对于目录来说是子目录数。
2)第5列的“0”代表文件的大小,以字节为单位。
3)Feb 2 10:35表示最后修改日期
4)panda.cpp表示文件名
第一列的十个位分别标识了文件/目录属性,文件的三类用户的权限。
例如:panda.cpp文件第一列显示了-rw-rw-r--,这十个位可分为四部分-,rw-,rw-,r--。
1)第一部分-代表文件属性,-代表该文件是普通文件;l是链接,相当于windows的快捷方式d是目录,相当于windows的文件夹;c是字符设备文件,鼠标,键盘;b是块设备,比如硬盘。
2)第二部分rw-,代表文件所有者对该文件/目录所拥有的权限。这三个位分别代表是否可读r或者-;是否可写w或-;是否可执行x或-。所以panda.cpp对于文件所有者root的权限为可读,可写,不可执行 。
3)第三部分rw-,代表文件所在组的用户对该文件可读,可写,不可执行。
4)第四部分r--,代表其他组成员用户对该文件可读,不可写,不可执行。
补充:root用户对所有文件有全权限。
1,对于一个文件:
1)[ r ]代表可读(read):可以读取,查看
2)[w]代表可写(write)可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
3)[x]代表可执行(execute);可以被执行
2,对于一个目录
1)[ r]代表可读(read):可以读取,ls查看目录内容
2)[ w]代表可写(write):可以修改,对目录内创建+删除+重命名目录
3)[x ]代表可执行(execute);可以进入该目录
1,修改文件/目录所有者
chown 用户名 文件/目录名 //将某文件的所有者改为某用户。chown 用户名:用户组 文件/目录名 //更改某文件的所有者和所属用户组
修改过后,新的文件所有者用户或文件所在组用户拥有了文件所有者或文件所在组用户的权限。这便是间接修改了文件权限。可加参数 -r 代表递归使得某目录的所有文件都生效。
2,修改文件/目录所属组
usermod -g 新组名 用户名usermod -d 目录名 用户名 //改变该用户登陆的初始目录。特别说明:用户需要有进入到新目录的权限。
关于另外一些——添加用户,删除用户等一些用户管理的操作可以看前一篇博客的用户管理模块内容。Linux学习(三)开机,重启与用户管理,文件管理实用指令汇总
四,直接修改文件对于用户的权限-chomd命令 1,第一种方式:+,-,=变更权限
+代表增添某权限
-代表去除某权限
=代表设置某权限
u:所有者g:所有组o:其他人a:所有人(u、g、o的总和)1)chmod u=rwx,g=rx,0=x 文件/目录名2) chmod o+w 文件/目录名3) chmod a-x文件/目录名
2,第二种方式,数字
rwx如果用数字表示的话可以表示为二进制的111,也就是十进制的7。即读权限位,写权限位,执行权限位为1代表拥有该权限。
所以rw-代表110,即6;-wx代表011,即3。…
chomd 751 文件/目录名//即将某文件/目录修改权限为 111 101 001
补充:可能读者有时候会有疑问,例如A用户对
/home/ZhangSan/hello.java有读取权限,但是A用户没有对/home/ZhangSan/目录的读权限。
这样的话,我们似乎没办法查看ZhangSan目录,好像不能找到hello.java,更别提去查看这个文件了。然而实际上我们只不过是不能通过ls指令查看ZhangSan文件夹下的文件罢了,我们可以直接cd 到ZhangSan目录下然后 cat hello.java。