本文讨论一下如何在 Linux 操作系统中不修改用户家目录的情况,就可以达到普通用户自动登入到指定目录的目的。
相关介绍 在使用Linux系统的过程中,我们每次进行登入的时候,默认我们登入的目录都是各自的家目录/home/username。而在某些特殊的情况下,我们并不想如此,可我们又不想修改家目录。比如,我们作为服务器的管理员,普通用户在使用服务器的过程中总是会将工作直接在登入的目录下进行,也就是直接在家目录下进行。通常情况下,/home的目录下可供存储的空间很少,这样子就很容易造成我们/home目录下的空间被写满。那我们怎么办?首先我们可以修改用户的配置文件/etc/passwd中的家目录位置,再将原来家目录的所有文件(包括隐藏文件)转移到指定的含有高容量的家目录位置。但这种做法对于批量用户来说还是有些麻烦,即使通过shell脚本来实现在我看来也是比较麻烦的,于是有了本文介绍的简单方法来实现。
实现方法 首先我们要先了解,在我们进行登陆的过程中,shell都需要读取哪些配置文件。如下: 1./etc/profile 2./etc/bashrc 3./etc/profile.d/*.sh 4.~/.bash_profile 5.~/.bashrc 其中,前三个文件为bash的全局配置文件,后两个文件为bash的个人配置文件。profile类的的文件主要用于设定shell的环境变量,以及用户登陆之前做的一些准备工作(比如运行一些命令,执行一些脚本);而bashrc类的文件主要用于设定本地的环境变量以及定义命令的别名。 这些配置文件就是我们在登陆的过程中,shell要读取的配置文件。需要注意的是,我们登入的过程分为两种,即:登陆式shell、非登陆式shell。 而不同的登入过程所读取bash配置文件的个数与顺序是不同的。不同shell登入过程:
而不管是哪种登入方式,我们可以发现,全局配置文件/etc/bashrc都是要读取的。也就是说,该文件里的内容都是要被执行的,因此,我们只需要修改/etc/bashrc里的内容就可以实现我们的目的。 具体来说,只需要在/etc/bashrc中加入以下命令然后执行source /etc/bashrc即可马上生效: cd /path/to/dir 举例来说,我想实现每个普通用户在登入的时候,会自动登入到在/data里面的以自己用户名命名的目录内(比如/data/myname),我只需要在/etc/bashrc中加入以下命令然后执行source /etc/bashrc即可马上生效: cd /data/${whoami}
相关主题 |