老陌笔记:sudo命令
Tofloor
poster avatar
老陌
deepin
2018-08-12 23:36
Author
本帖最后由 myccloves 于 2019-7-31 22:44 编辑

最近明显减少了发帖子的数量,一来感觉自己的帖子没技术含量,二来论坛也太慢了,点击发帖,等了一分多钟也打不开,热情骤降……
我们能体谅官方的难度,但也请照顾一下这些爱好份子的感受,论坛真的是太慢了。对于我们这些不懂技术的小白,也不会设置,只能点一下,慢慢等。

长长的站台,寂寞的等待……

聊胜于无,今天发一篇学习笔记。

sudo命令是普通用户经常使用的命令

  • sudo把本来只能超级用户执行的命令赋予普通用户执行
  • sudo的操作对象是系统命令


sudo命令,普通用户执行时,会根据配置文件授权给普通用户执行指定的命令。 可以指定所有命令(普通用户相当于管理员),也可以指定部分命令(建议)。

一、设置普通用户使用sudo

在/etc/sudoers文件中可以配置哪些用户可以使用sudo。

管理可以通过下面命令修改配置文件,添加或删除可以使用sudo命令的用户

  1. visudo
Copy the Code

当然管理员也可以用其它编辑器修改/etc/sudoers。我们可以在两个位置添加或删除使用sudo命令的用户:

  1. root        ALL=(ALL)         ALL
  2. %wheel        ALL=(ALL)        ALL
Copy the Code

格式说明:

  1. root        ALL=(ALL) ALL
Copy the Code

用户,被管理主机的地址,(可使用的身份),授权命令(绝对路径)
被管理主机的地址,这个位置不是表示哪些IP段的用户可以管理这台主机,而是表示自己(被管理主机的地址)。可以写本机IP,也可以写ALL,也可以写网段。为啥要写网段? 这和linux搭建一些服务有关。当然作为普通用户,针对自己的计算机,用ALL来表示就OK了。

可使用身份,一般指root,可以用ALL表示任何身份。

授权命令表示可以执行哪些命令,如果是ALL表示可以执行所有命令,和root用户没有区别。

  1. %wheel        ALL=(ALL)        ALL
Copy the Code

%组名, 被管理主机的地址,(可使用的身份),授权命令(绝对路径)
可以把用户添加到wheel组中,此时用户就可以使用sudo命令了。当然也可以自己定义一个组写到配置中,之后把需要使用sudo命令的用户添加到这个组中。

二、实例操作


1. 配置alice用户允许使用sudo命令,但只赋予重启计算机命令的权限
  1. alice   ALL=/sbin/shutdown -r now,/bin/ls
  2. alice   172.16.18.10=/usr/bin/vim
Copy the Code

这里给出ls命令和shutdown命令。shutdown命令还指定了参数,表示只能执行重启,无法关机。 这样可以防止alice用户把服务器关了(注意服务器不允许关机的)

  1. [alice@centos ~]$ sudo shutdown -h now
  2. [sudo] password for alice:
  3. Sorry, user alice is not allowed to execute '/sbin/shutdown -h now' as root on centos.
Copy the Code

我们发现alice不能执行关机命令,但是执行重启可以。

可以用sudo -l查看一下当前授权了哪些命令。

  1. alice@centos ~]$ sudo -l
  2. User alice may run the following commands on this host:
  3. (root) /sbin/shutdown -r now, (root) /bin/ls
  4. (root) /usr/bin/vim
Copy the Code

注意:IP是服务器本机IP,不是远程用户自己电脑的IP。

同时我们要小心,现在对alice用户添加了/usr/bin/vim命令,表示alice可以用sudo 提升到管理员身份,并使用vim修改任何文件,造成了安全隐患。

2. 通过组的方式配置kevin用户允许使用sudo命令
  1. %wheel  ALL=(ALL)       ALL     
Copy the Code

默认这句是注释的,现在把注释去掉,之后把kevin加入wheel组中。

  1. gpasswd -a kevin wheel
Copy the Code
  1. [kevin@centos ~]$ sudo cat /etc/shadow
  2. [sudo] password for kevin:
  3. bin:*:15980:0:99999:7:::
  4. daemon:*:15980:0:99999:7:::
  5. adm:*:15980:0:99999:7:::
Copy the Code

此时kevin用户和root用户没有什么区别,因为wheel组被授权所有命令了。但要注意这样就很危险了,kevin用户可能误操作使服务器瘫痪。

当然你也可以自己创建一个组,设置一些命令。

  1. #添加一个组
  2. groupadd greboot

  3. #修改/etc/sudoers,添加
  4. %greboot ALL=/sbin/shutdown -r now

  5. #添加abc用户
  6. useradd abc
  7. passwd abc

  8. #添加abc用户到greboot组中
  9. gpasswd -a abc greboot

  10. #abc用户登录,执行重启
  11. sudo shutdown -r  now
Copy the Code

对这个组设置了只能使用shutdown -r now命令,而其它系统命令,abc用户是没有权限执行的。

三、注意

对于本机电脑,自己家用的可以设置普通用户具有所有权限,可以执行所有命令,如:alice用户

  1. alice        ALL=(ALL) ALL
  2. %wheel  ALL=(ALL)       ALL     
Copy the Code

第一种:alice用sudo命令,可以执行所有系统命令。
第二种:开启wheel组,把alice加入组中,此时alice用户可以执行所有系统命令。

对于服务器来说,只允许配置用户执行部分命令。

Reply Favorite View the author
All Replies

No replies yet