`
kumcun
  • 浏览: 88100 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

UNIX(Shell)

阅读更多

管理系统的帐号,是系统管理者最基本的工作之一。通常在帐号建立好之后,一般的使用者,可使用任何位于 /usr/bin 目录底下的指令。若系统管理者,想建立一个只允许使用特定“指令”的帐号,要如何建立一个这样的帐号呢?例如:当这个使用者登入系统后,只允许他使用ftp、cp、mv、ls,但不允许他执行rlogin,rm 等指令。换句话说,也就是限定他只能执行被允许的指令。本文将详细介绍使用 Restricted shell (/usr/bin/rsh)来建立一个这样的帐号。

一、 Login Shell:

大家都知道 shell 就是使用者命令的解译处理器,在HP UNIX系统里,提供的shell 有下列几种:

Bourne Shell (/usr/old/bin/sh) 
Korn Shell (/usr/bin/ksh)
POSIX Shell (/usr/bin/sh)
Restricted shell (/usr/bin/rsh )
C Shell (/usr/bin/csh) 
Key Shell (/usr/bin/keysh)

其中大家最常用的是 POSIX Shell (/usr/bin/sh) 和 Korn Shell (/usr/bin/ksh)。

二、 Restricted Shell:

Restricted shell(/usr/bin/rsh ) 是比较特殊的一个shell,它是POSIX Shell的 Restricted Version。Restricted shell 的所有功能都跟 POSIX Shell 一样,除了下列几点外:

l 不能使用 change directory 指令 cd
l 不能设定 SHELL、ENV、PATH等环境变量
l 不能指定含有 / ( root directory) 的指令
l 不能使用转向输出符号(>;、>;|、 >;>;)

三、 使用 Restricted Shell

回到本文的主旨,如何使用 restricted shell建立一个只能执行特定指令的帐号。首先,请先用sam 或指令 useradd 建立一个新帐号,并且指定其login shell为 /usr/bin/rsh。例如:建立一个名为 gibert 的新帐号,其家目录(home directory)位于 /home/gibert,并且指定其login shell 为 /usr/bin/rsh。(当然,若您想更改一个已存在的帐号, 请直接编辑 /etc/passwd档,将其login shell 改成 /usr/bin/rsh)。Gibert 帐号建立好之后,在/etc/passwd 档案内应该可看到如下的信息:

# more /etc/passwd | grep gibert

gibert:O.gX20Ge2fxuY:101:20:,,,:/home/gibert:/usr/bin/rsh

再下来,请依下列的步骤,来限定gibert 这个帐号只能执行,ls、cp、date、banner、pwd等指令,其它指令一慨不允许执行(视您管理上的需要,决定这个帐号可允许执行的指令):

(1) 在 /usr 目录底下建立一个新的 rbin 目录 (/usr/rbin)记得把
/usr/rbin 目录的写入权限(write)拿掉。然后把被允许使用的指令复制到 /usr/rbin 目录底下,也就是: ls、cp、date、banner、pwd。

# mkdir /usr/rbin
# chmod 555 /usr/rbin
# chown bin:bin /usr/rbin
# cp /usr/bin/ls /usr/rbin
# cp /usr/bin/cp /usr/rbin
# cp /usr/bin/date /usr/rbin
# cp /usr/bin/banner /usr/rbin

(2) 在gibert的home目录底下 /home/gibert,建一个 .profile 檔 (若没有这个档的话),并且加入一行设定,指定环境变量PATH 到 /usr/rbin:

# cd /home/gibert
# vi .profile

export PATH=/usr/rbin

(3) 确定profile 档的拥有者(owner) 是属于gibert的,若不是请用指令 chown 将其更正。

# chown gibert:usres .profile

(4) 验证设定结果。

Login: gibert
Passwd: ********
$ …….

四、 结论

使用 restricted shell 可以让系统管理者,建立一个只允许执行少数指令的帐号,不论就系统的安全性而言,或者在系统的管理上,建立这样的帐号供特殊使用者使用,应该有其实际应用上的价值。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics