Dan*_*Dan 3 scp permissions file-copy
我正在早期尝试设置一个基本的 LAMP 盒。这是我第一次设置我将使用的软件,而不是仅仅提供一个工作环境,所以对我放轻松:)
我已经安装了Apache,对应的htdocs文件夹有drwxr-xr-x的权限。我可以很好地从远程复制到本地,但是在尝试复制小目录时,我的权限被拒绝。
我应该提到我正在使用我自己的管理员用户帐户登录,当然 htdocs 不归我所有。
所以我想,我天真地认为我只需要 sudo 命令 - 那没有用。好的,接下来我将根据我在网上阅读的内容“修复”774 的权限。不,那也不起作用。我在想“我需要为第三个“用户”添加写访问权限吗?这似乎很奇怪。
然后我读了一个论坛帖子,有人告诉他,因为文件夹是 root 所有,他必须将文件 scp 到远程主机上的 home/dir,然后 sudo cp 它们到 apache 文件夹。
对我来说似乎是一个冗长的方法,但在我尝试这样做之前,我想我会在这里问这是否属实,这里是否有任何最佳实践以及我的任何假设是否错误?
其次 - htdocs 的适当权限是什么?
我仍处于早期阶段,最终可能会设置一些 FTP 访问,但我很高兴知道。
有很多方法可以给这只猫剥皮。以下是一些供您考虑:
这htdocs
棵树几乎可以肯定不必归根所有。重要的是它可以被 Apache 用户读取。根据所讨论的* IX系统,这可能是上apache
,www-data
或别的东西。您在上面给出的默认文件模式,drwxr-xr-x(缩写为 755)适用于此。
所以,问题是,谁应该拥有这棵树,它应该属于哪个组。这可能就足够了:
$ sudo chown -R dan.apache /var/www
Run Code Online (Sandbox Code Playgroud)
这表示用户dan
拥有/var/www
及其下的所有内容(-R
递归),并且该组apache
也有一些权限。如果httpd
作为 group 运行apache
,它可能会获得足够的权限来读取树中的文件并更改其中的目录,这对于大多数站点来说已经足够了。
另一种方法是使用您拥有的任何权限,并简单地告诉scp
模仿/var/www/
树的所有者:
mybox$ scp ~/site-mirror/index.html www@example.com:/var/www/htdocs
Run Code Online (Sandbox Code Playgroud)
这会将根index.html
文件的本地副本复制到 上的适当位置example.com
,并以用户身份登录www
。您可以在此处使用您需要的任何用户名和主机名。您只需要能够以/var/www/
树所有者的用户身份远程登录。如果您不能这样做,请考虑使用选项 #1,至少以允许您scp
直接归档的方式进行设置。
如果您为 SSH设置了预共享密钥,您甚至不必提供密码。
而不是scp
,我建议您rsync
用于网站开发:
mybox$ rsync -ave ssh --delete ~/site-mirror www@example.com:/var/www/htdocs
Run Code Online (Sandbox Code Playgroud)
这将~/site-mirror
on mybox
(您的本地工作机器)的内容镜像到/var/www/htdocs
on example.com
,以用户身份登录www
。使用rsync
raw的优点scp
是您不必复制和重新复制未更改的文件。Rsync 算法计算更改并仅发送更改。
归档时间: |
|
查看次数: |
24695 次 |
最近记录: |