關於Linux系統上 SU命令的幾點安全建議

2021-04-14 01:23:46 字數 1714 閱讀 6396

首先我們看su在man幫助頁中的解釋su - run a shell with substitute user and group ids, 也就是說通過su我們不用提供使用者和組名就可以啟動乙個shell程式. su是乙個二進位制的可執行檔案, 命令所在的檔案路徑是/bin/su, 下面是通過命令列查詢su檔案的型別及所在路徑:

例一:

islab$ which su

/bin/su

例二:

islab$ file /bin/su

/bin/su: setuid elf 32-bit lsb shared object, intel 80386, version 1 (sysv), for gnu/linux 2.6.9, stripped

例三:

islab$ll /bin/su

-rwsr-xr-x 1 root root 24060 jan 10 2007 /bin/su

例三和例二中我們可以看到su是乙個setuid程式(setuid位可以使用chmod u+s進行設定, 如ls顯示su檔案所有者屬性起用了setuid位), 在這種情況下, su可以獲得比其所有者更高的許可權, 也就是說su執行的時候, 您的許可權會被提公升, 將與root的許可權等同.

例三中我們可以看到檔案的型別是elf 32-bit lsb shared object(設定了setuid位), 也就是說程式需要libc這樣的函式庫, 也需要使用了elf直譯器, 並遵守lsb 規範.

問一: 普通使用者可以從其它機器拷貝su命令.

答: 他們可以從其它機器拷貝su命令, 但是他們將不能對su進行正確的許可權設定比如chown root和chmod u+s等等. 所以拷貝過來su不能夠正常工作.

問二: 如何防止普通使用者執行su命令.

答: 1). 你可以建立乙個專門的組, 只有組成員才能執行su命令

islab# groupadd wheel

islab# useradd wheel

islab# chown root:mysql /bin/bash

islab# chmod 4750 /bin/su

2). 只有root使用者才能執行su命令.

islab# chmod 4700 /bin/su

3). 通過pam庫實現只有wheel組成員才能執行su命令, 下面例子中增加了zhaoke帳號到wheel組中.

islab# groupadd wheel

islab# useradd wheel

islab# usermod -g wheel zhaoke

islab# ll /lib/security/pam_wheel.so

-rwxr-xr-x 1 root root 5692 feb 22 2007 /lib/security/pam_wheel.so

islab# vi /etc/pam.d/su

增加下面一行auth required /lib/security/pam_wheel.so use_uid

然後儲存退出su配置檔案.

問三: 普通使用者雖然不能執行su命令, 但是還有可能通過蠻力攻擊獲得root的密碼

答: 普通使用者可以在shell或者ssh方式對root帳戶進行蠻力攻擊.我們可以考慮使用一些安全工具如pam_abl來對ssh進行保護. pam_abl將能在設定的時間內對錯誤登陸的帳戶進行進行臨時封禁. 當然普通使用者也可以通過程式漏洞提公升許可權, 比如緩衝區溢位。

linux命令su與su 的差別

su命令和su 命令最大的本質差別就是 su僅僅是切換了root身份。但shell環境仍然是普通使用者的shell。而su 連使用者和shell環境一起切換成root身份了。僅僅有切換了shell環境才不會出現path環境變數錯誤。su切換成root使用者以後,pwd一下,發現工作資料夾仍然是普通使...

linux中su與su 命令的區別

linux中su與su 命令的區別 在我的fc6系統下用普通使用者登入,然後用su命令切換到超級使用者,再輸入ifconfig命令,報錯 command not find。而如果用su 命令切換到超級使用者,再輸入ifconfig命令則能成功執行。這其中涉及的就是su命令與su 命令的區別,man ...

Linux下su與su 命令的區別

使用 su root 切換到root使用者後,不可以使用service命令 使用 su 後,就可以使用service命令了。原因 su命令和su 命令區別就是 su只是切換了root身份,但shell環境仍然是普通使用者的shell 而su 連使用者和shell環境一起切換成root身份了。只有切換...