我正在運行 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擁有檔案和檔案所在的目錄。
我需要一個移動theFile.txt到另一個位置的 shell 腳本,進入一個不屬于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更改檔案所有權(無效)。但是必須有一種方法可以巧妙地做到這一點。有任何想法嗎?
uj5u.com熱心網友回復:
創建一個新組,將兩個用戶添加到其中并設定適當的權限。之后,您將能夠在檔案夾之間移動檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/432237.html
上一篇:如何組合這2個腳本并為同一個腳本運行多個cron作業以獲得不同的輸出?
下一篇:如何獲取祖父母目錄的名稱?
