我最近在我的服务器上安装了 Ubuntu 服务器,以新用户身份试用 Linux。我按照有关如何设置 Web 服务器的教程操作,其中说我需要chmod 777
Web 服务器目录,以便可以将其写入。
无论如何,我为一个人创建了一个新帐户,以允许他查看我放在他主目录中的服务器上的某些文件:
adduser francis
创建帐户后,我检查了他拥有哪些访问权限
groups francis
它显示“francis : francis”,所以我认为这不是问题,ubuntu 默认没有将他纳入任何组,这是有道理的,它在安全方面没有为他创建任何额外权限,所以一切都很好。一周后,我惊恐万分地发现,尽管他不能执行 SUDO 之类的操作或在系统目录中乱搞,但他几乎可以完全访问服务器上的所有其他内容。例如,他对 /var/www 上的 Web 服务器文件具有完全的读/写访问权限(因此可以访问存储在 php 配置文件等中的密码),即使该目录不在他的主目录中,我从未将他添加到可以访问该目录的任何组中,在执行 adduser 之后,我也没有授予他对任何内容的任何特殊访问权限。
无论如何,这是怎么回事?我该如何终止他对任何重要内容的访问权限?他不应该能够访问 /media 或 /var/www 之类的内容。我认为默认情况下会禁止新用户进行任何危险操作或窥探他们不应该窥探的地方。
所以总结一下,我只需要允许他访问我手动指定的目录+他需要正常运行的目录(他的主目录,vim,nano等)。
谢谢
答案1
这是设计好的。更糟糕的是。chmod 777 的意思是……“我希望所有者、其组中的任何人以及任何人都拥有读取、写入和执行权限”
这真是太糟糕了。
对于 Web 服务器来说,777 并不是最佳选择。755(所有者拥有完全权限组,其他人拥有读取 + 执行权限)是常见的默认值但从你所说的内容来看,你至少希望所有者(Web 服务器用户)和组具有读写或读写执行权限,而用户则没有任何权限。关于哪些权限级别合适,有一个更完整的问题服务器故障但请考虑 640 或 740 之类的数字。
也就是说,你也可以把用户放在他自己的小世界里——设置 chroot 来让用户在在系统中拥有自己的空间。有指南可以做到这一点 - 例如oli 的精彩回答在这里这可能是一个取决于您需求的选择。
答案2
本质上,它分解如下:
R = 4 (read)
W = 2 (write)
X = 1 (execute)
因此,仅读取权限为 4,读取和写入权限为 6,读取和执行权限为 5,而全部(读取、写入、执行)权限为 7。这就是为所有者、所有者组或所有人计算权限八位字节值的方法。
将这些权限应用于chmod
文件或目录位置时,上面计算的数字将像这样应用,每个八位字节代表所有者、组和每个人:
$ chmod _ _ _ <file or directory>
| | |
owner-------- | |
owner's group-- |
everyone---------
因此,如果我想授予自己和我的组对我拥有的文件夹的读取、写入和执行权限,但我不想每个人为了能够读取它,我会使用:
$ chmod 770 myDirectory
如需了解更多信息,请查看chmod 的手册页:
$ man chmod
答案3
正如其他人提到的,你不应该将权限设置为 777
这是一份我使用的有用的参考表。
+-----+---+--------------------------+
| rwx | 7 | Read, write and execute |
| rw- | 6 | Read, write |
| r-x | 5 | Read, and execute |
| r-- | 4 | Read, |
| -wx | 3 | Write and execute |
| -w- | 2 | Write |
| --x | 1 | Execute |
| --- | 0 | no permissions |
+------------------------------------+
You can use the octal notation, where the three digits correspond to the user, then group, then other.
Perhaps this might help
+------------+------+-------+
| Permission | Octal| Field |
+------------+------+-------+
| rwx------ | 700 | User |
| ---rwx--- | 070 | Group |
| ------rwx | 007 | Other |
+------------+------+-------+
答案4
在 Ubuntu 中,任何添加到“sudo”组中的用户都具有超级用户权限,请检查以确保没有其他用户添加到此组中。
为了保护您的文件和目录不被其他用户访问,您可以按照上述回答中 Journeyman Geek 先生的建议设置权限。
您还可以使用特殊权限来保护您的文件和目录不被他人侵犯。