Linux文件权限详解
1:更改文件的权限——实际遇到
ls -al 查看当前文件夹中的文件的权限
文件类型与权限 | 链接占用的节点(i-node) | 文件所有者 | 文件所有者的用户组 | 文件大小 | 文件的创建时间/最近修改时间 | 文件名称 |
---|---|---|---|---|---|---|
dr-xr-x---. | 8 | root | root | 4096 | Jul 27 10:28 | . |
dr-xr-xr-x. | 27 | root | root | 4096 | Jul 27 10:28 | .. |
-rw-------. | 1 | root | root | 1 | Jul 27 10:28 | anaconda-ks.cfg |
lrwxrwxrwx. | 1 | root | root | 1 | Jul 27 10:28 | /dev/null |
chown 用户身份:用户组 文件名
chown root:root 文件名
2:权限定义——网上内容
linux每一个用户都属于一个组,不能独立于组外。linux的文件权限需要定义三个实体对它的权限
- 文件所有者
- 文件所在组
- 其他组
所有者
一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者
可以使用chown【change owner】 用户名 文件名来修改文件的所有者,例如更改error.log的所有者为enoch
chown enoch error.log #更改error.log的所有者为enoch
chown enoch:home error.log #更改error.log的所有者和用户组为enoch与home
chown .home error.log #更改error.log的用户组为home
#在所有者和用户组中使用“.”也可以,但是由于很多用户喜欢使用小数点,可能造成系统误判,所以建议使用":"
所在组
当用户创建了一个文件后,这个文件的所在组就是该用户所在的用户组
可以使用chgrp【change group】来改变文件的所在组
chgrp home error.log #修改文件的所在组为home
其他组
除开所在组之外的其他组均为其他组
3:权限说明——网上内容
当我们使用命令 ls -l 时候就会显示出改文件或者文件夹相对应的权限
drwx------ 2 www www 4096 May 5 19:35 www
drwxrwxrwx 2 root root 4096 May 5 16:51 wwwlogs
drwxr-xr-x 3 root root 4096 Jul 4 20:45 wwwroot
第一列规定了文件权限说明,共由十个字符分成四个部分,用www目录来说
d | rwx | --- | --- |
---|---|---|---|
1 | 234 | 567 | 890 |
1:代表这个文件是目录还是文件名其中d代表目录,如果是文件则为-,更多的文件信息如下
1 | d 目录文件。 |
2 | l 符号链接(指向另一个文件,类似于瘟下的快捷方式)。 |
3 | s 套接字文件。 |
4 | b 块设备文件,二进制文件。 |
5 | c 字符设备文件。 |
6 | p 命名管道文件。 |
234:文件所有者的权限,rwx及为可读可写可执行
r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限(不包含删除该文件);对目录来说,具有新建,删除,修改,移动目录内文件的权限(不论该文件的权限为何都可以进行删除操作)。
x(Execute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限(能否使用cd命令进入该目录)。
567:文件所有组的权限,---代表没有任何权限
890:除开所有者与所有组以外用户的权限,此处没有任何权限
:4:修改权限——网上内容
修改权限的命令是chmod,而改变权限的方式分为两种
1.数字改变权限法
Linux的文件基本权限只有九个,分别是onwer,group,other三种身份,所以我们可以用数字来代表权限,其中
r : 4
w : 2
x : 1
每种身份设置权限为数字的累加,比如将error.log文件设置成所有人都有RWX权限,则
chmod 777 error.log
因为[-rwxrwxrwx]实际上是[4+2+1][4+2+1][4+2+1]也就是777了。如果我们将权限变为[-rwxr-xr--]则[4+2+1][4+0+1][4+0+0]即为754
2.符号改变法
符号改变法实际上就是对不同实体设置权限,其中我们只要懂的三个部分的含义就可以
举几个例子来说明吧,设置用户对error.log有rwx权限,所在组和其他组有rx权限。
chmod u=rwx,go=rx error.log
设置用户对error.log有rwx权限,所在组有rx权限,其他组有r权限
chmod u=rwx,g=rx,o=r error.log
出去所有用户的可执行权限
chmod a-x error.log