有没有一种方法可以让 Linux 中的每一个小事情都不再需要编写“sudo”?

有没有一种方法可以让 Linux 中的每一个小事情都不再需要编写“sudo”?

我很快就会做大量的 PHP 工作,而且我对学习 RoR 很感兴趣,所以我在我的 VirtualBox 中安装了 Linux Mint 12。

到目前为止,这次切换最令人沮丧的方面是处理 Linux 权限。似乎我无法做任何有用的事情(例如,将 Symfony2 tarball 从我的下载目录复制到我的文档根目录并提取它),而不通过 sudo 冒充根目录。

有没有一种简单的方法可以告诉 linux 让我不受限制地访问某些目录,而无需简单地打开它们的所有权限?

答案1

我想到了两个选择:

  1. 使用以下命令拥有您想要的目录chown

    sudo chown your_username directory 
    

    (将 your_username 替换为您的用户名,将目录替换为您想要的目录。)

  2. 你可以做的另一件事就是以root身份工作,只要你知道你在做什么。要使用 root 执行以下操作:

    sudo -s
    

然后您可以执行任何操作,而无需sudo在每个命令之前键入。

要退出此sudo -sshell 终端,请键入exit,您将返回到之前的 shell 终端。

答案2

一般来说,除非您正在做一些对系统范围产生影响的事情,否则请始终以您自己的用户身份工作。

如果您想要将某些文件放在 Web 服务器上,请以您自己的用户身份工作,然后使用sudo将文件放置在文件系统的 Web 服务区域中。通常,这将由安装脚本执行,并且您将运行类似sudo -u webmaster install-webserver-files或更好的东西sudo -u webmaster git update(或您选择的版本控制系统)。

如果您正在开发服务器上工作并希望可以立即访问您的文件,请在 Web 服务器区域中创建一个目录并使其归您所有或至少可写。在该一次性操作(sudo chown …sudo -u webmaster setfacl …)之后,您将不需要提升权限来进行日常操作。

有时允许多个用户在一个目录中写入,或者对除所有者之外的多个用户或多个组具有不同的权限有时会很方便。访问控制列表给你这个能力。看 服务器上共享目录的权限问题或者备份脚本权限问题

答案3

是的,以 root 身份登录,这将为您提供超级用户访问控制。
Windows 中的概念相同,您可以使用管理员登录到您的终端。

答案4

正如其他答案所指出的,最干净的解决方案是更改您需要访问的文件和目录的所有权。您也可以创建一个新的专用组,将文件和目录的组所有权更改为此组,并为这些文件和目录设置组写入权限。最后,在目录上设置 SGID 位,这样如果您创建新文件,它将继承包含目录的组所有权(即专用组)。

相关内容