Mac賬戶修改用戶名失去了管理員權限的解決辦法


網上至少有兩種方法,本文介紹第三種方法(推薦第三種)。

  1. “resetpassword”法,它只適合於忘記密碼的情形,不適合改權限  https://support.apple.com/zh-cn/HT202860
  2. “.AppleSetupDone”法,重建用戶,相當於恢復出廠設置,慎用。https://blog.csdn.net/sevenzwx/article/details/93237692
  3. "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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM