0
我目前正在編寫一個ksh腳本,用於檢查粘性位以查看非特權用戶是否可以執行某些命令。我想知道是否有更有效的方法來檢查它。任何幫助表示讚賞。有沒有辦法列出用戶可以執行的所有命令(KSH)?
我目前正在編寫一個ksh腳本,用於檢查粘性位以查看非特權用戶是否可以執行某些命令。我想知道是否有更有效的方法來檢查它。任何幫助表示讚賞。有沒有辦法列出用戶可以執行的所有命令(KSH)?
發現(1)是你的朋友(如果不是,安裝GNU找到):
find/-type f -executable
你說粘性位;這是01000位。你在考慮設置的UID(04000)和設置GID(02000)位嗎?這真的很棘手。 PATH目錄中的任何可執行文件都可以在不指定任何路徑的情況下執行(例如,只輸入'ls')。但是系統上的任何可執行文件都可以通過指定適當的路徑來執行 - 當然,這取決於訪問權限。然後你遇到別名和函數的問題:他們算數?那麼,你確定你想在計算機上的所有文件系統上搜索可執行文件嗎?因爲這些文件系統中的任何一個都可以運行? –
目前我有一個'ls -ltra x'的腳本,其結果是'-rwxrwx --- 1個用戶xyz .... x'。我的目標是確保只有root可以執行一些命令(lssec,chsec等)。我爲腳本提供了一些元數據(-r-xr-r--)並對比特進行了字符串比較。你認爲有更高效或更好的方法來做到這一點?如果您有任何問題,請讓我知道。謝謝回覆。 – Bashidiot
[不要解析'ls']的輸出(http://mywiki.wooledge.org/ParsingLs),是的,有些工具是爲這類事情設計的,儘管我不知道它們有多好是和JonathanLeffler一樣,說這樣做*非常依賴於你想要測試的東西。 –