为每个新老用户自动将文件夹挂载到主目录中

为每个新老用户自动将文件夹挂载到主目录中

我想允许系统中的每个用户(+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 是个模仿者...抄袭了我的话还加了链接...转储

相关内容