查看文件权限
假设我们当前目录下有一个文件,叫做TestFile,我们输入ls命令:
$ ls -l
屏幕显示如下:
drwxr-xr-x 2 test test 4096 3月 16 22:20 TestFile
。
含义如下:
drwxr-xr-x
表示文件类型和权限;
2
表示链接数;
test
表示所有者;
test
表示所属用户组;
4096
表示文件大小;
3月 16 22:20
表示最后修改时间;
TestFile
表示文件名。
其中,drwxr-xr-x
具体含义如下:
第一位表示文件类型,
d
:目录;
l
:软链接;
b
:块设备;
c
:字符设备;
s
:socket;
p
:管道;
-
:普通文件。
第2-4位表示拥有者权限,第5-7位表示所属用户组权限,第8-10位表示其他用户权限,其中,
r
表示允许读权限,
w
表示允许写权限,
x
表示允许执行权限。
文件类型
Linux里面一切皆文件。比如设备文件,socket,pipe,软链接文件。链接文件是分为两种的,另一种就是“硬链接”。不过硬链接不常用,而软链接等同于Windows上的快捷方式。
文件权限
读权限,表示可以使用cat <file name>
之类的命令来读取某个文件的内容;
写权限,表示可以编辑和修改某个文件;
执行权限,通常指可以运行的二进制程序文件或者脚本文件。
需要注意的一点是,一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息。
链接数
链接到该文件所在的inode结点的文件名数目。
文件大小
以inode结点大小为单位来表示的文件大小。可以给ls
加上-lh
参数来更直观的查看文件的大小。
ls命令的一些其它常用的用法
$ ls -A
可以显示除了 ‘.’(当前目录)和’..’(上一级目录)之外的所有文件,包含隐藏文件(Linux 下以’.’开头的文件为隐藏文件)。
$ ls -dl <目录名>
可以查看某一个目录的完整属性,而不是显示目录里面的文件属性。
$ ls -AsSh
可以显示所有文件大小,并以对人友好的方式呈现。其中小s为显示文件大小,大S为按文件大小排序。
变更文件所有者
$ sudo chown test onefile
用这个命令可以把onefile这个文件的所有者变为test。
修改文件权限
方式一:二进制数字表示
每个文件的三组权限(拥有者,所属用户组,其他用户)就对应一个 “rwx”,每一位对应对应二进制的1或0,有这个权限,这一位就是1。也就是说,“rwx”权限就是二进制的也就是“111”,换成十进制就是“7”。
所以如果我要将文件“onefile”的权限改为只有我自己,那就是说权限应该是rwx------
,对应的二进制权限表示就是“111000000”,对应的十进制就是“700”,那就可以用这样的命令:$ chmod 700 onefile
。现在,其他用户已经不能读这个“onefile”文件了。
方式二:加减赋值操作
要完成上述相同的效果,可以:$ chmod go-rw onefile
。
‘u’,’g’和’o’,分别表示user,group,others;’+’,’-’ 就分别表示增加和去掉相应的权限。