管理系统的帐号,是系统管理者最基本的工作之一。通常在帐号建立好之后,一般的使用者,可使用任何位于 /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 可以让系统管理者,建立一个只允许执行少数指令的帐号,不论就系统的安全性而言,或者在系统的管理上,建立这样的帐号供特殊使用者使用,应该有其实际应用上的价值。
分享到:
相关推荐
LINUX与UNIX SHELL编程指南
Unix Shell by Example.zip Unix Shell by Example.zip
Linux与Unix shell编程指南(完整高清版)Linux与Unix shell编程指南(完整高清版)Linux与Unix shell编程指南(完整高清版)Linux与Unix shell编程指南(完整高清版)Linux与Unix shell编程指南(完整高清版)Linux...
Linux与UNIX Shell编程指南.pdf
This comprehensive book is a practical, easy-to-use guide to programming and using the Bourne shell for beginners and experienced users - the Bourne shell is the standard shell for UNIX, and is also ...
LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 ...
UNIX programmers and system administrators can tailor these to build tools that monitor for specific system events and situations, building solid UNIX shell scripting skills to solve real-world ...
精通 LINUX & UNIX Shell 程序设计.pdf
精通UNIX Shell脚本编程 作者:(美)Randal K.Michael著;詹文军,邓波等译 页数:502 【作 者】(美)Randal K.Michael著;詹文军,邓波等译 【形态项】 502 ; 26cm 【出版项】 北京市:电子工业出版社 , 2005....
用Linux/UNIX Shell编程语言设计系统监控程序.pdf
Bash, Bourne, and Korn Shell Scripting for Programmers, System Administrators, and UNIX GurusUNIX expert Randal K. Michael guides you through every detail of writing shell scripts to automate specific...
UNIX shell 程序编写 参考文档。
shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)
UNIX shell范例精解(第4版),清华大学出版社,详细介绍了UNIX系统中各种shell的编程方法
《UNIX shell范例精解(第4版)》配套光盘。 环境要求: Linux或Unix操作系统。 光盘内容: 书中每个章节的代码范例和数据文件可在相应的目录中找到。目录如下: chap02 chap03 chap04 chap05 chap06 chap07 chap...
Sams Unix Shell Programming
在Quigley的指导下,即使是shell初学者也可以学会UNIX/Linux上所有主流shell的编程知识,包括5种shell的交互式命令及脚本编程,从而领会作者的编程思路。本书可作为shell编程的入门教程,也是系统管理员、程序设计...
在Quigley的指导下,即使是shell初学者也可以学会UNIX/Linux上所有主流shell的编程知识,包括5种shell的交互式命令及脚本编程,从而领会作者的编程思路。本书可作为shell编程的入门教程,也是系统管理员、程序设计...