-1

我想使用 /etc/sudoers 将文件的所有者从 bangtest(user) 更改为 root。

更改原因:当我使用 Django 应用程序从 bangtest(user) 将图像上传到我的服务器时,图像文件权限就像

ls -l /home/bangtest/alpha/media/products/image_2093.jpg 
-rw-r--r-- 1 bangtest bangtest 28984 May  6 02:47

但是当我尝试使用//myhost/media/products/image_2093.jpg从服务器访问这些文件时,我收到404错误。当我尝试记录错误时

 Caught race condition abuser. attacker: 0, victim: 502 open file owner: 502, open file: /home/bangtest/alpha/media/products/image_2093.jpg

当我将文件的所有者从 bangtest 更改为 root 之后,我就可以完美地访问图像了。因此,由于这个原因,我想使用 python 脚本动态更改文件的所有者。

我已经尝试通过更改如下所述的 sudoers 文件。但我仍然收到类似的错误

chown: changing ownership of `image.jpg': Operation not permitted

我的 sudoers 代码:

root    ALL=(ALL)       ALL
bangtest  ALL=(ALL) /bin/chown root:bangtest /home/bangtest/alpha/*

任何线索为什么 sudoers 不工作?

注意:操作系统Linux。

谢谢

4

2 回答 2

0

使用ACL

setfacl -dm u::rwx,g::rwx,o::rwx /home/bangtest/alpha/media/products/

在此文件夹中创建的所有文件都将所有用户的权限设置为 rwx。

EDIT:// 更改 chmod 的权限是危险的,但有可能,编辑 /etc/sudoers

bangtest  ALL=(ALL) NOPASSWD: /usr/bin/chmod
于 2014-05-08T07:31:41.757 回答
0

在我看来,您的问题是您正在尝试使用 //myhost (它的路径)将文件作为本地计算机上的文件进行访问。// 不适用于服务器,如果这就是你想要的,或者至少它不适用于我正在使用的 ruby​​ on rails 。如果它是您本地机器上的一个位置,请使用 //myhost/media/products/image_2093.jpg,如果它是您尝试通过服务器访问的东西,请尝试 /myhost/media/products/image_2093.jpg。我不知道有什么好的帖子可以推荐给你,但我只是自己测试了一下。希望能帮助到你

我能够找到一些听起来像证据的有趣信息。 http://www.mail-archive.com/dev@httpd.apache.org/msg55666.html

于 2014-05-08T05:58:31.380 回答