Linux的文件权限

1.可以使用ls -l +文件名 查看文件文档等的权限

出来的结果如下大致eg: -rw-r--r-- l root root 42304 Sep 4 20:26 install.log

文件权限的前面的-表示的是文件类型

若为d:表示是目录;为-表示是文件,l表示是来连接文件【linkfile】;b表示是设备文件里面的可供存储的接口设备;c表示设备文件里面的串行端口设备,如键盘鼠标等。

rw-r--r--表示文件权限(r:read,w:write,e:execute,-表示没有权限,这三个权限的书顺序是不变的,rw-表示可读可写但是不可执行,r--表示可读不可写不可执行),

l表示这个是连接数, 代表有多少个文件名连接到这个节点(i-node)

每个文件都会把它的权限和属性记录到文件系统的i-node里面,但是我们使用的目录树是通过文件名来记录的,因为每个文件名都会有一个i-node,这个属性记录的就是有多少个不同文件名链接到一个相同的i-node号码。

第一个root表示文件所有者,第二个root表示文件用户组

42304 表示的是文件的大小,默认单位是B

Sep 4 20:26表示的是文件创建的日期或者是最近修改的时间

install.log代表的是文件名字

2. 文件权限和用户组

文件权限以rwx三个为一组,表示的是一个文件的所有权限,可读可写和可执行,通过ls-l查看出来的文件权限有三个

rw:表示的是文件所有者的权限

r:文件所属用户组的权限

r:其他人对这个文件的权限(Linux的用户组分为本user,user所在的group,others和root)

3. 改变文件权限的指令

对于文件的权限可以用过以下的指令来改变

chgrp:改变文件所属用户组

chown:改变文件的所有者

chmod:改变文件的权限

chgrp的格式: chgrp users install.log,改变了install.log的文件的用户组为users

        执行结果用ls查看应该是: -rw-r--r-- 1 root users 42304 Sep 4 18:26 install.log

chown的格式:chown bin install.log,改变了install.log的文件所有者

        执行结果用ls查看应该是:-rw-r--r-- 1 bin users 42304 Sep 4 18:26 install.log

        可以使用chown改变install.log的所有者和权限:chown root:root install.log

        执行结果ls-l查看应该是:-rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log

chmod的格式:r:4  w:2 x:1  每个身份的三个权限是需要累加的(owner group others)

        eg:当改变权限为-rwxrwx---时,分数应该是:

        onwer=4+2+1=7

        group=7

        others=0

        语法:chmod 777 .bashrc:  这个意思就是修改这个文件的所有权限都设置为启用。文件所有者,用户组和其他人的权限都是可读可写可执行

4. 以符号类型概念文件权限

在linux中共有9种权限和3种身份(users,groups,others),那么可以用u.g.o来代表三种身份的权限,另外再用a来代表all,即全部的身份;读写的权限可以写成r,w,x,再用+表示加入,-表示除去,=表示设置。

eg:

如果要设置有个文件的权限为“-rwxr-xr-x”(-表示文件类型 权限分组为rwx r-x r-x),那就是chmod a=rwx,go=rx  .bashrc

如果需要给某个文件的每个人都添加上可写的权限 则 chmod a+w .bashrc

如果要不改变文件的其他属性,如去掉所有人的可执行权限,则 chmod a-x .bashrc


结论:在使用linux过程中,如果在使用创建文件夹或者git clone代码时无法新建文件夹出现permission denied等问题时,不妨用ls -l/ls -al查看下文件夹的权限,可能是文件夹给当前用户或者是用户组的权限不够,导致不能去修改文件夹,此时可以使用以上的指令对应做修改。当想要改变某个文件夹下面的子文件夹里面的文件夹和文件的权限时,需要加上-R,eg:sudo chmod -R 777 文件夹名字 

你可能感兴趣的:(Linux的文件权限)