2014-11-01 149 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