热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

使用sudo来赋予普通用户root的权限

文章标题:使用sudo来赋予普通用户root的权限。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  常规来说,root的权限是不可随意分割的,所以很难既给某个用户完成一件任务的权力,比如说备份,而又不给这个人自由运行系统的权力。如果把root给多个人去使用,显然是个不安全的做法。

    针对这个问题,现在广泛的采用SUDO的方式来解决。

    所谓的SUDO就是以普通用户的身份登录到系统,当需要完成某项任务时(假设此任务普通用户无权使用),在管理员root的授权下来完成。呵呵,对了,有点像WINDOWS中的委派。一旦用户得到授权后就可以去做原本自己不能做的事情,从而帮助管理员管理,减轻管理员的负担。

    执行sudo时,它会读取文件/etc/soduers,这个文件列出了授权使用sudo的人以及他们在每台主机上可以运行的命令。如果提供给sudo的命令允许运行,那么sudo就提示输入这个用户自己的口令并执行命令。在随后的5分钟内,再次使用sudo则不需输入口令。sudo没有定义好的日志文件,所以如果你要使用sudo的日志,你还得自己去配置一下。至于怎么去配咱们以后讨论。

    如果你要配置sudo,建议你使用visudo来配置/etc/sudoers文件,它会检查是否有人在同时编辑修改此文件。以下是一个例子:

  

 
## Host Aliases
Host_Alias     FILESERVERS = fs1, fs2
Host_Alias     MAILSERVERS = smtp, smtp2
 
## Networking
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
 
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
tom,z3  FILESERVERS=ALL
jerry    MAILSERVERS=/usr/sbin/tcpdump:FILESERVERS=(L4)DUMP
w5       ALL=(ALL)ALL,!SHELLS

  上面第一部分是用来定义主机的,如果不定义那么你就得在第三部分手动写入。第二部分是用来定义服务的,如果不定义那么你就得在第三部分手动写入。建议你使用这种别名的方式来定义你的“操作”,这样sudoers的可读性更强。

    第三部分是关于权限的定义,也就是说谁可以用sudo干什么事情。其中格式如下:

  适用的用户  要注意的主机=(转换成谁的身份)可以使用什么命令

  如果没有定义括号中的内容,则表示只以root身份执行相应操作。!表示“除什么以外”。
   
  当普通用户,例如tom,登录到系统要执行本来没有权限执行的操作时,他可以键入如下命令: 

    sudo su ?

   然后键入自己的密码就可以了。
   

 
Alias主要分成4
Host_Alias
Cmnd_Alias
User_Alias
Runas_Alias
1) 配置Host_Alias:就是主机的列表
Host_Alias      HOST_FLAG = hostname1, hostname2, hostname3
2)
配置Cmnd_Alias:就是允许执行的命令的列表
Cmnd_Alias      COMMAND_FLAG = command1, command2, command3
3)
配置User_Alias:就是具有sudo权限的用户的列表
User_Alias USER_FLAG = user1, user2, user3
4)
配置Runas_Alias:就是用户以什么身份执行(例如root,或者oracle)的列表
Runas_Alias RUNAS_FLAG = operator1, operator2, operator3
5)
配置权限
配置权限的格式如下:
USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG
如果不需要密码验证的话,则按照这样的格式来配置
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG

   
    使用sudo的好处
    1, 由于有日志可以提高安全审计的能力
    2, 操作员不需要不受限制的root特权就能完成许多任务
    3, 保证root密码的安全
    4, 比使用su快
    5, 不需要改变root密码就能收回某些权限
    6, 只需维护sudoers就可维护所以用户的特权列表
    7, 降低遗留root shell的概率
    8, 可以使用单个文件来控制对整个网络的访问权限
        当然也有不足,比如说如果突破了能执行sudo命令的个人账户,就等同突破了root账户本身。


推荐阅读
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • Valve 发布 Steam Deck 的新版 Windows 驱动程序
    Valve 最新发布了针对 Steam Deck 掌机的 Windows 驱动程序,旨在提升其在 Windows 环境下的兼容性、安全性和性能表现。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 距离11月的软考还有不到五个月的时间,考试将于11月5日至6日举行。许多朋友对软考的具体情况还不太了解:它是什么?有何用途?本文将为你详细解答。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 在 Windows 10 中,F1 至 F12 键默认设置为快捷功能键。本文将介绍几种有效方法来禁用这些快捷键,并恢复其标准功能键的作用。请注意,部分笔记本电脑的快捷键可能无法完全关闭。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
author-avatar
mobiledu2502886077
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有