FreeBSD Shell的操作和使用

FreeBSD Shell的操作和使用

一、常见sh介绍

sh

sh是系统标准的shell.系统里面的许多脚本(例如/etc/rc.subr,./configure)都是sh脚本。能看懂sh脚本,才能自己独立解决问题。

tcsh

tcsh随发行版一起提供给用户,属于系统默认的root用户使用的shell。

tcsh是一个非常好用的 shell,合理地配置能够极大地提高工作效率,并减少出错的机会。但是需要注意的是,tcsh在很多方面与 sh 并不兼容。

bash

FreeBSD上面的bash和linux上面的是一样的。如果你没入门的话,linux论坛里面能能找到中文资料。bash和sh是兼容的。

bash不作为FreeBSD的一部分提供给用户。如果需要使用bash,需要到ports下进行安装。

二、如何查看当前用户的默认shell

用这个命令

echo $SHELL

三、如何更改用户的默认shell

1,作为root改变别人的默认shell

vipw

或者

chsh 用户名

2,改变自己的shell

chsh

四、如何设置环境变量

1,Csh

临时使用:

bsdx64# setenv CVSROOT /opt/cvsroot
bsdx64# env|grep CVSROOT
CVSROOT=/opt/cvsroot

写到.cshrc,永久生效

setenv CVSROOT  /data/cvsroot

2,Sh/Bash

临时使用:

bsdx64$ export CVSROOT=/opt/cvsroot
bsdx64$ env|grep CVSROOT
CVSROOT=/opt/cvsroot

写入 .profile 可以永久生效

CVSROOT=/data/cvsroot
export CVSROOT

或者

export CVSROOT=/data/cvsroot

原文链接:http://wiki.freebsdchina.org/faq/shell/about
http://wiki.freebsdchina.org/faq/shell/query_login_shell
http://wiki.freebsdchina.org/faq/shell/change_login_shell
http://wiki.freebsdchina.org/faq/shell/setenv

FreeBSD下sudo的使用

FreeBSD下sudo的使用

sudo是OpenBSD的一部分,其作者是 Todd C. Miller。在 FreeBSD 中可以使用 ports 或 package 来安装。

下面来安装并使用sudo吧!!

  1)安装sudo(两种安装方法):
      a: 从 ports 安装(推荐)
         #cd /usr/ports/security/sudo
         #make install clean
      b: 通过 package 安装
         #pkg_add -r sudo

  2)配置sudo
     sudo的配置文件在/usr/local/etc/sudoers里面。sudo的配置文件不应直接编辑,而应使用 visudo 来进行修改。
     配置权限的格式如下:
        USER MACHINE=(EFFECTIVE USER)  [NOPASSWD:] COMMAND
      第一列(USER)指定要授权的帐号。第二列(MACHINE)定义在那些机器上,这条执行生效,其好处是在多台机器上使用同一份配置文件。括号里的(EFFECTIVE USER)是使用指定实际执行该命令的帐号,
      这就方便一个帐号允许用另外一个帐号来执行特定的命令,而不非得是root帐号。第四列(COMMAND)是指定的命令. NOPASSWD是可选项代表USER在sudo到某身份时不必输入该身份的密码即可执行命令。
     下面是配置sudo的简单方法:
        M-gtuiw ALL=(ALL) ALL
     指定了M-gtuiw可以在任何地点以任何身份执行整个系统的全部命令。
       %wheel ALL=(ALL) ALL
     这个命令指定了wheel这个组的用户可以在任何地点以任何身份执行整个系统的全部命令。
        M-gtuiw ALL=(apache) /usr/bin
     指定了M-gtuiw可以在任何地点但只能以apache用户身份且只能执行/usr/bin目录下的命令。
        M-gtuiw ALL= /usr/bin
     等同于M-gtuiw ALL=(root) /usr/bin

  3)设置密码在一段时间后自动退出
     Defaults:M-gtuiw     timestamp_timeout=0, runaspw, passwd_tries=1
     记住: 在 Defaults:M-gtuiw 这个地方不允许有空格出现。下同:     
     这段句子有三个功能:
     1)M-gtuiw需要root的密码才能运行sudo(句子中runaspw的缘故)。
     2)这密码没有被系统记住(因为有timestamp_timeout=0的缘故),用了一次的sudo之后当再次使用时又得输入root密码。
       如果将timastamp_timeout改为-1话,M-gtuiw只须去验证一次密码,之后将记住了M-gtuiw输入的密码,当第二次,第三次
       使用sudo的时候都不用输入root密码了直到退出登录。
       当然,其它的用户也可以这样,但须要不同的帐户和缺省值。在这里我们只改变M-gtuiw和增加一个新的用户“limda”:
          Defaults:M-gtuiw               timestamp_timeout=0
          Defaults:limda                  timestamp_timeout=-1, runaspw
          #user privilege specification
          root          ALL=(ALL) ALL
          M-gtuiw       ALL=(ALL) ALL
          limda         ALL=(ALL) ALL
       M-gtuiw和limda拥有不同的缺省值。“Defaults”影响着每个用户使用sudo不同的权限。

  4)sudo默认使用系统的 /var/log/messages 作为其日志文件;除此之外,也可以采用另外的日志,以便于进行审计。
      Defaults logfile=/var/log/sudolog
      记住,在上面没有 : 啊。

  5) 限制sudo使用危险的命令:
        M-gtuiw ALL=/bin/kill, /usr/sbin/
  这里说明M-gtuiw用户只可以使用/bin/kill这个命令和/usr/sbin/里面的命令。
        M-gtuiw lnserve=(paul, limda) /bin/kill, /usr/sbin/
  说明了M-gtuiw只能在lnserv指定的机算机中以paul和limda的身份使用/bin/kill和/usr/sbin里面的命令。

  6)sudo限制使用某些命令
        M-gtuiw ALL=ALL, !/bin/rm
  这里说明了M-gtuiw可以用除了/bin/rm之外的所有命令,在/bin/rm前面加上 ! 号就是为了限制使用这个命令。
  这是我在sudo的网页里翻译出来的一些简单文本,本人的英文不是很好,翻译的不是很好,欢迎各位前来修正。

  7)sudo时不输入密码直接执行命令
        M-gtuiw ALL=(ALL) NOPASSWD: /usr/local/sbin/VBoxClient,/sbin/mount -t ntfs /dev/hda5 /d-driver
  这里说明M-gtuiw在执行/usr/local/sbin/VBoxClient以及mount hda5时,不必输入root密码就可以root权限执行,
  这里RUNAS为ALL实际上是指M-gtuiw可以sudo成任何身份且不必输入该身份的密码就可以执行后面的命令,当然root身份也不在话下。
  NOPASSWD特别危险切记要让正确的人使用正确的命令。
        M-gtuiw ALL=(ALL) NOPASSWD: ALL
  这里说明M-gtuiw执行所有命令都不必输入密码,这极其危险。慎用。
        M-gtuiw ALL=(ALL) ALL, NOPASSWD: /sbin/mount -t ntfs /dev/hda5 /d-driver
  也可以让M-gtuiw用户可以sudo所有命令,但只针对某些命令不必输入密码。

原文链接:http://wiki.freebsdchina.org/doc/s/sudo_with_sudo