了解权限
假设有一个我们想要执行的文件,例如一个名为 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