无法访问属于nobody的媒体文件:nobody

时间:2017-01-06 07:59:58

标签: python django centos

当我将django项目部署到centos时,我无法通过URL访问它。

从django admin上传的媒体文件属于用户和组nobody:nobody

当我将所有权更改为我的用户时,可以访问它。如何在不明确指定chmod的情况下允许访问这些文件?

2 个答案:

答案 0 :(得分:1)

您可以使用ACL权限访问控制列表。 使用此方法,您可以定义将在文件夹中创建的内容的默认所有者和权限。

在CentOS上,您可以使用以下命令安装它:

yum install acl

安装完成后,命令 getfacl 将返回特定文件的acl设置:

getfacl /path/to/your/folder

命令 setfacl 将设置访问权限。 要设置默认权限:

setfacl -Rm d:u:username:rwx,g:groupname:rwx /path/to/your/folder

此文件夹中创建的内容将继承默认ACL。

答案 1 :(得分:0)

运行将显示文件所有者的MongoReadData_ResponseTEST<RocketResponse>(Mongo_ListOfFieldsToDisplay_RocketResponse, "RocketResponse", "RocketResponseId"); MongoReadData_ResponseTEST<RocketRequest>(Mongo_ListOfFieldsToDisplay_RocketRequest, "RocketRequest", "RocketRequestId"); public static int MongoReadData_ResponseTEST<T>(string[] MongoListOfFieldsToDisplay, string CollectionName, string PKToSearchOn) where T : class, new() { int CountRecords = 0; // create connection TO MongoDB MongoClient MongoClientConn = new MongoDatabaseConnection().mongoConn(); var MongoDB = MongoClientConn.GetDatabase("Viper"); var collection = MongoDB.GetCollection<T>(CollectionName); var filter = Builders<T>.Filter.Eq(PKToSearchOn, 4); //var filter = Builders<RocketRequest>.Filter.Empty; var result = collection.Find(filter).ToListAsync().Result; // do here so it is after the filtering CountRecords = Convert.ToInt32(collection.Find(filter).Count()); return CountRecords; }// end MongoReadData 。运行此命令以便从外部到达。

ls -la