答案1
首先……这可能不是一个好主意。权限设置成这样可能是为了阻止人们出于某种原因做你想做的事情。话虽如此,你还是自己命运的主宰者。
找出谁可以写入该目录。执行:
ls -ld /opt/myapp
你会得到类似这样的结果:
drwxr-xr-x 6 myapp_user myapp_group 55 Sep 10 2016 /opt/myapp
潜在选项 1:切换到为该应用程序构建的用户帐户。例如:
scp myfile [email protected]:/opt/myapp
但您可能没有该用户的密码。您可能可以通过使用密钥进行身份验证来解决这个问题。 https://www.techrepublic.com/article/how-to-use-secure-copy-with-ssh-key-authentication/
潜在选项 2:将目录 '/opt/myapp' 的权限更改为 774(或 770)
chmod 774 /opt/myapp
然后使管理员用户成为现在具有写权限的组的成员。 https://www.howtogeek.com/50787/add-a-user-to-a-group-or-second-group-on-linux/ 这个不太好,因为您可能会遇到被阻止覆盖文件的麻烦(取决于发生的情况)。
答案2
只需两个步骤即可完成:
- 将文件复制到服务器上您自己的主目录中
- 登录服务器并使用移动文件
sudo
或者,如果您sudo
无需输入密码就可以做任何事情,那么您可以发挥创意cat
,使用tee
和重定向:
cat myfile | ssh [email protected] 'sudo tee /opt/myapp/myfile > /dev/null'
请注意,您必须指定两次文件名。但是我们不建议这样做,因为很多事情都可能失败并导致不良后果。