免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8753 | 回复: 11
打印 上一主题 下一主题

怎么让普通用户可以执行超级用户的命令而不需要输入密码? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-05 12:34 |只看该作者 |倒序浏览
昨天晚上,下东西,想下载完后关机,就输入这条命令,就去睡觉去了:

$ wget ... ... ... && sudo halt

下载什么略了,主要是后面的  && sudo halt 这句!

今天早起床,去看电脑,电脑居然还没有关机,停留在输入密码的地方:

[sudo] password for cp:

我输入普通用户的密码,然后就关机了,晕~~倒~~ {:3_185:}

论坛徽章:
0
2 [报告]
发表于 2011-03-05 15:12 |只看该作者
回复 1# 383228273


    用户tatata使用sudo时不用输入密码

    Defaults:tatata !authenticate

    sudo配置文件里

    debian不清楚

论坛徽章:
9
2015亚冠之阿尔纳斯尔
日期:2015-09-10 16:21:162015亚冠之塔什干火车头
日期:2015-07-01 16:23:022015年亚洲杯之巴勒斯坦
日期:2015-04-20 17:19:46子鼠
日期:2014-11-13 09:51:26未羊
日期:2014-08-28 18:13:36技术图书徽章
日期:2014-02-21 09:30:15酉鸡
日期:2014-01-14 11:12:49天蝎座
日期:2013-12-09 17:56:53平安夜徽章
日期:2015-12-26 00:06:30
3 [报告]
发表于 2011-03-05 15:28 |只看该作者
学习二楼

论坛徽章:
0
4 [报告]
发表于 2011-03-05 15:52 |只看该作者
回复 3# HH106


    这只是一个方法

    还有用 NOPASSWD 的

论坛徽章:
0
5 [报告]
发表于 2011-03-07 08:47 |只看该作者
nopasswd也可以的

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2011-03-07 12:57 |只看该作者
昨天晚上,下东西,想下载完后关机,就输入这条命令,就去睡觉去了:

$ wget ... ... ... && sudo halt
...
383228273 发表于 2011-03-05 12:34
你调换一个顺序不就行了吗?
$ sudo {wget ... ... ... && halt}

论坛徽章:
0
7 [报告]
发表于 2011-03-07 14:50 |只看该作者
本帖最后由 383228273 于 2011-03-07 14:57 编辑

回复 6# L_kernel

如果把 sudo 写在 wget 前面,就是以 root 身份来做这件事了!

关于 4楼 和 5楼 的同志说的 NOPASSWD 属性,是 /etc/sudoers 里配置的,用 NOPASSWD 可以用 root 命令而不用输入密码!

具体应该怎么设置 /etc/sudoers 里的 cp 用户,实现功能就是:排除 reboot \ halt \ shutdown 这 3 个关机命令执行时不用密码(例:sudo halt 直接执行不用密码),其它所有 root 的命令保持原样(即:sudo command 时依照要输入密码)。

{:3_198:}

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
8 [报告]
发表于 2011-03-07 23:16 |只看该作者
回复  L_kernel

如果把 sudo 写在 wget 前面,就是以 root 身份来做这件事了!

关于 4楼 和 5楼 的同 ...
383228273 发表于 2011-03-07 14:50
  1. cp  ALL=NOPASSWD: /sbin/reboot,/sbin/halt,/sbin/shutdown
复制代码
我的测试环境是Linux debian 2.6.26-2-686 #1 SMP Thu Nov 25 01:53:57 UTC 2010 i686 GNU/Linux

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2011-03-07 23:23 |只看该作者
回复  L_kernel

如果把 sudo 写在 wget 前面,就是以 root 身份来做这件事了!

关于 4楼 和 5楼 的同 ...
383228273 发表于 2011-03-07 14:50
忘记说了,修改那个文件应该用
$ sudo visudo来修改。

论坛徽章:
0
10 [报告]
发表于 2011-03-08 11:29 |只看该作者
回复 9# L_kernel

先谢谢了,不过还有点问题哟!

其它 root 命令运行不了,输入密码都不行了:
  1. cp@debian:~$ sudo cat /etc/sudoers
  2. Sorry, user cp is not allowed to execute '/bin/cat /etc/sudoers' as root on debian.
  3. cp@debian:~$ sudo visudo
  4. Sorry, user cp is not allowed to execute '/usr/sbin/visudo' as root on debian.
  5. cp@debian:~$ sudo visudo
  6. Sorry, user cp is not allowed to execute '/usr/sbin/visudo' as root on debian.
  7. cp@debian:~$ sudo fdisk -l
  8. Sorry, user cp is not allowed to execute '/sbin/fdisk -l' as root on debian.
  9. cp@debian:~$ sudo ifconfig
  10. eth0      Link encap:Ethernet  HWaddr 00:1f:16:12:ec:02  
  11.           inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0
  12.           inet6 addr: fe80::21f:16ff:fe12:ec02/64 Scope:Link
  13.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  14.           RX packets:1533 errors:0 dropped:0 overruns:0 frame:0
  15.           TX packets:1821 errors:0 dropped:0 overruns:0 carrier:0
  16.           collisions:0 txqueuelen:100
  17.           RX bytes:674051 (658.2 KiB)  TX bytes:396901 (387.5 KiB)
  18.           Memory:f2600000-f2620000

  19. lo        Link encap:Local Loopback  
  20.           inet addr:127.0.0.1  Mask:255.0.0.0
  21.           inet6 addr: ::1/128 Scope:Host
  22.           UP LOOPBACK RUNNING  MTU:16436  Metric:1
  23.           RX packets:10 errors:0 dropped:0 overruns:0 frame:0
  24.           TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
  25.           collisions:0 txqueuelen:0
  26.           RX bytes:660 (660.0 B)  TX bytes:660 (660.0 B)

  27. cp@debian:~$
复制代码
  1. cp@debian:~$ su - root
  2. 密码:
  3. root@debian:~# egrep -v '^#|^$^' /etc/sudoers
  4. Defaults        env_reset
  5. root        ALL=(ALL)        ALL
  6. cp        ALL=NOPASSWD: /sbin/ifconfig,/sbin/reboot,/sbin/halt,/sbin/shutdown
  7. %sudo ALL=(ALL) ALL
  8. root@debian:~#
复制代码
我加了个 root 命令中的 ifconfig 命令在里面(用来测试吧),这样确实可以不用密码就能执行 ifconfig 这类 root 的命令;但是其它的 root 命令用不了了(例: sudo visudo 和 sudo fdisk -l 这类也是 root 的命令,就执行不行了)

在你那里可以不,在我这里不行了 {:3_199:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP