我将我的 Ubuntu 10.04 LTS 实例(通过 Windows 7 上的 Virtual Box)与非 root 用户一起使用。我正在尝试开发 Rails 应用程序,我注意到我需要使用 sudo 运行一些 rails 命令。这给我的问题是一些文件是由 root 用户创建的,我无法使用我的登录用户通过 GNOME 窗口编辑它们。
在这里做什么是正确的?我应该以某种方式始终以 root 身份登录吗?如果有怎么办?有什么方法可以让我的主目录下的所有文件(我在其中完成所有 Rails 工作)为所有用户提供正确的权限,这样我就可以通过一个窗口使用我的登录用户编辑它们?
目前我不得不求助于通过命令行打开一个文件,比如sudo gedit myFile.rb - 这不是很可持续!
提前致谢!
正如@mount.cifs 提到的 ubuntu 文件权限页面,包括关于设置粘性和 SGID 位等的提示。
我建议定期更改组所有权和对您文件夹的访问权限。
sudo chgrp -R foobar /home/foo/bar
sudo chmod -R g+w /home/foo/bar
除了调查将会话的 umask 设置为组可写是否会解决您的问题之外?
http://bashscript.blogspot.com/2010/03/unixlinux-advanced-file-permissions.html
http://bashscript.blogspot.com/2010/03/creating-user-group-and-shared.html
附言。我强烈建议不要直接在您的主目录上设置它,而是在子目录上设置
但是出于某种原因,这些文件归根用户所有。您是否试图解决错误的问题?也许您的工作流程真的不需要 rail sudo 命令?然后我再次假设 gems 必须在系统范围内安装,所以也许......
无论如何,以 root 身份运行 nautilus 窗口怎么样:
sudo nautilus /home/foo
或者使用 GEdit 中的文件侧边栏进行文件导航?
请阅读以下内容:
https://help.ubuntu.com/community/FilePermissions
通常,如何处理所有者/文件权限取决于情况。
首先,避免使用 sudo。找出您的脚本正在访问您无权访问的内容,并更改该文件的权限,以便您无需求助于 sudo 即可访问。
如果您无法解决对 sudo 的需求,那么在运行这样的命令后,只需 sudo chown 将它创建的文件返回给您自己。