網上至少有兩種方法,本文介紹第三種方法(推薦第三種)。
- “resetpassword”法,它只適合於忘記密碼的情形,不適合改權限 https://support.apple.com/zh-cn/HT202860
- “.AppleSetupDone”法,重建用戶,相當於恢復出廠設置,慎用。https://blog.csdn.net/sevenzwx/article/details/93237692
- "groupmembers"法。因為都是命令行,對普通用戶來說稍微復雜點。它也有自己的優點,比如直接添加管理員權限,重啟后立刻生效。
您肯定會想:是不是任何一個普通帳戶都可以變成管理員啊?!但是,難道這不是一個安全漏洞嗎?
答案是:可以。不過本人不認為這是安全漏洞,這是系統的用戶管理的一種方式而已。
出於安全考慮,能否防止?
答案是:可以。從安全的角度說,Mac電腦用戶一定要打開兩個安全選項:設置固件鎖 1 和 全盤加密 2,否則的話,你的Mac就沒有安全之說。這一點,切記切記 !!!
注意,更改 macOS 用戶帳戶和個人文件夾的名稱的操作只在Sierra及其之前的macOS/OS X系統中被支持3,新系統High Sierra和Mojave都會造成問題。
搜集資料
我的環境
很簡單,我們的目的就是把tonyliu這個賬戶變為管理員
tonyliu是一個普通用戶帳戶:
登錄帳戶名:tonyliu
帳戶的全名:Tony Liu
獲取帳戶信息
最關鍵的是獲得用戶的登錄帳戶名。
命令行
有多種方式獲得用戶的帳戶名。本人認為,從終端中獲得當前用戶的用戶名最簡單,就是下面的whoami命令輸出的字符串tonyliu:
$ whoami tonyiu
圖形界面
(估計自行修改帳戶名的讀者都這樣操作過)在用戶和群組的系統偏好中。解鎖后,按住鍵盤的control鍵,鼠標點擊用戶名,松開control鍵,點擊Advanced Options:
點擊Advanced Options, 就可以獲得用戶信息了,如圖:
用戶UUID
(這一步可以省略)上圖中的UUID就是,或者運行dscl命令獲得:
$ dscl . read /users/TONYLIU GeneratedUID GeneratedUID: 1052FC1A-7595-4D06-816A-4AF79EE746AE
注:把上面的TONYLIU換成你的帳戶名
好了,需要的都有了,下面是一步步操作了
恢復啟動Mac:
要是不知道如何“恢復啟動Mac”,就看看Apple的兩個官方文檔:關於 macOS 恢復功能 https://support.apple.com/zh-cn/HT201314 和 如何通過 macOS 恢復功能重新安裝 macOS https://support.apple.com/zh-cn/HT204904
進入Disk Utility
確認你的內置盤的路徑:如下圖,在Mount Point后面的,高亮的"/Volumes/Macintosh HD"文字部分,就是我們需要的內置盤路徑,記住它后,退出Disk Utility。
操作過程中,遇到Mount Point 顯示未裝載情況, 需要先選中左面 Macintosh HD, 然后 界面上方 裝載(Mount)進行裝載, 然后再繼續后面操作
進入終端程序
到macOS Utility的Utilities菜單中,選擇Terminal
輸入命令
現在是關鍵了。要仔細對照自己的系統,輸入正確的命令和參數。
下面是全部命令的截圖,后面一一講解:
命令解釋:
1. cd /Volumens/Macintosh\ HD/private/var/db/dslocal/nodes/default/ 把前面獲得的內置盤路徑中的/private/var/db//dslocal/nodes/default/目錄作為當前路徑。
2. 命令:PATH=/usr/libexec:$PATH /usr/libexec目錄里面包含着后面要用到的PlistBuddy命令。把這個目錄添加到PATH環境中,省去以后每次都寫全路徑的麻煩。 本例中,僅用 PATH=/usr/libexec 也可以。如果你的恢復系統不包括PlistBuddy,就用PATH=/Volumes/Macintosh\ HD/usr/libexec
3. 命令:PlistBuddy -c “Print generateduid” ./usrs/tonyliu.plist
-c 是PlistBuddy命令的選項,后面運行一個動作
Print , 打印/顯示輸出
generateduid:是定義用戶Plist文件中的一個字段,它就是我們前面說的一個用戶的UUID。
./users/tonyliu.plist:每個用戶帳戶都有一個位於users子目錄中的唯一一個plist文件定義的,而且文件名就是用戶的帳戶名,里面保存着用戶的帳戶信息。
輸出的結果就是帳戶tonyliu的UUID(這里可以拷貝下這個UUID, 后面會用到)。
4. 命令:PlistBuddy -c “Print users” ./groups/admin.plist
跟前一行類似,不同的是: users:是定義群組中成員的字段,是字符串數組。 ./groups/admin.plist:是管理員群組的plist文件 輸出的結果是個數組,是系統中所有管理員的帳戶名。按照從前往后的順序排列,數組序列號從數字0開始,所以上圖的例子是:users[0]=root,users[1]=admin。后面我們要把tonyliu添加到最后,那么就是users[2]=tonyliu(如果運行這行命令,打印的結果只有1項,那么就是要設置users[1]='tongliu', 即Add users冒號后面的數字應該為1)
5. 命令:PlistBuddy -c “Print groupmembers” ./groups/admin.plist
跟前一行類似,不同的是: groupmembers:是定義組成員UUID的數組的字段 輸出的結果也是個數組,是系統中所有管理員的帳戶名的UUID。順序排列與前面的一致,數組序列號也從數字0開始。后面我們要把tonyliu的UUID(也就是3. 命令的輸出)添加到最后,序號也是2.(如果運行這行命令,打印的結果只有1項,那么就是要設置groupmembers[1]='1052FC1A-7595-4D06-816A-4AF79EE746AE', 即Add groupmembers冒號后面的數字應該為1)
6. 命令:PlistBuddy -c “Add users:2 string tonyliu” ./groups/admin.plist
跟前面幾個類似,不同的是: Add:就是把數據添加到Plist文件的指定字段中。 users:就是字段名 :2:定義數組的元素編號,上面說了要把tonyliu添加到序號2。(如果上面Print users結果只有1項,這里應該為1) string:定義后面的參數的類型,string是字符串 tonyliu :要添加的字符串的值 全句的解釋就是,把tonyliu作為字符串添加到./groups/admin.plist文件中的users數組中的第[2]個元素。 運行成功,不會看到任何的輸出
7. 命令:PlistBuddy -c “Add groupmembers:2 string 1052FC1A-7595-4D06-816A-4AF79EE746AE” ./groups/admin.plist
跟前面幾個類似,不同的是:
全句的解釋就是,把** 1052FC1A-7595-4D06-816A-4AF79EE746AE**作為字符串添加到./groups/admin.plist文件中的groupmembers數組中的第[2]個元素。(如果上面Print groupmembers結果只有1項,這里應該為1)
運行成功,不會看到任何的輸出
8. 命令:PlistBuddy -c “Print users” ./groups/admin.plist 和 PlistBuddy -c “Print groupmembers” ./groups/admin.plist 這兩行就是為了驗證前面的操作正確。
9. 命令:reboot 重新啟動
命令小結
初級讀者使用中,注意把命令中下面的字符串替換成與操作機配置相匹配的:
“Macintosh HD”
“tonyliu”
“1052FC1A-7595-4D06-816A-4AF79EE746AE”
其實,命令4/5/8/9都可以省略,這樣只要在命令6/7中稍作修改就可以了。讀者自行嘗試。
.AppleSetupDone法回顧
方法是圖形和命令行的混合:
重啟到單用戶模式4后,一次輸入下面三行命令:
/sbin/mount -uw / rm /var/db/.AppleSetupDone reboot
重啟后,跟着macOS初始化步驟完成創建一個新管理員的步驟。登錄到新管理員中,到用戶和群組系統偏好中賦予原有帳戶管理員權限5。
可選整理步驟:登出新管理員,登錄到原管理員帳戶,刪除新管理員帳戶。
如何在 Mac 上設置固件密碼:https://support.apple.com/zh-cn/HT204455 ↩︎
使用文件保險箱加密 Mac 上的啟動磁盤:https://support.apple.com/zh-cn/HT204837 ↩︎
更改 macOS 用戶帳戶和個人文件夾的名稱: https://support.apple.com/zh-cn/HT201548 ↩︎
以單用戶模式或詳細模式啟動 Mac: https://support.apple.com/zh-cn/HT201573 ↩︎
macOS Sierra: 在 Mac 上設置用戶、客人和群組: https://support.apple.com/kb/PH25796?viewlocale=zh_CN&locale=de_LU ↩︎
————————————————
版權聲明:本文為CSDN博主「afatgoat」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/afatgoat/java/article/details/84138463