linux系统中与⽤户管理相关的⽂件解读
1. ⽤户的家⽬录
每个⽤户在登录Linux系统时,必须有⼀个默认的登录位置,该⽤户对这个⽬录⼀定的权限,我们把这个⽬录称作⽤户的家⽬录。普通⽤户的家⽬录位于/home/下,⽬录名和⽤户名相同。例如,lamp ⽤户的家⽬录就是/home/lamp/,这个⽬录的权限如下:
[root@localhost ~]# ll -d /home/lamp/
drwx------. 2 lamp lamp 62 Mar 1812:22 /home/lamp/
⽬录的属主是lamp⽤户,属组是lamp⽤户组,权限是700,lamp ⽤户对/home/lamp/家⽬录拥有读、写和执⾏权限。
超级⽤户的家⽬录位于/下。例如,超级⽤户的家⽬录就是/root/,这个⽬录的权限如下:
[root@localhost ~]# ll -d /root/
dr-xr-x---. 2 root root 167 Mar 1815:20 /root/
在Linux中,家⽬录⽤“~”表⽰,当前命令的提⽰符是“[root@localhost ~]”,表⽰当前所在⽬录就是家⽬录。⽽我当前是超级⽤户,所以我的家⽬录就是/root/。
2. ⽤户邮箱⽬录
在建⽴每个⽤户的时候,系统会默认给每个⽤户建⽴⼀个邮箱。这个邮箱在/var/spool/mail/⽬录中,如lamp⽤户的邮箱就
是/var/spool/mail/lamp。
3. ⽤户模板⽬录
刚刚我们说了每个⽤户都有⼀个家⽬录,⽐如lamp⽤户的家⽬录就是/home/lamp/,我们进⼊这个⽬录,看看⾥⾯有什么内容。
[root@localhost ~]# ll /home/lamp/
total 0
这个⽤户因为是新建⽴的,所以家⽬录中中没有保存任何⽂件,是空的。但真的是空的吗?有没有隐藏⽂件呢?我们再来看看。
[root@localhost ~]# ls -a /home/lamp/
...  .bash_logout  .bash_profile  .bashrc
原来这个⽬录中还是有⽂件的,只不过这些⽂件都是隐藏⽂件。那么这些⽂件都是做什么的?是从哪⾥来的呢?这些⽂件都是当前⽤户lamp的环境变量配置⽂件,这⾥保存的都是该⽤户的环境变量参数。那么,什么是环境变量配置⽂件呢?我们这么说吧,在Windows中虽然只有⼀台计算机,但是如果使⽤不同的⽤户登录,那么每个⽤户的操作环境(如桌⾯背景、分辨率、桌⾯图标)都是不同的。因为每个⽤户的操作习惯不同,所以Windows运⾏⽤户⾃⾏定义的操作环境。在Linux 中可以吗?当然可以,只不过Windows是通过更直观的图形界⾯来进⾏设置和调整的,⽽Linux是通过⽂件来进⾏调整的。我们将这些根据⽤户习惯调整操作系统环境的配置⽂件称作环境变量配置⽂件。/home/lamp/⽬录中的这些环境变量配置⽂件所定义的操作环境只对lamp⽤户⽣效,其他每个⽤户的家⽬录中都有相应的环境变量配置⽂件。
那么,这些环境变量配置⽂件都是从哪⾥来的呢?其实有⼀个模板⽬录,这个模板⽬录就是/etc/skel/⽬录,每创建⼀个⽤户,系统会⾃动创建⼀个⽤户家⽬录,同时把模板⽬录/etc/skel/中的内容复制到⽤户家⽬录中。我们看/etc/skel/⽬录中有些什么内容。
[root@localhost ~]# ll -a /etc/skel/
total 24
drwxr-xr-x.  2 root root  62 Jan  918:11 .
drwxr-xr-x. 74 root root 8192 Mar 1813:59 ..
-rw-r--r--.  1 root root  18 Aug  82019 .bash_logout
-rw-r--r--.  1 root root  193 Aug  82019 .bash_profile
-rw-r--r--.  1 root root  231 Aug  82019 .bashrc
linux系统登录是不是和/home/lamp/⽬录中的内容⼀致呢?我们做⼀个实验,在/etc/skel/⽬录中随意创建⼀个⽂件,我们看看新建⽴的⽤户的家⽬录中是否也会把这个⽂件复制过来。
[root@localhost ~]# touch /etc/
#创建⼀个⽂件
[root@localhost ~]# ls -a /etc/skel/
...  .bash_logout  .bash_profile  .bashrc 
#查看skel⽬录,可以看到除了环境变量配置⽂件后,多出了我们创建的⽂件
[root@localhost ~]# useradd user1
#新建⼀个⽤户user1
[root@localhost ~]# ls -a /home/user1/
...  .bash_logout  .bash_profile  .bashrc 
#进⼊我们新创建的user1⽤户家⽬录,看到多除了⼀个⽂件
这样⼤家就明⽩模板⽬录的作⽤了吧。如果需要让每个⽤户的家⽬录中都有某个⽬录或⽂件,就可以修改模板⽬录。
总结⼀下: linux系统中和⽤户相关的⽂件主要有7个。其中4个是⽤户配置⽂件,分别是/etc/passwd、/etc/shadow、/etc/group、
/etc/gshdow。这⼏个⽂件主要定义了⽤户的相关参数,我们可以通过⼿⼯修改这⼏个⽂件来建⽴或修改⽤户的相关信息,当然也可以通过命令修改。还有3个⽂件是⽤户管理相关⽂件,分别是⽤户的家⽬录
、⽤户邮箱⽬录、⽤户模板⽬录,这些⽬录在建⽴⽤户的时候都会起到相应的作⽤,⼀般不需要修改。
7.2 ⽤户管理命令
前⾯我们讲了⽤户相关⽂件,如果要添加或删除⽤户,则通过⼿⼯修改配置⽂件的⽅件的⽅法也是可以的。但是这样做太⿇烦了,Linux 系统为我们准备了完善的⽤户管理命令,我们现在来学习⼀下这些命令吧。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。