Linux作为一个多用户操作系统,通过权限机制保证各个用户的操作行为不互相干扰,正确理解权限显得尤为重要
使用ls -al /
命令可以清楚的看到各个文件和目录的权限,比如这个
drwxr-xr-x 3 root root 4096 Dec 10 02:40 home
第一个字符串描述了权限信息,第二个为链接次数,第三个为所有者,第四个为用户组,第五个为文件大小,第七个为最后一次修改日期,第八个为为最后一次修改时间,第九个为文件名。下面我们来一次了解以上包含的一些概念。
- 权限信息。第一个字符为文件类型,之后三个为所有者的权限,中间三个为用户组的权限,最后三个为其他人的权限。w表示可写,r表示可读,x表示可执行,-表示不具有该权限。
- 所有者。该文件属于那个用户
- 所有用户组。该文件属于哪个用户组,该用户组下的所有成员具有相同的权限(所有者除外)。
下面讲下如何更改权限,所有者以及用户组
chgrp 用户组 文件或目录
,你可以通过查看/etc/group
来查看当前系统存在哪些用户组。chown 用户[:用户组] 文件或目录
,这个命令不仅可以改变所有者,还可以改变用户组,如果只想改变用户组,需要带上冒号chmod
,这个命令有两种用法,使用数字权限或字符权限
数字权限:将wrx看做二进制数,111=7表示wrx,000=0表示—,以此类推,此时为chmod 权限 文件或目录
字符权限:u表示用户,g表示用户组,o表示其他,a表示全部,+表示添加,-表示去除,=表示设定,那么可以表示为
chmod [u,g,o,a] [+,-,=] [r,w,x] 文件或目录
,如
chmod u=rwx,go+r
表示给所有者的权限为读写执行,给用户组及其他用户添加读权限。
下面我们来看看不同的权限对于文件或目录有什么作用。
- 对于文件。
r表示可读取;
w表示可编辑内容但不包括删除;
x表示可执行。在Linux下一个文件是否可执行看权限,而Windows则看后缀名。 - 对于目录。
r表示可以读取该目录的文件结构;
w表示可以对目录中的数据进行新建,删除,重命名,移动;
x表示可以进入该目录。
接下来我们看看Linux有哪些类型的文件
- 普通文件。使用【-】表示,包括纯文本,二进制文件,数据文件。
- 目录。使用【d】表示。
- 链接。使用【l】表示,类似windows下的快捷方式。
- 块设备。使用【b】表示,包括硬盘,U盘等设备。
- 字符设备。使用【c】表示,包括键盘鼠标等。
- 套接字。使用【s】表示,通常用来网络连接。
- 管道。使用【p】表示,用在进程间通信。
下面我们再来简单了解一下Linux下的目录配置,即不同的目录到底存了些什么文件,相信这也是初学Linux人的疑惑。详细的信息请参考FHS。