前言

本章给大家讲解两个用户配置文件:.bashrc和.bash_logout,每个用户的用户目录下,都会有这两个文件。我们来学习下两个文件的作用:

聊聊关于Linux的登录脚本和登出脚本

图1 .bashrc .bash_logout

.bashrc:这个文件主要保存个人的一些个性化设置,如命令别名、路径等。是该用户登录后的个性化设置。简单的说,如果我们希望该用户在登录时执行某些操作,就把脚本命令写在该文件中,注意,普通用户的权限问题,不是所有的脚本程序都能顺利执行的,一会做个操作实验,给大家演示。

.bash_logout:根据名字可以知道,这是用户登出行为,当执行登出命令时(logout),会读取该文件,如果希望用户登出时执行某些操作,脚本命令可以写在该文件中。

我们来模拟一个实验,实现.bashrc和.bash_logout的应用:拟定于在系统中创建一个用户element,在该用户登录时,自动挂载共享目录,给该用户使用;当该用户登出系统时,自动卸载该目录。有点类似于中的“映射网络驱动器”的概念。

模拟实验

实验环境:

  • Windows Server 2008:192.168.0.88 共享一个目录,供element使用。
  • 7:192.168.0.1 演示element用户的登录、登出效果。

Windows设置:

图2 Windows 2008主机IP地址


图3 创建share目录并共享


图4 在share目录下共享若干文件

Windows中主要设置共享目录,图2设置主机IP地址,图3创建目录share并共享目录,图4在目录下建立测试文件。

Linux设置:

图5 创建用户

图5中,我们建立测试用户:element。

图6 查看.bashrc和.bash_logout

图6中,我们访问element的用户目录/home/element,可以看到.bashrc和.bash_logout两个文件,注意两个文件是隐藏文件,要用ls -a指令才能看到。

图7 写入脚本信息

图7中,我们分别向.bashrc中写入挂载命令,向.bash_logout中写入卸载命令,这里注意,element是普通用户,权限不高,挂载指令mount只有根用户可做,普通用户没有权限,所以要在正常指令前加“sudo”指令。

图8 /etc/sudoers

图8中,sudo不是所有用户都可以调用的,修改/etc/sudoers文件,将elment用户添加进去,表示该用户可以执行sudo指令,也就是说可以调用根用户权限,有点类似于Windows系统中的“以管理员身份运行”。

到这里,所有的工作都已经准备就绪,我们看一下实验效果:

图9 实验效果

图9中,我们用element登录,注意登录后没有报错,进一步验证,可以看到共享目录挂载成功了,我们顺便访问一下挂载目录,可以看到Windows主机共享的四个文本文件。登出时会自动卸载该目录(这一步演示效果不明显,只要登出时不出现错误提示即代表成功)。

后序

.bashrc和.bash_logout两个文件是重要的用户脚本文件,用在用户登录和登出中,该文件方便了用户对系统的个性化设置,能够完成特殊的系统优化功能,比如登出是自动清空浏览器缓存文件,登录时发送友好提示信息等操作。但是也容易被利用,比如自动执行“后门”程序、“木马”等操作。对这两个文件的理解,有助于提高对系统安全防护的认识,这里我只举了一个例子,还有很多使用技巧,基本上都大同小异,只要你会Linux shell脚本,了解权限的问题,就能够实现系统个性化设置。好了,不早了,今天就讲到这里,大家再见!

胜象大百科