在终端输入:ls -l filename 会出现文件属性,主要是如下这些: -rw-rw-r-x 一共10位,标识着文件的权限和所有者,下面对这10位进行详细介绍。
1. Linux文件类型
最前面的’-'这一位代表文件类型,不同的文件类型使用的字符不一样。Linux文件类型不是由文件扩展名来区分的,常见文件类型有:普通文件、目录、字符设备文件、块设备文件、套接口文件、符号链接文件等。
| Linux文件类型 | 文件属性的第一个字符 |
| 普通文件 | - |
| 目录 | d |
| 字符设备文件 | c |
| 块设备文件 | b |
| 套接口文件 | s |
| 符号链接文件 | l |
2. 文件权限
linux下目录和文件的权限区别:
文件:读文件内容(r)、写数据到文件(w)、作为命令执行文件(x)。
目录:读包含在目录中的文件名称(r)、写信息到目录中去(增加和删除索引点的连结)(w)、搜索目录(能用该目录名称作为路径名去访问它所包含的文件和子目录)(x)
具体说就是:
(1)有只读权限的用户不能用cd进入该目录:还必须有执行权限才能进入。
(2)有执行权限的用户只有在知道文件名,并拥有读权利的情况下才可以访问目录下的文件。
(3)必须有读和执行权限才可以ls列出目录清单,或使用cd命令进入目录。
(4)有目录的写权限,可以创建、删除或修改目录下的任何文件或子目录,即使使该文件或子目录属于其他用户也是如此。
第2位到第5位”rw-”这三位代表的是所有者的访问权限(user);第6位到第8位”rw-”这三位代表的是组群(group)的访问权限;最后三位”r-x”代表的是其他人的访问权限(other)。
r 表示文件可以被读(read);
w 表示文件可以被写(write);
x 表示文件可以被执行(如果它是程序的话);
- 表示相应的权限还没有被授予。
3. 改变文件权限
使用chmod命令来改变文件和目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
3.1 文字设定法
chmod [who][+或-或=][mode] 文件名
命令中各选项的含义为:
操作对象who可是下述字母中的任一个或者它们的组合:
u 表示“用户(user)”,即文件或目录的所有者;
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户;
o 表示“其他(others)用户”;
a 表示“所有(all)用户”,它是系统默认值,即如果who这项省略或者为a,则权限的改变是针对所有用户。
操作符号可以是:
+ 添加某个权限;- 取消某个权限;= 赋予给定权限并取消其他所有权限(如果有的话)。
mode所表示的权限可用下述字母的任意组合:
r 可读;
w 可写;
x 可执行;
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性;
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式”u+s”设置文件的用户ID位,”g+s”设置组ID位;
t 保存程序的文本到交换设备上;
u 与文件属主拥有一样的权限;
g 与和文件属主同组的用户拥有一样的权限;
o 与其他用户拥有一样的权限;
文件名:以空格分开的要改变权限的文件列表,支持通配符;
在一个命令行中可给出多个权限方式,其间用逗号隔开。
例如:chmod g+r,o+r filename
使同组和其他用户对文件filename 有读权限。
3.2 数字设定法
chmod [mode] 文件名
这里mode由三个0-7之间的数字代表权限,每个数字对应一个操作对象(所有者、同组、其他用户)。因此,首先要理解这里每个数字的含义,我们知道对每个操作对象who都有3位(rwx)来代表权限。将这三位做如下处理。
r 这位代表读权限,它要么为4要么为0,字符表示要么为’-'要么为’r’ ;
w 这位代表写权限,它要么为2要么为0,字符表示要么为’-'要么为’r’ ;
x 这位代表执行权限,它要么为1要么为0,字符表示要们为’-'要么为’x’ 。
将这三位填充好以后,三位数字之和就是数字设定法中我们需要的0-7之间的数字。同理,对三个操作对象都进行如下操作那么就能组合出三个0-7的数字。
例如:想让某个文件的拥有者读/写权限,其他的用户和组都没有权限。那么对于文件拥有者就是4(读)+2(写)+0(执行)=6,其他用户和同组都是0+0+0=0,所以可以使用如下命令进行权限的修改:
chmod 600 filename
使用命令:ls -l filename 可以查看属性前10位为:-rw——-
4. 改变文件属主
Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理 者(root)所使用。一般使用者没有权限可以改变别人的档案拥有者,也没有权限将自己的档案拥有者改设为别人。
命令格式:chown user[:group] filename,其他的参数可以查看手册(man chown)。
例如:chown temp:users filename 这个命令就是将filename这个文件属主改成users组下的temp用户,可以使用ls -l进行查看文件属性。
如果使用命令chown temp filename,那么这里只改变文件的拥有者,不改变文件所属群组。
改变文件所属群组使用命令chgrp group filename,例如:chgrp users filename,将文件所属群组改成users群组。
good,基本的linux扫盲篇