Shell 将文件移动到另一个用户目录的脚本?

Shell Script to Move a File Into Another User's Directory?

我正在 运行 安装 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:~$

注意这里的所有权;用户 userA 拥有文件和文件所在的目录。

我需要一个 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.

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

创建一个新组,将两个用户添加到其中并设置适当的权限。之后您就可以在文件夹之间移动文件了。