2014-07-09 64 views
1

在OS X上,我正在编写一个bash脚本作为用户运行,而不是root。每隔一段时间我需要升级到root来运行某些命令。升级到glob目录?

在一节中,我试图用权限drwx ------遍历由root拥有的目录的内容,这意味着我无法像普通用户那样对目录的内容进行整理。

这不起作用:

sudo for files in "/System/Library/User Template"/* 
    do 
    some command "$files" 
    done 

我想这样做是这样的:

for files in "/System/Library/User Template"/* 
    do 
    sudo some command "$files" 
    done 

这是一个新的系统启动脚本,所以我希望把一切都在一个脚本,我绝对不能以root身份运行整个事情。我想知道:

  1. 如果有适当的方法升级到glob for循环目录。
  2. 如果我应该以root权限更改权限,请运行代码并将权限更改回来。

回答

0

我认为你只能考虑调用另一个脚本,而不是以root身份运行,并使用sudo

虽然也许你可以从运行bash中输入命令阅读:

sudo bash -s <<'EOD' 
for files in "/System/Library/User Template"/*; do 
    some command "$files" 
done 
EOD 
+0

这工作,谢谢。你认为将它放在另一个脚本中会更好还是更安全? –

+0

@WorriedinDenver取决于内容是否复杂。如果这对你来说已经足够了,也许不会再有了。 – konsolebox

+0

再次感谢。我会接受的答案,但不能upvote它,因为我没有声誉... –