还记得之前我们写了一个daily_routine.sh文件吗,这个文件刚开始是没有执行权限的,我们通过chmod +x daily_routine.sh命令,给它加了一个Executable权限,它才能够执行。

这节我们了解下文件的权限问题。

现在我们刚登录系统之后,先使用ls -l这个命令来看一下,home directory里面的文件的详细信息,这些详细信息里面又包括这些文件的权限信息,我们看看这些文件都有哪些权限,ls -l这个命令运行后如下图:

python打开文件权限不足 python设置文件权限_服务器

我们看到bin、Desktop、Documents、Downloads等等这些文件,他们最左边都有一串字符,比如说bin最左边的这一串字符:drwxrwxr-x,这是什么意思呢?这是乱码吗?

这一串字符可以形象化的表示文件的权限。比如drwxrwxr-x:

这一串字符可以分为3部分,

第一部分是drwx,第二部分是rwx,第三部分是r-x。

我们看到bin所在的这一行里面有两个xiaozhi,第一个xiaozhi是代表xiaozhi这个用户,第二个xiaozhi表示xiaozhi这个用户组。

第一部分drwx代表xiaozhi这个用户所具有的权限,第二部分的rwx代表xiaozhi这个用户组所具有的权限,第三部分的r-x代表其他未登录的用户以及登录到服务器的其他用户所具有的权限。

其中第一部分的drwx中的d,就表示xiaozhi这个用户具有directory的权限,r就表示xiaozhi这个用户具有read(读)的权限,w就表示xiaozhi这个用户具有write(写)的权限,x就表示xiaozhi这个用户具有Executable(可执行的)权限。

第二部分的rwx中的r,就表示xiaozhi这个用户组具有read的权限,w就表示xiaozhi这个用户组具有write的权限,x就表示xiaozhi这个用户组具有executable的权限。

第三部分的r-x中的r和x,跟前面的r和x所代表的的含义一样,就是读的权限和可执行的权限。而这个-,就表示没有的意思,就是没有permission(权限),我们的权限顺序是rwx,那么这里的r-x,没有w,所以就是没有w(改写)的权限。

这就说明没有登录到服务器的用户或登录到服务器的其他用户有读和执行的权限,但是没有写的权限。

我们还可以用桌面上的文件举例,来说明下它的权限。

我现在用命令ls -l Desktop/

来打开我的桌面上的文件的详细信息。

如下图:

python打开文件权限不足 python设置文件权限_python打开文件权限不足_02

比如说,linux_zip.zip这个文件,它是一个压缩文件,它对应的表示权限的字符串是-rw-rw-r--。第一个字符是-,没有d,说明没有directory的权限,然后每三个字符分为一部分,第一部分rw-,没有x,说明对于用户xiaozhi,这个文件没有可执行权限,第二部分rw-,没有x,说明对于用户组xiaozhi,这个文件也没有可执行权限,第三部分r--,没有w、没有x,说明对于其他用户,这个文件没有写的权限,也没有可执行权限。

因此,这个linux_zip.zip这个文件,对于xiaozhi用户和xiaozhi用户组,有读写权限,没有可执行权限,对于所有用户来说,只有读的权限,没有可执行权限。

还比如说,test这个文件,表示它的权限的字符串是drwxrwxr-x,说明它有directory权限,对所有用户有读的权限,对于xiaozhi用户和xiaozhi用户组,有写的权限和可执行权限,对于其他用户,有读的权限,和可执行权限,但是没有写的权限。

由此,我们就大概清楚了文件的详细信息中最前面的那一串字符的含义,它的权限是什么样的。