![为每个新老用户自动将文件夹挂载到主目录中](https://linux22.com/image/674883/%E4%B8%BA%E6%AF%8F%E4%B8%AA%E6%96%B0%E8%80%81%E7%94%A8%E6%88%B7%E8%87%AA%E5%8A%A8%E5%B0%86%E6%96%87%E4%BB%B6%E5%A4%B9%E6%8C%82%E8%BD%BD%E5%88%B0%E4%B8%BB%E7%9B%AE%E5%BD%95%E4%B8%AD.png)
我想允许系统中的每个用户(+50)通过他们的主目录访问 /var/www/dev/
对于一个特定的用户我可以这样做:
mkdir /home/用户名/www_dev mount --bind /var/www/dev/ /home/用户名/www_dev
然后通过编辑 /etc/fstab 使此配置永久生效:
/var/www/dev /home/用户名/www_dev 无绑定 0 0
我的问题是:以上内容针对的是 1 个特定用户,我怎样才能让其适用于系统中的每个用户?并且在我创建新用户时自动完成?
答案1
我会使用符号链接而不是挂载。您可以通过在 /etc/profile.d 中创建一个文件轻松完成此操作。在文件中添加创建符号链接的命令。由于 /etc/profile.d 中的脚本以用户身份运行,因此命令将是:
ln -fs /var/www/dev ~/www_dev
使用系统范围的配置文件将确保即使用户删除符号链接也会被创建。
这仅在用户使用交互式登录 shell(例如 ssh 或 su)时才有效。请参阅https://askubuntu.com/questions/438150/scripts-in-etc-profile-d-being-ignored有关登录 shell 类型和启动脚本的更多信息。
有关 /etc/profile.d 如何工作的更多信息,请参阅https://unix.stackexchange.com/questions/64258/what-do-the-scripts-in-etc-profile-d-do
另一种方法是使用 useradd 命令并利用 /etc/skel。http://linux.die.net/man/8/useradd
使用 useradd 时,/etc/skel 目录中的所有内容都会复制到新用户的主目录中。您可以使用源的绝对路径和目标的相对路径在 /etc/skel 中放置符号链接。
答案2
我希望我理解了这个问题:
我会使用符号链接而不是绑定挂载。
对于绑定挂载,将其添加到.bashrc 或分发相关文件中,以便每次用户登录时都会进行设置。
为了对所有用户执行此操作,请为用户创建一个读取 /etc/passwd 的脚本,并在 for 语句中执行该命令。
对于新用户,请编辑默认的 .bashrc 文件或创建一个新文件
Mike 是个模仿者...抄袭了我的话还加了链接...转储