Shell编程通过批量创建用户的实验看Linux家目录和根目录的区别

    技术2025-09-07  49

    Shell编程通过批量创建用户的实验看Linux家目录和根目录的区别

    在完成此次实验之前首先明确Linux当中两个操作概念: 家目录:→Linux中的“~”,cd ~ 即可切换到当前用户的家目录,之后pwd,发现路径为/home/当前用户名,ls后是当前用户上的一些文件,如: 根目录:→Linux中的“/”, cd / 即可切换到根目录,之后pwd,发现路径为/ ,ls后是: 可以看到,根目录底下包括了home 和root(root用户的家目录在/root下),因此根目录是目录的最高层,所有文件都在根目录下面,而根目录下有bin,etc,root,mnt,dev,var等,根目录包括家目录

    实验过程

    环境:

    CentOS7 64位

    需求:

    批量新建5个用户stu1~stu5,要求这几个用户的家目录都在/rhome

    前提:

    由于是要创建新的用户,要用到useradd 命令,这个命令的权限只有管理员才有,所以要提前进入root

    脚本:

    脚本文件命名为piliang.sh

    #!/bin/bash #判断/rhome是否存在 [ -f /rhome ] && mv /rhome /rhome.bak#r若存在,先将这个rhome改名,因为如果让这个rhome继续存在,就创建不了新的用来做实验的rhome了。 test ! -f /rhome -a ! -d /rhome && mkdir /rhome#判断是否有名为rhome文件或目录,如果没有,就新建一个名为rhome的目录 #创建用户,循环5次 for ((i=1;i<=5;i++)) do useradd -d /rhome/stu$i stu$i#useradd -d 家目录 用户名:是创建新的用户,并指定新的用户的家目录 echo 123|passwd --stdin stu$i#非交互的给每个新的用户设置密码:echo 密码|passwd --stdin 新的用户名(此命令不适用Ubuntu) done

    过程:

    su root→输入管理员密码 vim piliang.h →编辑脚本文件 chmod +x piliang.h :赋予执行权限 bash -x piliang.h 执行脚本

    执行完后,如果在root里面su stu&i 切换到新建好的用户stu1后,ls的话会报错,说权限不够

    此时应该用cd ~再用户stu1的基础上切换到当前用户stu1的家目录(因为如果不这样做的话,当前位置还是root的家目录),等于说是将当前位置由root的家目录切换到stu1的家目录。 之后再ls,便可以了,也可以在切换到stu1的家目录后mkdir 1 创建一个目录,然后ls 可以看到这个1。

    结论:

    当然,在切换到家目录后,便可pwd了,发现

    再次切换到根目录

    cd 到/rhome,然后ls,发现新建立的5个用户都在:

    再cd一下stu1可发现刚刚在stu1家目录里的目录1也在:

    Processed: 0.011, SQL: 9