【问题标题】:Change the owner of a file from a user to root using sudoers in linux在linux中使用sudoers将文件的所有者从用户更改为root
【发布时间】:2014-05-08 05:39:57
【问题描述】:

我想使用 /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。

谢谢

【问题讨论】:

  • 而 Django 以哪个用户身份运行?
  • @J0HN Django 用户 bangtest
  • 您确定在保存文件时将其关闭吗?还有一件事,cPanel 是否以某种方式参与?谷歌上有很多与 cPanel 相关的“Caught race condition abuser”搜索结果。

标签: python linux django sudoers


【解决方案1】:

在我看来,您的问题是您正试图通过使用 //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

【讨论】:

【解决方案2】:

使用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

【讨论】:

  • ,感谢您的回复,但是当尝试运行 setfacl 命令时。-bash: setfacl: command not found 我得到了这个错误
猜你喜欢
  • 1970-01-01
  • 2012-10-25
  • 1970-01-01
  • 2011-12-29
  • 2021-12-24
  • 1970-01-01
  • 2014-03-23
  • 2015-11-02
  • 2013-05-27
相关资源
最近更新 更多