這個「查找」指令有什麼作用?

這個「查找」指令有什麼作用?

我是 Linux 的初學者,我在使用時運行了以下命令/root

find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \

我打算在特定資料夾上運行它,但我沒有註意到我在/root.

這會影響機器上的每個檔案嗎?

答案1

如果您有足夠的權限,這些find命令將遞歸地將所有檔案的權限位元變更為,660將所有目錄的權限位元變更為770從執行它的目錄開始。

由於您位於/root(root的主目錄) 並假設您正在運行並且root所有者user:grouproot:root,這應該不是一個主要問題,除非某些特定程式可能會抱怨某些特定檔案或目錄,例如ssh可能會抱怨進行基於密鑰的身份驗證時的/root/.ssh目錄和/root/.ssh/authorized_keys文件,您需要手動修復它們。

另外,不要盲目地運行任何在野外發現的命令,您應該先詢問該命令的作用,然後再運行它。

答案2

該命令會找到您執行該命令的目錄中的所有目錄並修改其權限。然後它會執行相同的操作,但處理的是檔案。在這種情況下,該命令會變更目錄的權限,以便您具有完全存取權限,但其他使用者將沒有任何存取權限。如果您是系統的唯一用戶,那麼這應該不重要。然後,該命令更改 /root 中文件的權限,僅允許讀寫訪問,但不允許執行。您可能會發現執行程式和腳本時出現一些問題,但不會產生重大影響。其他使用者也無權存取 /root 中的文件。

如果您發現無法從內部運行腳本或程序,/root您可以簡單地在文件上執行以下命令:

sudo chmod 775 filename

其中filename替換為您嘗試運行的文件的名稱

如果系統還有其他用戶,並且您希望每個人都能夠讀取目錄和文件,則可能值得再次運行該命令,但將其稍微更改為:

find . -type d -exec chmod 775 {} \; && find . -type f -exec chmod 664 {} \;

答案3

命令後面的第一個點是find搜尋樹的根。因此它影響了您運行它的資料夾的檔案及其下面的整個樹。

相關內容