我添加了一个文件,/etc/init.d
但注意到当我执行该操作时该文件不像其他文件那样是绿色,ls -l
我应该怎么做才能使其变为“绿色”或添加必要的文件权限?
为什么这些文件首先是绿色的?
答案1
回答你的问题
您需要做的就是以 root 身份运行以下命令。
chmod 755 /etc/init.d/你的脚本
现在,如果您真的想了解其工作原理,请继续阅读。
背景
一旦有人向您解释权限,您就会很容易理解权限。所有文件和目录都有 3 种权限类型,并且 3 个不同的人群可以拥有不同的权限。
所有用户都可以对文件和目录拥有以下权限:
- 读
- 文件夹:您可以看到文件夹中的文件
- 文件:您可以读取文件
- 写
- 文件夹:可以创建文件,移动文件等。
- 文件:您可以更改文件中的数据。
- 执行
- 文件夹:你可以 cd 进入该文件夹
- 文件:您可以将该文件作为程序运行。
这些权利赋予三类人:
- 所有者
- 团体
- 其他(其他所有人)
在 Linux 系统上,当您对 /etc/init.d 执行 ls -l 时,您会得到如下结果:
$ ls -l /etc/init.d/
-rwxr-xr-x 1 根 根 2787 2009-11-05 08:03 umountfs
-rwxr-xr-x 1 根 根 2075 2009-10-14 00:16 umountnfs.sh
第一部分(-rwxr-xr-x)列出了权限,第三部分显示了所有者(root),第四部分显示了组(root)。
权限列表分为四个部分。第一个字母是文件类型。如果是文件,则为破折号。如果是目录,则为 d。如果是链接,则为 l。接下来的三个字母代表所有者的权限。rwx 表示用户可以读取、写入和执行。接下来的三个字母代表组的权限。在这种情况下,组只能读取和执行 (rx)。W 被替换为破折号,表示不允许。最后,不属于该组的每个人都被赋予读取和执行权限 (rx)。
修改权限和所有权
现在我们已经了解了识别权限,我们可以修改它们。
修改模式
chmod 是用于更改权限的工具。我在本回答开头给出的一个例子就是它的一个很好的用法。
chmod 755 /etc/init.d/你的脚本
第一个参数(755)提供权限,下一个参数是需要修改的文件列表。
权限列表 755 是 -rwxr-xr-x 的简写。第一个数字是所有者的权限,第二个数字是组的权限,第三个数字是其他人的权限。每个数字代表 rwx。
许可号码:
- 执行 1
- 写 2
- 阅读 4
chmod 命令中使用权限数字的总和。因此,7 表示所有权限(4+2+1),5 表示读取和执行(4+1)。
所以,把所有这些加起来 755 就是
- 所有者拥有所有权限
- 为小组读取并执行
- 读取并执行其他所有人的
chown
chown 是用于更改所有权和组的工具。它比 chmod 简单得多。
chown root.root /etc/init.d/yourscript
第一个参数是用户组。接下来的参数是要更改的文件。就这么简单。
答案2
您所指的绿色取决于组装 Linux 发行版的人,在 Linux 世界中没有固定的含义。但是,根据正常使用惯例,它通常与可执行文件相关联。在上面的评论中,Ignacio 要求您更深入地了解。例如:
# ls -l
-rwxr-xr-x. 1 root root 1729 Dec 8 06:10 acpid
你看到了什么?如果你看左侧,你会发现有三组权限。在这种情况下,用户 root 可以执行、读取和写入,组 root 的成员可以读取和执行,其他所有人都可以读取和执行。最左边的第一个破折号表示特殊权限、目录和符号链接。
那么如何改变这种情况呢?有两种基本方法,都涉及命令 chmod(更改模式)。您可以执行 chmod u+x file 以允许所有者执行该文件,或者您可以执行 chmod a+x 以允许所有人(包括所有者和组)执行该文件,或者您可以执行 chmod 550 以授予所有者和组读取和执行权限。
维基百科有一个很棒的文章讨论 chmod 以及基本文件权限。
答案3
chown root.root /etc/init.d/file
chmod 755 /etc/init.d/file