将文件移动到其他用户目录中的 shell 脚本?



我运行的是Ubuntu 16.04服务器。在我的服务器上,目录/home/userA/dirA:中有一个文件

userA@myUbuntu:~$ 
userA@myUbuntu:~$ pwd
/home/userA
userA@myUbuntu:~$ 
userA@myUbuntu:~$ ls -l
total 8
drwxrwxr-x 3 userA userA 4096 Feb 17 14:13 dirA
userA@myUbuntu:~$ 
userA@myUbuntu:~$ ls -l dirA/
total 7796
-rw-rw-r-- 1 userA userA  1234 Feb 17 14:05 theFile.txt
userA@myUbuntu:~$

请注意此处的所有权;用户CCD_ 2拥有该文件和该文件所在的目录。

我需要一个shell脚本,将theFile.txt移动到另一个位置,移动到一个不属于userA的目录中。这是我的脚本:

#!/bin/bash
echo "Attempting to move file..."
{
sudo mv /home/userA/dirA/theFile.txt /home/userB/dirB/.
} || {
echo "Failed to move file!"
}

输出:

userA@myUbuntu:~$ ./myScript.sh
Attempting to move file...
Failed to move file!
userA@myUbuntu:~$ 

正如您所知,脚本以userA的形式运行。我不想将其作为root运行。

所以我假设脚本因为权限问题而失败;作为CCD_ 7运行的脚本不具有将文件移动到CCD_。我一直在尝试sudo命令和其他命令的各种变体,但都无济于事。我也尝试过一些愚蠢的解决方法,比如将文件复制到/tmp(有效(,然后执行chown来更改文件所有权(无效(。但必须有一种方法来巧妙地做到这一点。有什么想法吗?

创建一个新组,将两个用户都添加到其中,并设置相应的权限。之后,您将能够在文件夹之间移动文件。

相关内容

  • 没有找到相关文章

最新更新