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



  常规来说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/config, /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


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

第 3部分是有关权限定义也就是说谁可以用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账户本身
Tags:  ubunturoot权限 root权限 sudopasswdroot sudoroot

延伸阅读

最新评论

发表评论