问题描述
安装Web服务器后,有一种简单的方法可以设置用户可以使用图形界面将文件和目录复制到本地Web服务器/var /www
我在Ubuntu给自己的管理权限,但它仍然不允许副本。
最佳解决方案
如果您将/var /www设置为可由群组写入并将用户添加到群组,则该用户不必使用sudo。尝试这个:
sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www
用户应该能够毫无麻烦地编辑/var /www /文件。
第一行将用户添加到www-data组中,第二行清除拥有所有权的任何文件,第三行使所有属于www-data组成员的用户都可以读写/var /www中的所有文件。
如果以<username>
身份登录,则需要注销并重新登录才能使组成员身份生效。
次佳解决方案
您可以chown
,即ch
,该文件夹的own
erge。这将允许您更改文件夹的用户和组,允许用户在其上添加/删除文件。要执行此操作,请用您的名称替换yourusername
并运行:
sudo chown yourusername.users /var/www
那就是它。
不过,我主张在我的home文件夹中创建一个虚拟主机,这很容易。
基本上它允许你使用任何文件夹作为Apache服务文件夹。为了说明它是如何简单的,我们假设你的用户名是用户名,你想要服务的文件夹是/home /username /www
在/etc /apache2 /sistes-available中创建以下文件(例如mywebprojects
),替换用户名和文件夹路径(基本上只需复制并粘贴并在#CHANGE HERE中替换):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
# CHANGE HERE
DocumentRoot /home/username/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
# CHANGE HERE
<Directory /home/username/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
现在让我们创建www
文件夹,添加一个简单的Hello世界,禁用默认网站(/var/www
),启用我们的网站mywebprojects
并重新启动apache。
mkdir ~/www
echo "<html><h1>Hello World</h1></html>" > ~/www/test.html
sudo a2dissite default #
sudo a2ensite mywebprojects
sudo service apache2 restart
而且,现在你不需要去/var/www
,只需将文件添加到www
(或其他名称),并且它已经在那里:)。
第三种解决方案
方法1:
-
按
ALT
+F2
并输入gksudo nautilus ,然后单击运行。 -
它会以root previleges打开 nautilus 。
-
Goto Filesystem→var→www现在你可以添加/复制/粘贴你的文件。
方法2:
-
安装nautilus-gksu
-
在终端中安装类型
nautilus -q
以刷新右键单击菜单。 -
现在,您将在 nautilus right-click菜单中找到“以管理员身份打开”条目。
-
当您需要使用root权限打开任何文件时,只需在该文件/文件夹中选择right-click,然后选择“以管理员身份打开”即可。
-
它将以root权限打开该文件/文件夹。
第四种方案
它可以像使用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/public”替换对”/var/www”的引用并重新加载。
sudo vim /etc/apache2/sites-enabled/000-default
sudo /etc/init.d/apache2 reload
如果我们想限制删除和重命名,除了创建文件的用户:
sudo chmod +t /var/www/public
这样,如果我们想为Apache文档根目录之外的框架创建目录,或者创建server-writable目录,它仍然很容易。
Apache-writable日志目录:
sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs
Apache-readable库目录:
sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/logs
sudo chmod 0750 /var/www/logs