从 django 访问用户主目录

Posted

技术标签:

【中文标题】从 django 访问用户主目录【英文标题】:Accessing user home directory from django 【发布时间】:2016-11-26 07:56:33 【问题描述】:

我正在创建一个可以访问用户主目录的 Django 应用程序。为此,我想使用 os.mkdir('/home/user/new_directory')subprocess 命令之类的东西创建一个目录。

由于 Django 是由 apache 服务器启动的,python 充当 apache 用户,无法访问我的用户主目录。

目前,我知道我的用户的登录信息,因为他们必须在网站上登录。有没有解决方案以用户的名义从 Django/Python 执行 unix 命令

【问题讨论】:

webapp 上的用户帐户与为 webapp 服务的机器上的用户意味着不同的东西。甚至可能有许多不同的机器服务于同一个 webapp.. 在我的例子中,我在网络应用程序和网络中不同的可访问服务器之间使用统一的分散式身份验证系统。它对于 unix 身份验证是透明的。 【参考方案1】:

您可以通过MEDIA_URL / 或符号链接本身设置主目录。 我想到了符号链接和 os.system 调用的组合方法。

what-is-symlinking-and-how-can-learn-i-how-to-to-do-this

要更改 apache 用户,请使用 os.system(su <command>) changing-user-in-python

【讨论】:

这种方式并没有真正改变用户执行命令。仅在os.system() 呼叫期间更改用户。必须在通话期间设置带有凭据的整个命令:os.system("echo %s | su %s -c 'bash command' " % (password, username))

以上是关于从 django 访问用户主目录的主要内容,如果未能解决你的问题,请参考以下文章

Linux添加用户/权限/用户主目录等相关

如何在 Windows 上获取用户主目录?

linux apache 主目录设置问题

如何更改 hdfs 用户的 HDFS 用户主目录?

Linux:无法获取包含空格的用户主目录[关闭]

git 将系统配置文件视为主目录而不是用户主文件夹(Windows 7)