Linux文件基本属性
Posted 生活太多无奈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件基本属性相关的知识,希望对你有一定的参考价值。
文章来源于菜鸟教程:http://www.runoob.com/linux
在这里为了加深记忆,所以写当前文章。如果版权问题,留言。
Linux文件基本属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组,如:
[root@www /]# ls -l total 64 dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot ……
实例中,bin文件第一个属性用“d”标识。“d”在Linux中代表该文件是一个目录文件。
在Linux中第一个字符代表这个文件是目录、文件或者链接文件等等。
- 当为【d】则是目录
- 当为【-】则是文件
- 若是【/】则标识为链接文档(link file)
- 若是【b】则表示为装置文件里面的可供储存的接口设备(可随机存取装置)
- 若是【c】则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
接下来的字符中,以三个为一组,缺均为【rwx】的三个参数的组合。其中【r】代表可读(read)、【w】代表可写(write)、【x】代表可执行(execute)。要注意的是,这三个权限的位置不会改变,如果没有权限就会出现【-】而已。
每个文件的属性由左边第一部分的10个字符来确定(如下图):
从左至右用0-9这些数字来表示。
第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。
第4-6位确定文件的属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。
其中第1/4/7位表示读权限,如果用“r”字符表示,则有读权限,如果用“-”字符表示,则没有度权限。
第2/5/8位表示写权限,如果用“w”字符表示则有写权限,如果用“-”字符表示则没有写权限。
第3/6/9位表示可执行权限,如果用“x”字符表示,则有执行权限,如果用“-”表示则没有执行权限。
Linux文件属主和属组
[root@www /]# ls -l total 64 drwxr-xr-x 2 root root 4096 Feb 15 14:46 cron drwxr-xr-x 3 mysql mysql 4096 Apr 21 2014 mysql ……
对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权限的用户。
同时,在linux系统中,用户是按组分类的,一个用户属于一个或者多个组。
文件所有者意外的用户又可以分为文件所有者的同组用户和其他用户。
因此,linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
在以上实例中,mysql文件是一个目录文件,属主和属组都是mysql,属主有可读、可写、可执行权限;与属主同组的其他用户有可读和可执行的权限。其他用户也有可读可执行的权限。
对于root用户来说,一般情况下,文件的权限对其不起作用。
更改文件属性
1、chgrp :更改文件属组
语法:
chgrp [-R] 属组名 文件名
参数选项:
- -R : 递归更改文件属组,就是在更改某个文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2、chown :更改文件的属主,也可以同时更改文件的属组
语法:
chown [-R] 属主名 文件名 chown [-R] 属主名:属组名 文件名
进入/root目录(~)将install.log 的拥有者改为bin这个账号:
cd ~ 或 cd /root chown bin install.log ll 或 ls -l
将install.log的拥有者与属组改回root:
chown root:root install.log 或 chown root install.log chgrp root install.log
3、chmod:更改文件9个属性
Linux文件属性由两种设置方法,一种是数字,一种是符号。
Linux文件的基本权限就有9个,分别是owner、group、others三种分别各有自己的read、write、execute权限。
先复习一下刚刚上面提到的数据;文件的权限字符为:【-rwxrwxrwx】,这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对应表如下:
- 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
所以等一下我们设定权限的变更时,该文件的权限数字就是770啦!变更权限的指令chmod 的语法是这样的:
chmod [-R] xyz 文件或者目录
- xyz:就是刚刚提到的数字类型的权限属性,为rwx属性数值的相加。
- -R : 进行递归(recursive)的持续变更,亦即连同此目录下的所有文件都会变更。
举例来说,如果要将.bashrc这个文件所有的权限都设定启用,那么命令如下:
chmod 777 .bashrc
那如果要将权限变成-rwxr-xr--呢?那么权限的分数就成为[4+2+1]+[4+0+1][4+0+0]=754。
符号类型改变文件权限
还有一个改变权限的方法哟,从之前的介绍中我们可以发现,基本上就九个权限分别是(1)user(2)group(3)ohters 三种身份啦!那么我们可以藉由u,g,o来代表三种身份的权限!
此外,a则代表all亦即全部的身份!那么读写权限就可以写成r,w,x!也就可以使用底下的方式来看:
u
g + r
chmod o - w 文件或目录
a = x
如果我们需要将文件权限设置为-rwxr-xr--, 可以使用chmod u=rwx,g=rx,o=r 文件名 来设定。
以上是关于Linux文件基本属性的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段