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的运行情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值