2014-11-01 148 views
0

我在MAC OS X終端內以root身份執行以下腳本。該管道命令運行成功,但腳本在chown命令失敗,出現以下錯誤:BASH chown命令不能從腳本執行:非法組名

CHOWN:域用戶:非法團體名稱

爲什麼?

下面

見腳本:

#!/bin/bash 

echo Enter username 
read Name 
echo Enter number 
read NUM 

sudo -s "(cd /Users/$NAME && tar c .) | (cd /Users/$NUM && tar xf -)" 
sudo chown -R $NUM:"Domain Users" /Users/$NUM 
sudo chmod g+rwx /Users/$NUM 
+0

域用戶聽起來像一個AD組名稱。如果是這種情況,則組成員來自OSX上的OpenDirectory。你不能用AD組做一個「chown」。無論如何。 「域用戶」永遠不會被認爲是有效的Unix組。 – ptierno 2014-11-01 20:26:16

+0

@Petey T:這臺Mac綁定到活動目錄,爲什麼它的組成員來自OpenDirectory? – 2014-11-01 20:28:55

+0

@Petey T:此外,我已經多次以root身份手動運行這三個命令,並且100%的成功,所以我沒有看到你說的是正確的。 – 2014-11-01 20:31:04

回答

2

「域用戶」 是一個Active Directory組,因此一絕連接到域以便對該組中的指定用戶進行CHOWN並獲取指定資源的所有權。我今天正在遠程工作,沒有通過我們的VPN連接,因此沒有連接到我們的域,因此無法對此Active Directory組「域用戶」進行CHOWN。

0

你讀變量錯誤:

應該是這樣的:

... 
read NAME 
.... 
read NUM 
+0

呃...這就是我如何在堆棧網站上輸入文字,我的朋友。在實際的腳本中,它們都格式化爲全部大寫。 – 2014-11-01 20:42:47

+1

您應該編輯代碼塊並給出正確的語法。只是這樣我們可以幫助排除語法錯誤。 – ptierno 2014-11-01 20:43:49

+2

@DigitalImpermanence:請修復它在你的問題。 – Cyrus 2014-11-01 20:44:18