我运行的是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
来更改文件所有权(无效(。但必须有一种方法来巧妙地做到这一点。有什么想法吗?
创建一个新组,将两个用户都添加到其中,并设置相应的权限。之后,您将能够在文件夹之间移动文件。