电脑技术学习

FreeBSD的基本系统下Shell设置

dn001

  PS1sh风格的shell使用这个变量的值作为提示符,缺省值为“$(root为“#)。更现代的sh就增强了提示符的灵活性,可以在提示符中加入当前目录、用户名、机器名,命令的序号等。

  PS2sh风格的shell使用这个变量的值作为后续提示符,提示命令还没有完全输入,缺省为“>“TERM终端的类型,对于需要全屏操作的程序,非常重要。有时要根据情况对设置进行调整。

  TZ时区设置,具体的时区信息位于/usr/share/zoneinfo目录下,需要设置为适合本地时区的标准值

  可以将用户的shell设置为特殊的应用程序,来达到对特殊用户进行限制的目的。例如,仅仅给予用户一个电子邮件信箱,但不想给他终端使用权,可以将用户的shell更改为/bin/true或者其他立即退出的程序。为了安全起见,用户shell应该是一个不存在漏洞的二进制程序,最好不要使用解释性语言脚本作为登录shell。由于系统认可的shell程序是在/etc/shells文件中列出的程序,将特殊用户的shell设置为特殊的应用程序,但这些应用程序没有列入shells文件,那么这个用户就会被一些应用程序区分出与普通用户的差异,从而拒绝提供服务。例如ftp服务器程序ftpd,通过检查用户的shell是不是标准shell,来区分这个用户是普通用户还是用于特定目的的用户。

  注意,不能轻易更改root用户的shell,因为这可能会造成root无法正常登录,而使得无法正常执行系统维护。即使是将root的shell更改为其他更新、更强功能的标准shell,例如bash或tcsh,也是不应该。虽然这些shell也是非常成熟的shell程序,仍然不应该使用它们作为root的shell。主要原因是这些shell一般没有被安装到根分区中,那么当系统进入单用户状态时就会发生问题。另外这些shell可能会由于进行版本升级等原因,而偶然形成故障,造成root无法正确登录。此外,由于这些非标准shell不一定来自于系统的安装盘,因此也存在对shell来源的安全信任问题,必须保证这些shell不是经攻击者更改过的版本。如果要使用它们shell提供的方便特性,可以在系统登录之后再使用全路径执行它们。

标签: