我写了一个非常简单的脚本,应该允许我在远程服务器上创建具有特定权限的目录。
我使用命令来执行脚本到远程服务器:
stan@192.168.159.133 /root/Documents/script
我得到了这个答案:
bash: /root/Documents/script: Permission denied
Connection to 192.168.159.133 closed.
我正在使用Fedora 20,服务器在Ubuntu 18.04.1。上。
我尝试使用chmod修改脚本文档的权限:
chmod 777 script
起初,我尝试使用集成在脚本内部的SSL连接来执行脚本(您可以在脚本中看到它)。
我尝试阅读几篇文章,但是对于大多数答案,我的知识仍然很薄弱,无法理解所有内容。
#!/bin/bash
#Connecting to Ubuntu Server
#ssh stan@192.168.159.133
#specifying the directory where I want to create my two directories
cd /home/stan
#Creating the first directory "PublicFolder" and assigning permissions
mkdir PublicFolder
chmod -R 606 PublicFolder
#Creating the first directory "PrivateFolder" and assigning permissions
PrivateFolder
chmod -R 604 PrivateFolder
答案 0 :(得分:1)
我不会在脚本中评论权限设置,即使它们对我来说似乎很奇怪。我不会在777上发表评论,因为已经完成了。
当您的权限被拒绝时,可能是因为脚本无法执行或脚本中的某些内容拒绝执行。您的错误消息建议使用第一个。
首先:您可以读取文件吗?尝试cat /root/Documents/script
。如果您看不懂它,则应确保可以阅读。出于多种原因,这可能意味着您需要将脚本放置在其他位置(而不是root的主目录下)(请参见Charles Duffy的评论)。
如果您可以读取文件,则可以尝试bash /root/Documents/script
来执行它。如果可行,只需chmod a+x
文件即可使其可执行。
那为什么/root/Documents
中的脚本呢?看到脚本的内容,我希望它在/home/stan/scripts
下,或类似的东西。这样,您可以随时更改其权限,读取它,甚至确保您执行它。