Sudo浅谈
? ? 在Linux系統中, Sudo是最重要的命令之一,關系到整個系統的操作安全。
? ? sudo命令是用來以其它的身份來執行命令,預設的身份是root。配置文件是/etc/sudoers,權限為440,下面來了解下其基本設置:
[root@localhost sbin]# visudo?
## Allow root to run any commands anywhere
root ? ?ALL=(ALL) ? ? ? ALL
zwj ? ? ALL=(ALL) ? ? ? NOPASSWD:ALL,! /usr/sbin/reboot,! /usr/sbin/poweroff,! /usr/bin/passwd root,! /usr/sbin/shutdown,! /bin/rm,!/usr/bin/su,!/usr/sbin/visudo
reboot ?ALL=(ALL) ? ? ? PASSWD:/usr/sbin/reboot
其中,綠色背景是增加的設置,可以看到用戶zwj無法關機和重啟,也無法修改root的密碼,NOPASSWD:表示無需輸入密碼即可執行。!:表示取反的意思,即不允許執行。另外增加了一個用于系統重啟的用戶。
[zwj@localhost ~]$ sudo reboot
對不起,用戶 zwj 無權以 root 的身份在 localhost.localdomain 上執行 /sbin/reboot。
[zwj@localhost ~]$ sudo poweroff
對不起,用戶 zwj 無權以 root 的身份在 localhost.localdomain 上執行 /sbin/poweroff。
[zwj@localhost ~]$ sudo passwd zwj
對不起,用戶 zwj 無權以 root 的身份在 localhost.localdomain 上執行 /bin/passwd zwj。
可以查看下用戶所具有的sudo權限,更多參數請查看幫助sudo -h;
[zwj@localhost ~]$ sudo -l
匹配此主機上 zwj 的默認條目:
? ? !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR
? ? USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
? ? LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
? ? secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
用戶 zwj 可以在該主機上運行以下命令:
? ? (ALL) NOPASSWD: ALL, (ALL) !/usr/sbin/reboot, (ALL) !/usr/sbin/poweroff, (ALL) !/usr/bin/passwd [A-Za-z]*
如果要為用戶設置具體的權限,可以這樣設置:
## Allow root to run any commands anywhere
root ? ?ALL=(ALL) ? ? ? ALL
zwj ? ? ALL=(ALL) ? ? ? /sbin/useradd,/sbin/usermod
這樣一來,操作的風險大為降低,當然也可以通過用戶別名、命令別名來設置,較適合于權限劃分很精細的公司。
本文轉自 zengwj1949 51CTO博客,原文鏈接:http://blog.51cto.com/zengwj1949/1942365
總結
- 上一篇: 利用:header匹配所有标题做目录
- 下一篇: shell之常用脚本