欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux的文件权限

程序员文章站 2022-06-30 16:33:02
...

1.用户与用户组

用户就是使用电脑的一个账户,而用户组就是具有相同权限的一组用户的集合,而其他人(others)就是相对于用户组而言,不属于用户组的人,在Linux系统中,默认情况下,系统上的所有的账号和root用户的相关信息,都存储在/etc/password文件中,而个人密码则是记录在/etc/shadow文件中,所有的组名都记录在/etc/group内

2.Linux文件权限概念

2.1Linux文件属性

ls -al命令查看文件(以root身份登陆)
Linux的文件权限
ls 是list的意思,重点在显示文件的文件名与相关属性,参数“-al”则表示列出所有的文件详细的权限与属性(包含隐藏文件,就是文件名第一个字符为“.”的文件),下面解释以下上面7列的意思。
Linux的文件权限
第一个字符代表这个文件是“目录、文件或链接文件等”

  • 若是[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来表示,如下表:
    Linux的文件权限
    例如我们要设置一个文件的权限为”-rwxr-xr-x”
chmod u=rwx,go=rx .bashrc

再比如说,我们想要给所有人添加一个可执行的权限

chmod a+x .bashrc
相关标签: chmod chgrp chown