2010-01-24 139 views
0

我在Web服务器中有一个.TXT文件,其权限为777.那么其他人可能能够编辑此文件的内容有哪些更改?内容并不多 - 只是一个数字。有人似乎一直在修改这个文件,因为这个数字在前几天消失了!将数据写入具有777权限的文件

除了我以外没有人拥有FTP密码。所以我想知道这是否是允许它的许可?我是一位客户端脚本程序员,对Linux和权限知之甚少。

+0

我将添加这些数字的含义 - 每个数字是对所有者,组和其他人的读取,写入和执行权限。 4是可读的,6是可读和可写的,7是可读,可写和可执行的,等等。 – JAL 2010-01-24 03:32:43

回答

3

如果是777,那意味着任何拥有系统帐户或系统上运行的任何应用程序(包括PHP脚本,甚至是那些除您以外的人拥有的脚本)都可以以任何方式修改该文件。

所以,是的,可能有人对该文件进行修饰。它可能是你的PHP脚本中的一个错误消除了数字?

如果可以这样做,最好将权限降低到644等更严格的权限。如果访问该文件的PHP脚本以拥有该文件的同一用户身份执行,这仍然可行。许多网络主机都是这样配置的,所以你可以做到这一点。 644表示文件的所有者可以读取和写入文件,而其他文件只能读取。

+0

我试过 - 将.txt文件的权限改为644.但是我的writer.php不能再写入文件! 从浏览器打开writer.php时,它是否以用户身份执行? 对不起,您能否详细介绍一下如何解决这个问题? – Yeti 2010-01-24 03:56:33

+0

当Web浏览器访问writer.php时,它会作为Web服务器用户标识(或者在某些情况下,PHP用户,有时与Web服务器用户相同)执行。由于将txt文件设置为644会阻止您的PHP脚本工作,这表明Web服务器用户或用于运行PHP进程的用户标识与拥有文件的用户不同。在这种情况下,您必须与您的虚拟主机一起工作才能找出一个解决方案来保护您的文件,以便您不需要设置过多(666/777)权限。 – Jeff 2010-01-24 05:05:17

2

这是最后7个问题。第3个7表示读/写/执行系统上任何用户的权限。对于许多托管提供商而言,640或660对于需要编写的文件而言足够安全。

1

任何人都可以在该文件中写入任何内容,并且该文件可以由任何人执行。如果你从不打算将它作为脚本,请使用666权限(或更具限制性);如果确实希望它是一个脚本,不要让任何人修改它(755)。

+0

这只是一个.txt文件。我在里面储存了一些信息。当用户来到这个页面时,Writer.php写入这个.txt文件。当我将权限更改为644时,writer.php不再能够写入txt文件。难道我做错了什么? – Yeti 2010-01-24 03:58:36

+0

试图写入文件的人(用户ID)不是文件的所有者。您必须决定谁应该拥有该文件,哪个组以及权限应该是什么。请记住,如果您使用666权限,则文件中的数据不安全;任何人都可以随时修改该文件,只要他们有权访问它。 – 2010-01-24 04:40:27