wuming122 发表于 2004-10-06 18:49

怎样建一个只能重启和关机的帐户?

给偶抄个吧,多谢!

肥虾 发表于 2004-10-06 18:51

怎样建一个只能重启和关机的帐户?

.....
等后天的吧

wuming122 发表于 2004-10-06 19:05

怎样建一个只能重启和关机的帐户?

好的,这个我还不是太急,我先搜一下试试去,也许能找到:)

wallace888 发表于 2004-10-07 09:45

怎样建一个只能重启和关机的帐户?

关注一下这个~~偶也想知道的

HonestQiao 发表于 2004-10-07 09:52

怎样建一个只能重启和关机的帐户?

那你可以这样子啊,给一个用户,登陆之后设置它的自动启动一个处理进程,只有关机和充气的选项阿

肥虾 发表于 2004-10-07 15:38

怎样建一个只能重启和关机的帐户?

摘自《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^

wuming122 发表于 2004-10-08 10:38

怎样建一个只能重启和关机的帐户?

谢谢!我过两天试吧,今天忙着整squid,现在出问题了:http://bbs.chinaunix.net/forum/viewtopic.php?p=2803980#2803980

emylekao 发表于 2004-10-08 17:09

怎样建一个只能重启和关机的帐户?

谢谢~

ulovko 发表于 2012-07-19 20:11

@肥虾 怎样建一个只能重启和关机的帐户?

摘自《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^

感谢分享 很赞! ^_^
页: 1 [2]
查看完整版本: 怎样建一个只能重启和关机的帐户?