login: Could not determine audit condition 解決方案

誤操作chown -R 777 /  導致macOS終端出現以下錯誤:

login: Could not determine audit condition

修改/usr/bin權限之後,login,sudo等命令無法正常使用,導致終端都無法打開。網傳的直接刪除/usr/bin/login文件的解決方式太粗暴,肯定有隱藏問題。下面是親測有效的一種恢復方法。

一,開啓macOS root權限

啓用root 用戶詳見:

https://www.jianshu.com/p/a6c5131099d8

 

二,進入root賬號後修改

以root賬號登入系統,執行以下命令:

chown root:wheel /usr/bin/login
chmod 4755 /usr/bin/login

chown root:wheel /usr/bin/sudo
chmod 4755 /usr/bin/sudo

//恢復原有權限
chmod g-w /usr/bin
chmod o-w /usr/bin

如果過程中遇到問題:

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

亦或者是:
chmod: changing permissions xxx: Read-only file system

可以嘗試:sudo mount -uw /   命令解決

 

命令解讀

 

chmod修改的是文件的讀、寫、執行。
chown修改的是文件的用戶或者組的權限。

 

chown root:wheel /usr/bin/login

這個命令把 login 文件的所有者和組別都設置成爲 root:wheel。換句話說,login 文件設置成爲管理員爲所有者 (wheel is the system administrator group in BSD, much like root is the system administrator user)

 

chmod 4755 ,命令詳情見:https://chmodcommand.com/chmod-4755/

chmod 755和chmod 4755的區別
from:http://hi.baidu.com/angivo/blog/item/d679237e467f68320dd7da10.html

chmod是Linux下設置文件權限的命令,後面的數字表示不同用戶或用戶組的權限。

一般是三個數字:
第一個數字表示文件所有者的權限
第二個數字表示與文件所有者同屬一個用戶組的其他用戶的權限
第三個數字表示其它用戶組的權限。

權限分爲三種:讀(r=4),寫(w=2),執行(x=1)。綜合起來還有可讀可執行(rx=5=4+1)、可讀可寫(rw=6=4+2)、可讀可寫可執行(rwx=7=4+2+1)。

所以,chmod 755 設置用戶的權限爲:

1.文件所有者可讀可寫可執行
2.與文件所有者同屬一個用戶組的其他用戶可讀可執行
3.其它用戶組可讀可執行

chmod 4755與chmod 755 的區別在於開頭多了一位,這個4表示其他用戶執行文件時,具有與所有者相當的權限。

例如:root用戶創建了一個上網認證程序netlogin,如果其他用戶要上網也要用到這個程序,那就需要root用戶運行chmod 755 netlogin命令使其他用戶也能運行netlogin。

但是netlogin執行時可能需要訪問一些只有root用戶纔有權訪問的文件,那麼其他用戶執行netlogin時可能因爲權限不夠還是不能上網。

這種情況下,就可以用 chmod 4755 netlogin 設置其他用戶在執行netlogin也有root用戶的權限,從而順利上網。

 

四位權限問題,後三位就不說了。
說一下第一位
同樣第一位換成二進制也分成三部分
abc

a - setuid位, 如果該位爲1, 則表示設置setuid
b - setgid位, 如果該位爲1, 則表示設置setgid
c - sticky位, 如果該位爲1, 則表示設置sticky
setuid: 設置使文件在執行階段具有文件所有者的權限. 典型的文件是 /usr/bin/passwd. 如果一般用戶執行該文件, 則在執行過程中, 該文件可以獲得root權限, 從而可以更改用戶的密碼.

setgid: 該權限只對目錄有效. 目錄被設置該位後, 任何用戶在此目錄下創建的文件都具有和該目錄所屬的組相同的組.

sticky bit: 該位可以理解爲防刪除位. 一個文件是否可以被某用戶刪除, 主要取決於該文件所屬的組是否對該用戶具有寫權限.
如果沒有寫權限, 則這個目錄下的所有文件都不能被刪除, 同時也不能添加新的文件. 如果希望用戶能夠添加文件但同時不能刪除文件,
則可以對文件使用sticky bit位. 設置該位後, 就算用戶對目錄具有寫權限, 也不能刪除該文件.
————————————————
版權聲明:本文爲CSDN博主「趙琦丶」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_23541951/article/details/82019266

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章