Root权限通行证:Sudo

Sudo(substitute user [或 superuser] do),是一程式,用於Unix作系如BSD,Mac OS X,以及GNU/Linux以允使用者透安全的方式使用特殊的限行程式(通常系的超使用者)。在sudo於1980年前後被出之前,一般使用者管理系的方式是利用su切超使用者。但是使用su的缺之一在於必要先告知超使用者的密。

sudo使一般使用者不需要知道超使用者的密即可得限。首先超使用者普通用户的名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息,登在特殊的案中(通常是/etc/sudoers),即完成使用者的授(此使用者「sudoer」);在一般使用者需要取得特殊限,其可在命令前加上「sudo」,此sudo使用者自己的密(以端前的是使用者本人),回答後系即命令的进程以超使用者的限行。之後的一段(5分,可在/etc/sudoers自),使用sudo不需要再次入密。由於不需要超使用者的密,部分Unix系甚至利用sudo使一般使用者取代超使用者作管理,例如Ubuntu、Mac OS X等。

Sudo命令的实现规则是在/etc/sudoers中定义的,这个文件只有管理员能够编辑,并且有专用的编辑工具visudo。如果想了解它们的详细用法可以使用man命令进行查看。

我们先来看一个应用:

我们在/etc/sudoers中定义好之后我们需要使用sudo命令再接被允许的管理命令。

Sudo:

参数

-b 在后台执行指令。

-h 显示帮助。

-H 将HOME环境变量设为新身份的HOME环境变量。

-k 结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。

-l 列出目前用户可执行与无法执行的指令。

-p 改变询问密码的提示符号。

-s 执行指定的shell。

-u <用户> 以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。

-v 延长密码有效期限5分钟。

-V 显示版本信息。

-S   从标准输入流替代终端来获取密码

在定义命令是可以使用别名机制,有用户别名、主机别名、授权身份别名、命令别名:

别名可以嵌套,命令别名可以使用目录,表示此目录下的所有命令,"sudoedit"(表示可以编辑sudoers文件)。

我们看到如果给centos添加可以使用passwd命令的话,默认它还可以更改root的密码,这就太危险啦,所以可以使用!取反除去root。

我们一直输密码很烦人对吧,可以使用NOPASSWD关键字定义不输密码,PASSWD定义使用密码。

可以在安全日志中看到每一个sudo的运行情况。

时间: 2024-07-31 14:25:51

Root权限通行证:Sudo的相关文章

Linux系统下给非root用户添加sudo权限

有时,在linux系统中非root用户运行sudo命令,会提示类似信息: xxx is not in the sudoers file. This incident will be reported. 这里,xxx是当前用户名,该用户无法执行sudo命令,这时候,解决方法如下: 1.进入超级用户模式.也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式.(也可以直接用root登录): 2.给配置文件“/etc/sudoers”添加“写”权限.输入命令: c

Linux su和sudo命令的区别,并获得root权限

su(superuser) su表示切换用户,如: 输入:su命令后回车表示切换当前的用户到root用户,或者: 输入:su - root(或者其他用户名)这里加了"-"后表示也切换的当前的环境变量到新用户的环境变量. su root(或者其他用户名)表示不切换环境变量到当前用户下. sudo 表示获取临时的root权限命令,如: sudo gedit /etc/shadow,表示临时使用root权限来编辑/etc/shadow密码文件,因为/etc/shadow密码文件需要使用roo

Debian普通用户获取root权限|sudo的安装与配置

Debian系统的普通用户需要安装软件时,往往会收到“Permission denied”的提示,这时候需要root权限.那么如何在不登陆超级管理员账户的前提下拥有root权限呢?对于大多数Linux系统来说,我们可以通过“sudo”命令来获取root权限,或者通过“su”登陆超级管理员账户来进行各种需要root权限的操作. 然而,Debian系统好像默认不安装sudo,所以下面将讲解“如何安装sudo及配置其sudoers文件” 首先登陆超级管理员账户,在 Terminal 命令行内输入 su

sudo配置临时取得root权限

sudo配置临时取得root权限系统中的普通用户有时需要root权限执行某种操作,要是使用su - root的话必须要知道root的密码,这是不安全的,所以有了sudo,root可以对/etc/sudoers做一定的配置,让普通用户在不切换到root的情况下,执行一些只有root才能执行的操作.这个文件只能root去修改,建议使用visudo这个命令修改,而不是直接vim /etc/sudoers.原因有二:? 一是它能够防止两个用户同时修改它:? 二是它也能进行有限的语法检查.当编辑这个文件有

linux下添加用户并赋予root权限

1.添加用户,首先用adduser命令添加一个普通/系统用户,命令如下:# adduser [-r] –d /tommy tommy//添加一个名为tommy的用户 # passwd tommy   //修改密码Changing password for user tommy.New UNIX password:     //在这里输入新密码Retype new UNIX password:  //再次输入新密码passwd: all authentication tokens updated

linux 让普通用户拥有root权限

测试环境:CentOS 6.5 1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 #passwd tommy //修改密码 Changing password for user tommy. New UNIX password: //在这里输入新密码 Retype new UNIX password: //再次输入新密码 passwd: all authentication tokens updated succe

php利用root权限执行shell脚本 (转)

转一篇博客,之前搞这个东西搞了好久,结果今天晚上看到了一篇救命博客,瞬间开心了...转载转载 利用sudo来赋予Apache的用户root的执行权限,下面记录一下: 利用PHP利用root权限执行shell脚本必须进行以下几个步骤:(所有步骤都是我亲自实验,若有不妥可指出,谢谢!) 1. 确定一下你的Apache的执行用户是谁.注:不一定就是nobody,我自行安装的httpd,我的Apache的用户就是daemon 2. 利用visudo为你的Apache执行用户赋予root执行权限,当然还有

Linux学习笔记——使用指定的用户权限执行程序——sudo

      sudo可以用来以其他用户身份执行命令,sudo命令可以针对单个命令授予临时权限.sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性. 1:sudo的帮助信息如下: [email protected]:~/桌面$ sudo --helpsudo - 以其他用户身份执行一条命令 usage: sudo -h | -K | -k | -Vusage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user

CentOS 7下新建用户并设置为可提升为ROOT权限

第一步:添加用户 命令: #adduser tom    <!--此处以用户tom为例--> 第二步:修改密码 命令: #passwd tom 根据提示输入两次密码,完成密码设置. 第三步:设置用户权限 方法一:修改 /etc/sudoers 文件(推荐方法) 命令: #visudo    <!--找到下面一行,并在其后新增一行,如下所示:--> ## Allow root to run any commands anywhere    root    ALL=(ALL)