了解权限

假设有一个我们想要执行的文件,例如一个名为 add.sh 的 bash 脚本。但是输入 ./add.sh 会产生权限错误。获取权限是一个简单的过程。

要确定文件具有的权限,请键入:

ls -l filename,或者,在我们的例子中,ls -l ./add.sh

这会将以下内容打印到控制台:

-r--r--r-- 1 username groupname 0 Jan 4 12:00 add.sh

让我们停下来理解这意味着什么。权限有三种不同类型:所有者,组,其他。不同的权限适用于每种权限类型。

还有三个权限操作,更广泛地还描述了用户可以对文件执行的操作。它们是:(读:r,​​写:w,执行:x)。

所以,回到破折号和 r 的那一串。每个权限组都有三种潜在的能力。这些组按照 owner-group-others 的顺序列出,并且操作为 read-write-execute

但等等,这意味着在字符串的开头有一个额外的字符。这实际上是文件描述符字符。我们可以看到有一个 -,但其他字符存在像 directories(d),sockets(s),symbolic link(l) 等。

这给我们留下了基本上这些信息:a file where owner, group, and others have read permissions. No other permissions granted.

让我们改变它以允许所有者也编写和执行该文件。注意:根据权限,可能需要将 sudo 添加到此命令。

chmod 744 add.sh
ls -l add.sh

打印出来

-rwxr--r-- 1 username groupname 0 Month time add.sh

现在,文件的所有者可以通过键入来执行该文件

./add.sh