首页 帮助中心 新加坡高防服务器 Linux中的权限管理中su与sudo的比较
Linux中的权限管理中su与sudo的比较
时间 : 2024-12-19 11:57:15 编辑 : 华纳云 阅读量 : 48

Linux系统同其他同类系统相比安全性更高,其中提高安全性的方法之一就是使用用户管理策略,普通用户无权执行任何操作。普通用户如果下执行任何系统范围更改,需用su或sudo命令。

基于ubuntu发行版中,su和sudo有哪些差异?Su强制用户和其他用户共享root密码,而sudo可在没有root密码情况下执行系统命令,sudo允许用户使用自己密码来执行系统命令,没有root密码情况下委托系统责任。

“sudo”是一个设置了setuid的root二进制文件,它代表授权用户执行root命令,用户需要输入自己的密码来执行跟在“sudo”之后的系统命令。

可以运行“ /usr/sbin/visudo ”来添加/删除可以执行“ sudo ”的用户列表。

$ sudo /usr/sbin/visudo

默认情况下, sudo列表类似于以下字符串:

root ALL=(ALL) ALL

需以root 身份才能编辑/usr/sbin/visudo文件。

很多时候系统管理员特别是新手系统管理员,会将字符串“ root ALL=(ALL) ALL ”作为模板,并授予其他人不受限制的访问权限,这可能会非常有害。将 ' /usr/sbin/visudo'文件编辑为类似以下模式的内容可能存在威胁,除非您完全相信所有列出的用户:

root ALL=(ALL) ALL

adam ALL=(ALL) ALL

tom ALL=(ALL) ALL

mark ALL=(ALL) ALL

sudo的配置非常的灵活,可以精确配置到所需命令数量。Sudo 配置语法:

User_name Machine_name=(Effective_user) command

User_name :这是“ sudo ”用户的名称。Machine_name:这是主机名,其中“ sudo ”命令有效。当您有许多主机时很有用。(有效用户):允许执行命令的“有效用户”。此列允许您允许用户执行系统命令。命令:用户可以运行的命令或一组命令。

相关问答:

问题1:如果现在有一个用户Mark作为数据库管理员,Mark将获得对beta.database_server.com数据库服务器的专有访问权限,而不是对任何其他主机的权限。怎么设置权限?

答:对于上述情况,sudo行可以写为:

mark beta.database_server.com=(ALL) ALL

问题2:有一个用户 ' tom ',该用户应该在同一数据库服务器上以 root 以外的用户身份执行系统命令,怎么配置权限?

答:对于上述情况,sudo行可以写为:

mark beta.database_server.com=(tom) ALL

问题3:有一个用户cat只能运行dog命令的配置方法?

答:对于上述情况,sudo行可以写为:

mark beta.database_server.com=(cat) dog

问题4:如需要授权用户多个命令方法?

答:用户需运行命令数少于10条,可以将所有命令放在旁边,并在它们之间留出空格,如下所示:

mark beta.database_server.com=(cat) /usr/bin/command1 /usr/sbin/command2 /usr/sbin/command3 ...

如果这个命令列表变化较大,可不手动输入每个命令,直接用别名。别名就是可以把长命令或者命令列表称为短而简单的关键字。一些别名示例,可用于代替“ sudo ”配置文件中的条目。

User_Alias ADMINS=tom,jerry,adam

user_Alias WEBMASTER=henry,mark

WEBMASTERS WEBSERVERS=(www) APACHE

Cmnd_Alias PROC=/bin/kill,/bin/killall, /usr/bin/top

可制定一个系统组替代这个组成员,直接后缀加%:

%apacheadmin WEBSERVERS=(www) APACHE

问题5:我可以不输入密码情况下执行sudo吗?

答:使用“ NOPASSWD ”标志执行“ sudo ”命令而无需输入密码。

adam ALL=(ALL) NOPASSWD: PROCS

用户 ' adam ' 可以执行“ PROCS ”下的所有命令,而无需输入密码。

与“su”不同,“sudo”提供了一个既强大又安全的权限管理环境,具有高度灵活性,并且配置简单。多数Linux发行版默认启用“sudo”或需要你手动启用以确保安全。

要将用户(如bob)添加到sudo组,需以root权限执行相应命令。

adduser bob sudo

更多技术资讯,关注华纳云

华纳云 推荐文章
Linux中检查内存使用情况free命令的用法 当CentOS正式停产后推荐替代发行版有哪些 Linux系统中禁用root帐户常用方法 Linux服务器中阻止USB存储设备的常用方法 监控 Linux 网络磁盘运行时间负载及RAM 的 Shell 脚本 Linux中生成和使用MD5验证文件指南 Linux中.bz2文件压缩和解压的方法 使用FFmpeg来计算linux视频总帧数 RPM软件包定义及卸载一般步骤 MacOS 访问 Linux NFS 共享文件夹的方法
客服咨询
7*24小时技术支持
技术支持
渠道支持