首页 男生 其他 Linux/Unix技术丛书·跟老男孩学Linux运维:核心基础篇(上)(第2版)

  您可以在百度里搜索“Linux/Unix技术丛书·跟老男孩学Linux运维:核心基础篇(上)(第2版) 艾草文学(www.321553.xyz)”查找最新章节!

  

  14.14.2 sudo命令范例

  范例14-24:查看用户被visudo授权后拥有的权限。

  在14.14.1节,我们已经对oldboy用户进行了授权,此时再以oldboy用户的身份登录系统,就可以通过执行类似于sudo ls-l/root(sudo后面加上正常命令)的命令来以root用户的权限管理系统了,命令如下:

  [oldboy@oldboy ~]$ ls /root

  ls: cannot open directory /root: Permission denied

  #<==可以看到,oldboy用户是无法直接访问/root家目录的

  [oldboy@oldboy ~]$ sudo ls /root #<==如果授权配置中含有NOPASSWD,则执行时将不提示密码,否则会要求输入当前用户的密码。

  anaconda-ks.cfg install.log install.log.syslog

  #<==通过sudo命令,使得oldboy用户具备访问/root目录的权限。

  对于上述代码段的说明,具体如下:

  • 通过sudo授权管理后,所有用户执行授权的特殊权限格式为“sudo命令”。

  • 如果需要切换到root执行相关操作,则可以通过“sudo su-”命令,注意,此命令提示的密码为当前用户的密码,而不是root的密码。

  • 执行“sudo-l”命令可以查看当前用户被授予的sudo权限集合。

  以下是查看oldgirl用户授权的结果情况:

  [oldgirl@oldboy ~]$ sudo -l #<==注意,这里是oldgirl用户,授权较低。

  [sudo] password for oldgirl: #<==提示输入密码,注意是oldgirl用户的密码,而非root密码。

  Matching Defaults entries for oldgirl on this host:

  User oldgirl may run the following commands on this host:

  (ALL)/usr/sbin/useradd, (ALL)/usr/sbin/userdel #<==查看到的oldgirl用户被授权的权限。

  • 对于Linux系统bash的内置命令,一般无法进行sudo授权,例如,cd命令。

  sudo授权与su切换的原理示意图如图14-1所示。

  图14-1 su与sudo用户角色切换原理图

  生产环境中通常会禁止root远程登录,不过,系统会为每个运维人员建立一个普通账号,然后根据运维人员的需求,通过sudo控制登录系统的权限,事实证明这是一个不错的权限管理方式。当然,笔者在生产环境中还使用了ldap统一认证登录及授权管理的方式。即只要有一个账号和密码,即可在全公司多个机房系统内通行无阻(系统登录、SVN、VPN等),有关这部分内容的讲解,在老男孩教育的高级课程中会有涉及。在此,大家了解下即可。

  普通用户的环境变量问题:在早期的CentOS5系统中,普通用户在执行系统管理相关的命令时会遭遇到环境变量问题,导致找不到执行的命令(CentOS6以后的系统已经不存在这个问题了)。

  sudo授权对于bash的内置命令处理是个难题,因为内置命令没有实体文件和路径,不过一般都有解决方法,例如可以使用sudo ls替代sudo cd,有的网友使用sudo bash后再使用内置命令,这样做是很危险的,不推荐使用这种方法。 Linux/Unix技术丛书·跟老男孩学Linux运维:核心基础篇(上)(第2版)

目录
设置
手机
书架
书页
评论