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


相关文章
|
1月前
|
存储 Ubuntu Linux
sudo apt update和sudo apt upgrade有啥区别
【4月更文挑战第1天】
46 4
|
6月前
|
Ubuntu 安全
ubuntu sudo apt-get upgrade 和 sudo apt-get dist-upgrade区别
ubuntu sudo apt-get upgrade 和 sudo apt-get dist-upgrade区别
|
Linux 开发工具 数据安全/隐私保护
关于sudo配置
关于sudo配置
|
缓存 Shell Linux
yum命令
yum命令
129 0
|
存储 缓存 Linux
YUM 命令
linux学习
133 0
|
Shell 数据安全/隐私保护 数据库
|
Linux 数据安全/隐私保护
|
Oracle 关系型数据库 安全