CentOS7--su和sudo


   在某些情況下, root用戶身份訪問系統有潛在危險,並可能導致系統和數據損害。我們可以用setuid程序,例如su和sudo解決。

 

su命令

[app01rot@app-01 ~]$ su - root

  一旦在使用su命令登錄root,用戶獲取了系統的絕對管理權限

只允許特定用戶使用該su命令

要做到這一點,編輯插入式驗證模塊為(PAM)配置文件/etc/pam.d/su 在文本編輯器中打開該文件,取消注釋:

#auth           required        pam_wheel.so use_uid

 將用戶添加到名為wheel的特殊管理組 

usermod -a -G wheel username

  

sudo命令

只有/etc/sudoers配置文件中列出的用戶才可以使用該sudo命令,命令在用戶的 shell中執行,而不是在rootshell中執行。這意味着root可以完全禁用shell。

sudo ls /root

  每個使用該sudo命令的成功身份驗證都會記錄到/var/log/messages,並將的用戶和發出的命令記錄到文件/var/log/secure中

/var/log/secure

Nov  7 17:09:49 app-01 sudo:    root : TTY=pts/1 ; PWD=/root ; USER=root ; COMMAND=/bin/ls /root/

如果需要額外的日志記錄,請使用該pam_tty_audit模塊為指定用戶啟用TTY審計,方法是將以下行添加到/etc/pam.d/system-auth文件中:

session required pam_tty_audit.so disable=pattern enable=pattern

其中pattern表示逗號分隔的用戶列表,以下配置將啟用root用戶的TTY審計,並禁用所有其他用戶

session required pam_tty_audit.so disable=* enable=root

權限管理

要賦予某人完全的管理權限

用visudo命令編輯/etc/sudoers

juan ALL =(ALL)ALL      #允許juan使用sudo執行任何命令

賦予部分管理權限

%users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom  #允許users組中的成員執行執行的掛載磁盤命令

 不需要輸入sudo密碼執行一組命令

Cmnd_Alias SYS_BACKUP = /bin/su - root -c /usr/locale/sbin/sys_backup.sh,/mnt/cdrom
insmsop1 ALL=(ALL)     NOPASSWD: SYS_BACKUP 

配置sudo記錄密碼的時間

sudo將密碼保存五分鍾的超時時間。在此期間對該命令的任何后續使用都不會提示用戶輸入密碼。添加下面的一行將修改時間

Defaults    timestamp_timeout=value    #value=0,每次sudo都需要輸入密碼

 如果某個帳戶遭到入侵,攻擊者可以使用以下sudo管理權限打開一個新的shell:

sudo /bin/bash  #繞過/etc/sudoers文件中指定的超時時間,並且永遠不要求攻擊者sudo再次輸入密碼

  

 

 

 

 


免責聲明!

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



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