我使用非 root 用户运行 Ubuntu 10.04 LTS 实例(通过 Windows 7 上的 Virtual Box)。我正在尝试开发 Rails 应用程序,我注意到我需要使用 sudo 运行一些 rails 命令。这给我带来的问题是,一些文件是由 root 用户创建的,而我无法使用登录用户通过 GNOME 窗口编辑它们。
这里正确的做法是什么?我是否应该始终以 root 身份登录?如果是,该怎么做?是否有某种方法可以让我为主目录(我进行所有 Rails 工作的地方)下的所有文件赋予所有用户的正确权限,以便我可以通过窗口使用登录用户编辑它们?
目前我不得不通过这样的命令行打开文件sudo gedit myFile.rb- 这不太可持续!
提前致谢!
答案1
正如@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
附言:我强烈建议不要直接在主目录中设置,而是在子目录中设置
但这些文件归 root 所有是有原因的。您是否试图修复错误的问题?也许您的工作流程实际上并不需要 rail sudo 命令?然后我再次假设 gem 必须安装在系统范围内,所以也许...
无论如何,以 root 身份运行 nautilus 窗口怎么样:
sudo nautilus /home/foo
或者使用 GEdit 中的文件侧边栏进行文件导航?
答案2
答案3
首先,避免使用 sudo。找出脚本正在访问而您无权访问的内容,然后更改该文件的权限,这样您便可以访问而不必使用 sudo。
如果您无法避免使用 sudo,那么在运行这样的命令后,只需使用 sudo chown 将其创建的文件返回给您自己即可。