免费注册 查看新帖 |

Chinaunix

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

[系统管理] 如何让用户只有重启系统的权限(执行reboot命令) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-18 23:40 |只看该作者 |倒序浏览

RT,项目上一些系统希望对乙方保密,但是系统必须交给乙方来维护。
说还是维护,其实很简单,就是如果发现业务上出现了故障,直接重启服务器就行了。

所以问题就来了:

1、如何让用户只有重启系统的权限(执行reboot命令)!
2、其他的如查看文件内容、其他的命令都等都不可以。

论坛徽章:
0
2 [报告]
发表于 2012-07-18 23:46 |只看该作者
装个apache,只提供https连接,并且要求验证客户证书., apache里只放个cgi脚本,功能是重启服务器,然后给客户发个证书让他凭证书登录web页面点按钮重启服务器

论坛徽章:
0
3 [报告]
发表于 2012-07-19 06:58 |只看该作者
1、本地登录,给他新建一个用户,非root设置其权限,把reboot权限给它即可。
2、做一个小web界面,服务器用boa即可,省资源啊。添加一个按钮“reboot"调用后台CGI,在CGI中调用/sbin/reboot即可。

论坛徽章:
0
4 [报告]
发表于 2012-07-19 07:02 |只看该作者
1、本地登录,给他新建一个用户,非root设置其权限,把reboot权限给它即可。
2、做一个小web界面,服务器用boa即可,省资源啊。添加一个按钮“reboot"调用后台CGI,在CGI中调用/sbin/reboot即可。

论坛徽章:
34
亥猪
日期:2015-03-20 13:55:11戌狗
日期:2015-03-20 13:57:01酉鸡
日期:2015-03-20 14:03:56未羊
日期:2015-03-20 14:18:30子鼠
日期:2015-03-20 14:20:14丑牛
日期:2015-03-20 14:20:31辰龙
日期:2015-03-20 14:35:34巳蛇
日期:2015-03-20 14:35:56操作系统版块每日发帖之星
日期:2015-11-06 06:20:00操作系统版块每日发帖之星
日期:2015-11-08 06:20:00操作系统版块每日发帖之星
日期:2015-11-19 06:20:00黄金圣斗士
日期:2015-11-24 10:43:13
5 [报告]
发表于 2012-07-19 17:34 |只看该作者
建个shell是reboot的用户,登陆即重启?

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
6 [报告]
发表于 2012-07-19 17:37 |只看该作者
vermouth 发表于 2012-07-19 17:34
建个shell是reboot的用户,登陆即重启?

请问是如何实现的 O_o

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
7 [报告]
发表于 2012-07-19 17:48 |只看该作者
本帖最后由 lolizeppelin 于 2012-07-19 17:53 编辑

写一个reboot的脚本,赋予这个脚本强制位即可.....

或者直接赋予reboot文件强制位也行......

和passwd程序一个逻辑

论坛徽章:
34
亥猪
日期:2015-03-20 13:55:11戌狗
日期:2015-03-20 13:57:01酉鸡
日期:2015-03-20 14:03:56未羊
日期:2015-03-20 14:18:30子鼠
日期:2015-03-20 14:20:14丑牛
日期:2015-03-20 14:20:31辰龙
日期:2015-03-20 14:35:34巳蛇
日期:2015-03-20 14:35:56操作系统版块每日发帖之星
日期:2015-11-06 06:20:00操作系统版块每日发帖之星
日期:2015-11-08 06:20:00操作系统版块每日发帖之星
日期:2015-11-19 06:20:00黄金圣斗士
日期:2015-11-24 10:43:13
8 [报告]
发表于 2012-07-19 17:52 |只看该作者
回复 6# ulovko

修改默认shell啊, /etc/passwd 或者命令都行么,需要考虑的就是该用户能否执行这个错作了。

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
9 [报告]
发表于 2012-07-19 20:13 |只看该作者
本帖最后由 ulovko 于 2012-08-31 11:06 编辑
怎样建一个只能重启和关机的帐户?

摘自《UNIX系统基础》 陈慧蓉 编著
1998年2月第一版 1998年10月第三次印刷
第219页 选段

通常只有超级用户有权执行关机操作。为了避免别人知道超级用户的口令以至滥

用超级用户的巨大权力,可以建立一个专门关机“超级用户”,例如。建一个名

为halt的用户,使其在 /etc/passwd 中的登记项为

halt::0:1 : account for halt : / : /etc/halt
在此,我们让halt用户注册后,不输入口令,系统遍直接执行/etc/halt关机命令

,而不是去执行某一种shell。如果考虑到不破坏正在上机的用户进行中的工作,

以及避免网络上的远程用户执行关机操作,我们可以让halt用户注册后执行某个

shell程序或某个自行编写的二进制程序。例如,使/etc/passwd中的登记项为:
halt::0:1 account for halt :/:/home/adm/halt
下面给出我们用与SunOS 4.1.x(BSD UNIX)上的/home/adm/halt程序的一个参考

版本
  #! /bin/csh
  #例6.1 --halt
  #专门关机的超级用户执行的shell程序
#
                        #如遇在执行中被打断, goto Intonintr Int
                        #是否还有其他用户在上机
if ('who |wc -l' = = 1) then
                        #只有主控制台或接在串口a口的终端可以关机
if ('tty'= = /dev/console | | 'tty'= = /dev/ttya ) then
                 /etc/umount -t nfs
                 /etc/halt
else echo Terminal is not previleged !!
endif
else
echo ''
echo '--Login users are------'
who
wall -a << endoffile
The system is coming down. Please logout.
endoffile
endif
exit
Int:
echo "Interruptted"
exit

这是一个专门关机的超级用户。在所有的系统中,只允许建立普通用户帐号,这

就需要利用setuid,使建立关机的用户的进程在关机时暂时变成超级用户来执行关

机操作。但是,setuid的使用一定要非常慎重.




#抄写书上的校验过2次,如有错误请大家原谅
由于是抄写书上的,本人的只是初学者,这些都看不明白,所以
有关问题请不要问我 ^o^



FROM: http://bbs.chinaunix.net/forum.p ... mp;fromuid=25256412
  1. # cd /usr/ports/security/sudo && make install clean;

  2. #visudo
  3. ko ALL=(ALL) NOPASSWD:/sbin/halt -p   ---> 不需要密码执行关机命令
  4. :wq

  5. (csh/tcsh)
  6. > echo 'sudo /sbin/halt -p' >> ~/.cshrc  ---> ko 用户登录后即刻关机
  7. (sh/bash)
  8. > echo 'sudo /sbin/halt -p' >> ~/.shrc  ---> ko 用户登录后即刻关机
复制代码

评分

参与人数 1可用积分 +2 收起 理由
vermouth + 2 好资料,很详细

查看全部评分

论坛徽章:
15
CU大牛徽章
日期:2013-03-13 15:32:35白羊座
日期:2013-10-30 13:11:16未羊
日期:2013-11-29 10:47:02白羊座
日期:2014-01-22 11:34:25白羊座
日期:2014-03-04 11:05:50申猴
日期:2014-07-29 16:31:36天秤座
日期:2013-10-23 15:33:47未羊
日期:2013-10-09 09:18:53CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55未羊
日期:2013-09-23 09:29:22
10 [报告]
发表于 2012-07-20 10:16 |只看该作者
最好还是限制下访问的ip,不能随便重启服务器
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP