`
libin0019
  • 浏览: 237433 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

sudo命令详解

 
阅读更多

引自:http://blog.chinaunix.net/space.php?uid=15811445&do=blog&id=149961

sudo是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他特许用户才能完成的任务
大家知道ubuntu吧,他就封闭了root用户,都是使用的sudo
sudo能够限制指定用户在指定主机上运行某些命令。 
sudo可以提供日志,忠实地记录每个用户使用sudo做了些什么,并且能将日志传到中心主机或者日志服务器。 
sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置是/etc/sudoers。 
sudo使用时间戳文件来完成类似“检票”的系统。当用户执行sudo并且输入密码后,用户获得了一张默认存活期为5分钟的“入场券”(默认值可以在编译的时候改变)。超时以后,用户必须重新输入密码。
 
编辑/etc/sudoers文件,只有超级用户才可以修改它。
sudoers文件就是sudo的配置文件了,但是我们不建议用户直接vim这个文件,建议使用visudo这个命令来编辑这个文件:#visudo
之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。 
sudo的常用参数
sudo -l :列出当前用户可以执行的命令。只有在sudoers里的用户才能使用该选项。 
sudo -u 用户名 命令:以指定用户的身份执行命令。后面的用户是除root以外的,可以是用户名,也可以是#uid。 
sudo -k:清除“入场卷”上的时间,下次再使用sudo时要再输入密码。 
sudo -b 命令:在后台执行指定的命令。 
sudo -p 提示语:可以更改询问密码的提示语,其中%u会代换为使用者帐号名称,%h会显示主机名称。非常人性化的设计。 
sudo -e 文件名:不是执行命令,而是修改文件,相当于命令sudoedit。 
现在我们来试试,请大家使用visudo这个命令 
然后使用/root查找
查找到这行root   ALL=(ALL)     ALL 
这个文件最重要的也就这么一行
我给大家解释下:
第一个root 代表用户名 
第一个ALL代表所有主机 
(ALL)代表所有用户 
后面那个ALL代表所有命令
 
这句话的意思就是:root用户可以在任何机器上运行所有用户的所有命令 
第一个主机你就理解成这个主机吧,他主要是对一个域来定义的
用户名 主机名=命令
命令须绝对路径,以“,”分隔,以“,”结尾
如果我要让michael这个用户可以执行所有用户的shutdown和useradd命令就这样写
michael  ALL=(ALL)    shutdown,useradd 
然后保存退出,如果没有提示的话就证明成功了
visudo默认的是在vi里打开配置文件,用vi来修改文件。我们可以在编译时修改这个默认项。visudo不会擅自保存带有语法错误的配置文件,它会提示你出现的问题,并询问该如何处理,就像: 
>>> sudoers file: syntax error, line 71 <<< 
此时我们有三种选择: 
键入“e”是重新编辑,键入“x”是不保存退出,键入“Q”是退出并保存。如果真选择Q,那么sudo将不会再运行,直到错误被纠正。
我故意说错了这个命令,那两个命令michael用户是没有环境变量的,也就是michael没那两个命令,所以会报错,就像这样看下图:
比如把命令改成system-confg-users命令的可执行文件
先使用which system-config-users找到他的可执行文件/usr/bin/system-config-users 
需要注意的是,当我们为用户定义可以运行的命令时,必须使用完整的命令路径。这样做是完全出于安全的考虑,如果我们给出的命令只是简单的useradd而非/usr/sbin/useradd,那么用户有可能创建一个他自己的脚本,也叫做useradd,然后放在它的本地路径中,如此一来他就能够通过这个名为useradd的本地脚本,作为root来执行任何他想要的命令了。这是相当危险的!
我们来查找下:which shutdownwhich useradd
/sbin/shutdown,/usr/sbin/useradd这个进去就OK了,多个命令使用","分隔
现在保存退出就没有报错哈~
你可以切换到michael这个用户,使用#sudo useradd xxxx 
然后输入michael用户的密码,命令就可以执行成功
普通用户的PATH没有加/usr/sbin,自己加上export PATH=$PATH:/usr/sbin,然后我们再试试哈~
ok,可以了哈~
大型的主机就使用这种方法把权限分配给不同的管理员
#########################################################################

分享到:
评论

相关推荐

    sudo命令详解及示例

    sudo命令详解及示例

    linux系统sudo命令详解

    **sudo命令详解:** `sudo`命令本身是一个设置了SUID(Set-User-Id)权限的二进制文件,所有用户都能以root权限运行它。它的执行需要用户输入自己的密码,而不是目标命令所需的root密码。`sudo`的配置都在/etc/...

    linux sudo命令详解

    严谨些说,sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都是通过安全策略来指定的。sudo 支持插件架构的安全策略,并能把输入输出写入日志。第三方可以开发并发布...

    Linux sudo命令用法详解

    Linux sudo命令 Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。 使用权限:在 /etc/sudoers 中有出现的使用者。 语法sudo -V sudo -h sudo -l sudo -v sudo ...

    linux sudo

    ### Linux Sudo 命令详解 #### 一、Sudo 概述及特点 **Sudo**(Superuser DO)是一种广泛应用于Unix和Linux系统的工具,它允许系统管理员为普通用户分配特定权限,使他们能够在不需要登录为超级用户的情况下执行...

    Ubuntu中sudo命令的使用

    ### Ubuntu中sudo命令的使用详解 #### 一、引言 Ubuntu系统因其用户友好性和安全性而受到广泛欢迎。其中一个重要特性就是默认禁用了root账户的直接登录,而是通过`sudo`命令来实现管理员级别的操作。本文将深入...

    CentOS 7中sudo权限配置

    在配置完成后,使用sudo命令执行操作时,系统会根据/etc/sudoers文件中的规则,判断当前用户是否有权限执行该命令。如果用户vic尝试执行未授权的关机命令,例如: ```bash vic@CentOS7 ~ $ sudo shutdown -h now ...

    sudo用法详解

    sudo命令是Linux系统中用于以其他用户(通常是root)权限运行命令的工具。它提供了一种安全的机制,允许非特权用户执行特定的管理任务,而无需知道root密码。这对于多用户环境中的权限管理和系统安全至关重要。 ###...

    Ubuntu实验二之简单命令

    #### 附录一:sudo命令详解 sudo命令允许用户以其他用户(默认为root)的身份执行命令。主要参数包括: - `-b`:在后台执行指令。 - `-H`:将HOME环境变量设为新身份的HOME环境变量。 - `-k`:结束密码有效期,...

    Linux sudo 漏洞可能导致未经授权的特权访问

    Linux系统中的sudo命令是一个至关重要的工具,它允许用户以管理员(root)权限执行特定命令,而无需实际登录为root用户。然而,sudo命令近期被发现存在一个严重的安全漏洞,这个漏洞可能导致非授权用户获取root权限...

    linux的sudo详解

    ### Linux的sudo详解 #### 一、概述 `sudo`(superuser do)是一个Linux及类Unix系统中广泛使用的命令,允许用户以超级用户或其他指定用户的权限执行命令。这一功能对于系统管理和日常维护至关重要,因为它提供了...

    linux用户添加root权限参照.pdf

    四、sudo 命令详解 sudo 命令可以让用户以其他身份来执行指定的指令,预设的身份为 root。 sudo 命令的格式为: `sudo [-bhHpV][-s ][-u &lt;用户 &gt;][指令]` 主要参数: * `-b`:在后台执行指令。 * `-h`:显示...

    apt 常用命令 详解

    ### APT常用命令详解 #### 1. **搜索包** - `apt-cache search package` 当您不确定所需软件的确切名称时,`apt-cache search`命令可以帮助您根据关键词查找可能匹配的软件包。例如,如果您想找到与“文本编辑器”...

    Linux命令详解词典(绝版)

    《Linux命令详解词典(绝版)》作为施威铭研究室所著的一本经典Linux工具书,主要针对Linux操作系统中的各种命令进行了深入的解释和阐述。Linux作为一种自由和开放源代码的类Unix操作系统,广泛应用于服务器、桌面、...

    linux命令详解词典

    这份“Linux命令详解词典”由施威铭研究室提供,涵盖了Linux系统下的所有基本及高级操作命令,对于学习和理解Linux系统的管理至关重要。下面将详细阐述一些关键的Linux命令。 1. **ls**:列出目录内容。`ls`命令...

    Linux命令详解手册

    Linux命令详解手册是一本适合Linux新手和有一定基础的用户深入学习Linux命令的指南。它详细介绍了大量的Linux命令,涵盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面的操作。掌握这些命令对于理解和使用...

    如何免sudo使用docker命令详解

    对Linux系统管理员或高级用户而言,sudo是必不可少的最重要的命令之一。而因为使用的是sudo安装docker,所以会导致一个问题。以普通用户登录的状况下,在使用 docker images 时必须添加 sudo ,那么如何让docker免 ...

Global site tag (gtag.js) - Google Analytics