从根目录为所有用户设置首选项文件

Posted

技术标签:

【中文标题】从根目录为所有用户设置首选项文件【英文标题】:Set a preferences file from root for all users 【发布时间】:2014-02-21 20:38:30 【问题描述】:

我正在使用 Deploy Studio 对 Mac 计算机进行映像并发布映像计算机。在对计算机进行映像之后,我正在运行一个脚本文件来更改一些设置并根据我们输入的内容添加一个用户。我遇到的麻烦是为新用户设置屏幕保护程序首选项,以便计算机在 15 分钟不活动后要求输入密码。修改屏幕保护程序首选项文件的命令自己工作我只是没有办法从以 root 身份运行的脚本中设置它们。

这是需要的命令,但在运行之前我不会知道用户:

#Set Delay for 15 minutes
sudo  write /Users/USERNAME/Library/Preferences/com.apple.screensaver askForPasswordDelay 500

#Enable AskForPassword
sudo write /Users/USERNAME/Library/Preferences/com.apple.screensaver askForPassword 1

如何在运行时获取所有用户并在他们各自的目录上运行命令?

【问题讨论】:

是否存在错误,或者似乎是什么问题? 脚本需要有用户名才能运行命令,但在运行之前我不会知道用户。 不,脚本正在启动时运行。不确定具体的术语是什么?根? 使用~/Library/Preferences 指定任何用户的用户名首选项目录。 【参考方案1】:

尝试使用如下命令:

#Set Delay for 15 minutes
sudo write ~/Library/Preferences/com.apple.screensaver askForPasswordDelay 500

#Enable AskForPassword
sudo write ~/Library/Preferences/com.apple.screensaver askForPassword 1

这将限制对当前主机的更改:

#Set Delay for 15 minutes
defaults -currentHost write com.apple.screensaver askForPasswordDelay 500

#Enable AskForPassword
defaults -currentHost write com.apple.screensaver askForPassword -int 1

另外,如果脚本以 root 身份运行,则可能不需要使用 sudo

【讨论】:

我尝试使用这两个命令,但都没有奏效。我想我需要指定确切的用户目录。有没有办法使用通过“ls -al /Users/”找到的用户?

以上是关于从根目录为所有用户设置首选项文件的主要内容,如果未能解决你的问题,请参考以下文章

code runner运行终端的目录设置

从设置用户名和密码首选项登录

将“复制到输出目录”的默认选项设置为“始终复制”

centos8的文件高级选项

linux创建账户并自动生成主目录和主目录下的文件

如何从共享首选项中检索数组列表并将数组列表设置为 recyclerview