OSX Catalina FV和添加用户脚本

时间:2020-07-22 14:39:19

标签: bash macos shell base64 sh

在启动过程中,我们想使用bash脚本在后台创建用户并将其添加到FileVault。

添加用户有效。 添加到FileVault时出现错误消息

错误消息:

(这很可能是由于自OSX 10.13以来所做的更改,在该更改中,通过CLI创建的用户未获得安全令牌,而该令牌用于激活文件保险库)

我们也想在脚本中隐藏密码,因为如果是纯文本形式的话,这是一个安全漏洞,您在这里有想法吗?

请帮助我

USERNAME="backupuser"
FULLNAME="backupuser"
PRIMARYP="USERSPASSWORD"
AUSGABE="administrator"

# ===========================


# Benutzer wird erstellt
dscl . -create /Users/$USERNAME >> /Users/$AUSGABE/Desktop/ausgabe.txt;

dscl . -create /Users/$USERNAME UserShell /bin/bash >> /Users/$AUSGABE/Desktop/ausgabe.txt;

# Benutzer erhält den Anzeigenahmen
dscl . -create /Users/$USERNAME RealName "$FULLNAME" >> /Users/$AUSGABE/Desktop/ausgabe.txt;

# Findet die nächst verfügbare Benutzer ID
MAXID=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1)
USERID=$((MAXID+1)) >> /Users/$AUSGABE/Desktop/ausgabe.txt;

# Benutzer erhält Benutzer ID
dscl . -create /Users/$USERNAME UniqueID "$USERID"

# Benutzer wird zu einer Lokalen Gruppe hinzugefügt, 
dscl . -create /Users/$USERNAME PrimaryGroupID 20

# Benutzerordner wird erstellt
dscl . -create /Users/$USERNAME NFSHomeDirectory /Local/Users/rescueuser 

# Benutzerpoasswort wird gesetzt
dscl . -passwd /Users/$USERNAME $PRIMARYP 

# Timeout für 5 Sekunden.
sleep 5;

# ===========================

# Benutzer wird zu FileVault hinzugefügt 
#sudo fdesetup add -inputplist < /Users/administrator/Desktop/MacadduserFV.plist

sysadminctl -adminUser "admin" -adminPassword - -secureTokenOn "$USERNAME" -password -

expect -c "
spawn fdesetup add -usertoadd $USERNAME
expect \"Enter the user name:\"
send $USERNAME\r
expect \"Enter the password for user '$USERNAME':\"
send $PRIMARYP\r
expect \"Enter the password for the added user '$USERNAME':\"
send $PRIMARYP\r 
interact"

1 个答案:

答案 0 :(得分:1)

如果您仍在寻找答案 - 使用 sysadminctl 创建用户帐户,您可以使用它来添加 filevault 所需的安全令牌,但您将需要提示进行身份验证。

系统管理

-addUser [-fullName ] [-UID ] [-shell ] [-password ] [-hint ] [-home ] [-admin] [-picture ] (interactive] || -adminUser -adminPassword )

-secureTokenOn -password (interactive || -adminUser -adminPassword )