Linux 中我最喜欢的也是最烦人的事情之一就是文件系统权限。在生产机器和网络服务器上,我喜欢一切都如此安全和锁定 - 但在开发机器上,它确实让我的速度变慢了。我每周都会从众多发现中举一个例子。
和大多数人一样,我双启动 Ubuntu 和 Windows,这样我就可以继续使用 Adobe CS4 套件。我经常在使用 Windows 时设计 Web 主题和其他东西。稍后我将启动 Ubuntu 以获取主题并为其编写后端 PHP。安装 Windows C: 驱动器分区后,我可以复制模板文件,以便开始编辑它们。
然而,得益于 Linux,渴望保护我我发现复制这些文件后,我得到了一组完全锁定的文件,甚至我也没有读写权限。因此,在仔细考虑了 HTML 文件给我带来的巨大风险后,我对其进行了 chmod 操作,以便我和 apache 可以开始使用它们。
现在,chmod 过程并不难 - 但是每天 chmod 足够多的文件后,您就会厌倦这样做。我不断地从我的用户、git repos、php 或其他随机进程中创建、获取、编辑和删除文件。毕竟这是一台个人发展机器。一切都在变化日复一日。
所以我的问题是,我怎样才能让 Linux 放松对 HTML/JS/PHP/TXT/SQL/等文件的操作,以便我可以更快地工作而不必经常停下来对内容进行 chmod 操作?
我小指的承诺我不会用 HTML 文件侵入我的帐户。;)
答案1
umask
设置创建文件的用户的默认权限。
这是在 shell 环境中设置的。对于 bash 系统范围,即。或者,您可以根据 shell 的执行方式在或/etc/profile
中为用户设置它。~/.bash_profile
~/.bashrc
答案2
更新:
我建议在复制文件时使用 rsync,而不是设置 umask。然后,您可以使用--chmod
rsync 的参数来获取所需的权限。我认为类似这样的操作:
rsync -rv --chmod=Doug=rx,Foug=r source/ dest/
这可能比 umask 更好,因为它是一个更加本地化的解决方案。
您还可以编写一个脚本来正确设置所有权限。这样做的好处是该脚本将在您的生产环境中有用。
答案3
- 您可以更改挂载 NTFS 分区的方式,使其上的文件显示为 rw。这样,当您复制它们时,它们将具有 w+。
- 您可以在通常复制文件的目录上设置一个粘性位,这样新文件就会在那里以适当的权限创建(我不确定它是否可以与复制一起使用)。
我最喜欢的:不要双启动。在虚拟机中使用 Windows(我使用 VirtualBox)的速度损失非常小。而且 VirtualBox 为您提供了以下好处:
支持硬件视频加速 - 例如,如果您有合适的驱动程序,您的 Windows VM 也可以进行 3D 渲染(如果您需要的话)
提供共享文件夹 - 即主机操作系统上的目录,可从虚拟机访问,以便您可以共享文件
- 无缝模式 - 您可以在 Linux 桌面上运行 Windows 应用程序,而无需显示整个 Windows 桌面。
在过去的 4 年多时间里,上述方法对我来说非常有效。
干杯