首页 > 操作系统 >UNIX让普通用户具备关机权限的操作方法

UNIX让普通用户具备关机权限的操作方法

来源:互联网 2026-04-19 13:09:06

在UNIX系统中赋予普通用户安全的关机权限 在UNIX系统里,关机操作通常被划归为超级用户的核心权限之一,这很好理解,毕竟这关系到整个系统的生死。不过,在实际的运维场景中,我们常常会遇到一个矛盾的需求:既希望普通用户能执行关机操作(比如在公共机房的终端机旁),又必须严格限制他们获得任何其他超级权限。

在UNIX系统中赋予普通用户安全的关机权限

在UNIX系统里,关机操作通常被划归为超级用户的核心权限之一,这很好理解,毕竟这关系到整个系统的生死。不过,在实际的运维场景中,我们常常会遇到一个矛盾的需求:既希望普通用户能执行关机操作(比如在公共机房的终端机旁),又必须严格限制他们获得任何其他超级权限。这该怎么实现呢?

一个巧妙且经典的思路是,创建一个“专用”的关机用户。这个用户的终极使命就是执行关机,除此之外啥也干不了。实现方法的核心,在于修改该用户的登录Shell(sh),将其指向一个我们自定义、有严格逻辑控制的关机程序。下面,我们就来看看具体的操作步骤。

长期稳定更新的攒劲资源: >>>点此立即查看<<<

步骤一:创建专用用户并修改配置

首先,像创建普通用户一样,在系统中新建一个名为 halt 的用户。为了简化登录过程,可以将其设置为无需密码。接下来,才是关键操作:用vi编辑器打开 /etc/passwd 文件,找到halt用户对应的那一行,将其修改为如下内容:

halt:x:0:1:/etc:/etc/halt

这行配置信息大有玄机:它让halt用户拥有了超级用户身份(UID为0),但其主目录被设定为/etc,更关键的是,其登录Shell被指定为/etc/halt——这正是我们要编写的自定义关机程序。

步骤二:编写智能关机脚本

现在,我们需要创建这个核心的 /etc/halt 可执行文件。它的任务不仅仅是执行关机,还要具备安全检查能力,防止在仍有其他用户在线时误操作。脚本内容如下:

HALT_TERMINAL=`tty`
case "$HALT_TERMINAL"
in
/dev/tty0[1-9]|/dev/tty1[012])
w -h | fgrep -v halt > /dev/null
if [ $ = 0 ]
then
clear
echo "\n\n\n\n\n\n"
setcolor red black
echo " [ 普通用户关机程序 ] ** 警告** "
setcolor yellow black
echo "以下用户未退出系统无法自动关机。请选择关机方式:\n"
echo " 注册用户注册终端号"
w -h | fgrep -v halt | awk '{print " " $1 " " $2}'
echo " \n\n "
echo " 1: 中断关机程序。"
echo " 2: 系统强行关闭计算机。(可能会造成数据丢失)\n\n"
while true
do
echo -n " 请选择:"
read select
if test "$select"= 1
then
setcolor white black
clear
exit 1
else
if test "$select"=2
then
setcolor white black
/etc/haltsys
fi
fi
done
else
cd /usr/tmp
rm -f *
cd
/etc/haltsys
fi
echo "\n\n 普通用户关机程序不能在终端上运行!!"
esac
exit

这个脚本做了几件重要的事:首先,它通过tty命令判断调用来源,限制了该程序只能在特定的虚拟终端上运行(如tty01到tty12),这本身就是一道安全护栏。其次,在执行关机前,它会用w -h命令检查系统内是否还有其他登录用户(排除自己)。

如果发现有其他用户在线,脚本不会蛮干,而是会清晰列出在线用户信息,并给出两个选择:要么放弃关机,要么坚持强行关机(并给出数据丢失的风险提示)。只有当确认没有其他用户时,它才会先清理/usr/tmp目录,然后调用真正的关机命令/etc/haltsys

步骤三:设置权限并投入使用

vi编辑器将上述脚本保存为/etc/halt文件后,别忘了通过chmod命令,将其权限设置为普通用户可读和可执行。至此,所有配置就完成了。

现在,普通用户只需要在登录提示符“Login:”后输入用户名halt,就能启动这个安全的关机流程。整个过程既满足了便利性需求,又通过多层检查(终端限制、用户在线检查、二次确认)极大保障了系统安全,防止了误关机导致的数据丢失或工作中断。

这套方案思路清晰,兼顾了灵活与安全,在SCO Open UNIX 5.0等操作系统环境中被验证为可靠有效。它生动地展示了UNIX系统如何通过权限和资源的精巧配置,来实现既严格又实用的访问控制。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。