Linux的文件权限
1.用户与用户组
用户就是使用电脑的一个账户,而用户组就是具有相同权限的一组用户的集合,而其他人(others)就是相对于用户组而言,不属于用户组的人,在Linux系统中,默认情况下,系统上的所有的账号和root用户的相关信息,都存储在/etc/password文件中,而个人密码则是记录在/etc/shadow文件中,所有的组名都记录在/etc/group内
2.Linux文件权限概念
2.1Linux文件属性
ls -al命令查看文件(以root身份登陆)
ls 是list的意思,重点在显示文件的文件名与相关属性,参数“-al”则表示列出所有的文件详细的权限与属性(包含隐藏文件,就是文件名第一个字符为“.”的文件),下面解释以下上面7列的意思。
第一个字符代表这个文件是“目录、文件或链接文件等”
- 若是[d]则表示是目录
- 若是[-]则表示是文件
- 若是[I]则表示是连接文件(linkfile)
- 若是[b]则表示设备文件里可供存储的接口设备
- 若是[c]则表示设备文件里的串行端口设备,如键盘、鼠标
接下来的字符串中,以三个为一组,且均为“rwx”的3个参数的组合,要注意的是这3个权限的位置不会改变,如果没有权限就会出现减号[-]而已。第一组为文件所有者的权限,第二组为同用户组的权限,第三组为其他非本用户组的权限
第二列表示有多少文件名连接到此节点(i-node)
第三列表示这个文件(或目录)的所有者账号
第四列表示这个文件的所属用户组
第五列为这个文件的容量大小,默认单位为B
第六列为这个文件的创建文件日期或者是最近的修改日期
第七列为该文件名
2.2改变文件属性和权限
- chagrp 改变文件所属用户组
- chown 改变文件所有者
- chmod 改变文件的权限
改变所属用户组:chgrp
需要注意一点的是,要被改变的组名必须要在/etc/group文件内存在才行
chgrp [-R] dirname/filename
-R:进行递归的持续更改,即连同子目录下的所有文件、目录
例如:
chgrp users install.log
将install.log的用户组改成testing
改变文件所有者: chown
注意:用户必须是已经存在于系统中的账号,也就是在/etc/passwd这个我呢见中有记录的用户名称才能修改
chown [-R] 账号名称 文件或目录
-R:进行递归的持续更改,即连同子目录下的所有文件、目录都进行更改
例如:将install.log的所有者改为bin这个账号
chown bin install.log
将install.log的所有者与用户组改为root(第一个是用户,第二个是用户组),中间用冒号隔开
chown root:root install.log
改变权限:chmod
文件权限的改变使用的是chmod命令,设置方法有两种,一种是使用数字,另外一种是通过符号修改权限
-
数字类型改变文件的权限
linux文件的权限一共九个,分别是owner、group、others三种身份各有自己的read、write、extcute权限,这三个可以用数字代替,其中r:4 w:2 x:1,每种身份(owner、group、others)各自的三个权限(r、w、x)分数是需要累加的,例如:当权限为[-rwxrwx—],分数则是:- owner=rwx=4+2+1=7
- group=rwx=4+2+1=7
- others=—=0+0+0=0
更改权限的语法规则如下:
chmod [-R] xyz 文件或目录
xyz:就是刚刚提到的数字类型的权限属性
-R:将进行递归的持续更改,即连同子目录下的所有文件、目录都进行更改
例如:将.bashrc这个文件所有的权限都设置启用
chmod 777 .bashrc
- 符号类型改变文件权限
用u、g、o来分别表示user、group、others3种身份,此外a表示全部,读写的权限就用r、w、x来表示,如下表:
例如我们要设置一个文件的权限为”-rwxr-xr-x”
chmod u=rwx,go=rx .bashrc
再比如说,我们想要给所有人添加一个可执行的权限
chmod a+x .bashrc
下一篇: Java基础——String API