yz454170989 2015-08-20 03:11 采纳率: 52.6%
浏览 3016
已采纳

关于Linux sudo配置

beinan ALL=(root) /bin/chown, /bin/chmod (root)这个是干什么的,下面的解释没看懂
实例一:

  beinan ALL=/bin/chown,/bin/chmod

  如果我们在/etc/sudoers 中添加这一行,表示beinan 可以在任何可能出现的主机名的系统中,可以切换到root用户下执行 /bin/chown 和/bin/chmod 命令,通过sudo -l 来查看beinan 在这台主机上允许和禁止运行的命令;

  值得注意的是,在这里省略了指定切换到哪个用户下执行/bin/shown 和/bin/chmod命令;在省略的情况下默认为是切换到root用户下执行;同时也省略了是不是需要beinan用户输入验证密码,如果省略了,默认为是需要验证密码。

  为了更详细的说明这些,我们可以构造一个更复杂一点的公式;

  授权用户 主机=[(切换到哪些用户或用户组)] [是否需要密码验证] 命令1,[(切换到哪些用户或用户组)] [是否需要密码验证] [命令2],[(切换到哪些用户或用户组)] [是否需要密码验证] [命令3]....

  注解:

  凡是[ ]中的内容,是可以省略;命令与命令之间用,号分隔;通过本文的例子,可以对照着看哪些是省略了,哪些地方需要有空格;

  在[(切换到哪些用户或用户组)] ,如果省略,则默认为root用户;如果是ALL ,则代表能切换到所有用户;注意要切换到的目的用户必须用()号括起来,比如(ALL)、(beinan)

  实例二:

  beinan ALL=(root) /bin/chown, /bin/chmod

  如果我们把第一个实例中的那行去掉,换成这行;表示的是beinan 可以在任何可能出现的主机名的主机中,可以切换到root下执行 /bin/chown ,可以切换到任何用户招执行/bin/chmod 命令,通过sudo -l 来查看beinan 在这台主机上允许和禁止运行的命令;
。。。。。(root)上面什么意思,看不懂,自己测试也没试出来,切换到任何用户致命该命令,怎么切换??还是说运行这个语句的时候,是以括号里的身份运行的,-.-

  • 写回答

2条回答 默认 最新

  • yz454170989 2015-08-24 02:22
    关注

    这个问题很难吗。自己都弄懂了。。。。。
    (root)表示可以暂时切换到该用户,以该用户的身份运行相关语句,但即使可以暂时切换到root身份,依然不能使用除sudo配置文件已写入的相关权限以外的命令。
    而如果是sudo为某一用户分配了只能root身份运行的命令, 但设置的可切换用户中
    没有root,则该命令不能运行。(自己测试所得,不一定准确)
    Eg:
    /**************************************************************************/

    用户 student 可以在该主机上运行以下命令:
    (root) /bin/chmod, (root) /bin/chown
    [student@localhost home]$ sudo -root chmod 777 2
    sudo:/etc/sudo.conf 可被任何人写
    sudo:/etc/sudoers.d 可被任何人写
    sudo:无法获取 oot 角色的默认类型
    [student@localhost home]$ sudo -u root chmod 777 2
    sudo:/etc/sudo.conf 可被任何人写
    sudo:/etc/sudoers.d 可被任何人写
    [student@localhost home]$ sudo -u root useradd2
    sudo:/etc/sudo.conf 可被任何人写
    sudo:/etc/sudoers.d 可被任何人写
    sudo:useradd2:找不到命令
    [student@localhost home]$ sudo -u root useradd 2
    sudo:/etc/sudo.conf 可被任何人写
    sudo:/etc/sudoers.d 可被任何人写
    对不起,用户 student 无权以 root 的身份在 localhost.localdomain 上执行 /sbin/useradd 2。
    [student@localhost home]$ sudo -u yz chmod 2
    sudo:/etc/sudo.conf 可被任何人写
    sudo:/etc/sudoers.d 可被任何人写
    对不起,用户 student 无权以 yz 的身份在 localhost.localdomain 上执行 /bin/chmod 2。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配