Linux如何使得普通用户自动登入进指定目录
UpDate 2018-08-01 1533117832
Author unnamed
INTRODUCTION
在使用 Linux 的过程中,我们每次进行登入的时候,默认我们登入的目录都是各自的家目录/home/username
。而在某些特殊的情况下,我们并不想如此,可我们又不想修改家目录。比如,我们作为服务器的管理员,普通用户在使用服务器的过程中总是会将工作直接在登入的目录下进行,也就是直接在家目录下进行。通常情况下,/home
的目录下可供存储的空间很少,这样子就很容易造成我们/home
目录下的空间被写满。那我们怎么办?首先我们可以修改用户的配置文件/etc/passwd
中的家目录位置,再将原来家目录的所有文件(包括隐藏文件)转移到指定的含有高容量的家目录位置。但这种做法对于批量用户来说还是有些麻烦,即使通过shell脚本来实现在我看来也是比较麻烦的。本文就来讨论一下如何在不修改用户家目录的情况,就可以达到普通用户自动登入进指定目录的目的。
METHOD
首先我们要先了解,在我们进行登陆的过程中,shell都需要读取哪些配置文件。如下:
- /etc/profile
- /etc/bashrc
- /etc/profile.d/*.sh
- ~/.bash_profile
- ~/.bashrc
其中,前三个文件为bash的全局配置文件,后两个文件为bash的个人配置文件。profile类的的文件主要用于设定shell的环境变量,以及用户登陆之前做的一些准备工作(比如运行一些命令,执行一些脚本);而bashrc类的文件主要用于设定本地的环境变量以及定义命令的别名。
这些配置文件就是我们在登陆的过程中,shell要读取的配置文件。需要注意的是,我们登入的过程分为两种,即:登陆式shell、非登陆式shell。
而不同的登入过程所读取bash配置文件的个数与顺序是不同的。

而不管是哪种登入方式,我们可以发现,全局配置文件/etc/bashrc
都是要读取的。也就是说,该文件里的内容都是要被执行的,因此,我们只需要修改/etc/bashrc
里的内容就可以实现我们的目的。
具体来说,只需要在/etc/bashrc
中加入以下命令然后执行source /etc/bashrc
即可马上生效:
cd /path/to/dir
举例来说,我想实现每个普通用户在登入的时候,会自动登入到在 /data 里面的以自己用户名命名的目录内(比如 /data/myname),我只需要在/etc/bashrc
中加入以下命令然后执行source /etc/bashrc
即可马上生效:
cd /data/${whoami}
网友评论