Ubuntu 用户凭据、文件权限

Ubuntu 用户凭据、文件权限

我正在使用 Ubuntu 10.10,使用 symfony 框架进行 Web 开发。

通常我会安装 Ubuntu Lamp(交钥匙版),以 root 身份登录并在服务器中配置使用 symfony 所需的所有必要软件。(Samba、symfony 等。)

问题是当我是 root 时,文件权限未正确设置为 Samba 和 symfony 系统。我在 Ubuntu 终端 (CLI) 中执行/创建的所有操作都会为 root 用户创建文件权限。当然,我知道事后如何更改它们,但这会占用我本可以用于编程的时间。

准备就绪后,我通过网络使用该盒子,直接从服务器上的 PC 创建多个站点目录。此开发人员服务器上有多个站点,因为目录下/var/www/没有虚拟主机。

我的问题是安装 Ubuntu 后如何创建或设置具有正确凭据和权限的用户?

答案1

使用 ACL,您可以为此目的创建一个组并将用户添加到该组,这样为每个新用户获取正确的内容就很简单了:

sudo usermod -a -G developers $username

不过,这需要一点工作才能开始。这至少适用于 Ubuntu 10.10。首先使用 /etc/fstab 中的 acl 选项挂载文件系统。

sudo vim /etc/fstab

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 默认值,acl 0 1

sudo mount -o remount,acl /

然后为此目的创建一个用户可能属于的组。

sudo groupadd developers
sudo usermod -a -G developers $username

用户需要注销并重新登录才能成为开发者组的成员。

当然,如果您想要的 /var/www 目录中有内容,请不要这样做,而只是为了说明如何设置以开始:

sudo rm -rf /var/www
sudo mkdir -p /var/www/public
sudo chown -R root.developers /var/www/public
sudo chmod 0775 /var/www/public
sudo chmod g+s /var/www/public
sudo setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/public

然后在配置文件中将对“/var/www”的引用替换为“/var/www/public”并重新加载。

sudo vim /etc/apache2/sites-enabled/000-default
sudo /etc/init.d/apache2 reload

如果我们想要限制除创建文件的用户之外的所有人进行删除和重命名:

sudo chmod +t /var/www/public

这样,如果我们想为 Apache 文档根目录之外的框架创建目录或者创建服务器可写的目录,仍然很容易。

Apache 可写日志目录:

sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs

Apache 可读的库目录:

sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/lib
sudo chmod 0750 /var/www/lib

答案2

不要以 root 身份登录,而是尝试以 www-data 用户身份登录,这是 ubuntu 在运行 apache 时使用的用户身份。这样应该会自动提供适当的权限,同时遵循最小权限原则(您应始终避免以 root 身份执行操作)。

相关内容