samba-将用户的/home目录连接到数据驱动器上预先存在的/home

samba-将用户的/home目录连接到数据驱动器上预先存在的/home

我正在将现有的 sambaserver (14.04) 转换为 18.04 上的新安装。我将继续使用现有数据分区(在单独的 HD 上),并在新硬盘上安装了新服务器。所以我需要尽可能接近地“重建”以前的服务器的行为。

我面临的一个问题与我的用户可以通过 samba 访问的目录有关/home。在旧系统中,这些目录位于数据分区,可从/srv/smb/[user1]

现在,在新的安装中,我以某种方式弄乱了home现在位于的文件夹/home/[user1],所以我想使用数据驱动器中的 /homes 文件夹,并且想知道如何调整它。

像...这样的符号链接会怎样?

mv /home/[user1] /home/[somethingelse]
ln -l /srv/smb/[user1] /home/[user1]

... 能完成任务吗?或者有更巧妙的方法来实现这个目标吗?


按照要求(不知道如何以评论的形式发表)

~ $ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 186.3G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0   250M  0 part /boot
├─sda3   8:3    0    27G  0 part /
├─sda4   8:4    0     4G  0 part [SWAP]
└─sda5   8:5    0   150G  0 part /home
sdb      8:16   0   1.8T  0 disk 
├─sdb1   8:17   0 698.5G  0 part /srv/smb
└─sdb2   8:18   0  93.1G  0 part 

答案1

这就是我解决这个问题的方法

home1. 更改前一个服务器的名称

sudo mv /srv/smb/usr1 /srv/smb/usr1_old

2. 将新的主文件夹移动usr1/srv/smb/目录

sudo usermod -md /srv/smb/usr1/ usr1

3. 检查 passwd 文件(该文件应显示 usr1 的新目录)

cat /etc/passwd | grep usr1

如果看起来不错......

4. 将旧主目录的内容复制到新主目录

sudo rsync -azvv --ignore-existing /srv/smb/usr1_old/* /srv/smb/usr1/

a) 该--ignore-existing选项确保新主文件夹(用户创建时自动创建)中的.文件(即)不会被旧主文件夹中的文件覆盖(不确定这是否真的有很大的不同,但我仍然会这样做) b) 我相信你也可以用来实现同样的结果,我仍然使用 rsync,因为我更熟悉它.profile.
cp

然后...我就开始运行了!我想再检查一下访问权限是否与新系统匹配(我之前已经做过了)应该不会有什么坏处,而且您可能已经完全忘记了旧服务器上现有的 acl,这可能会造成一些麻烦,所以如果遇到任何问题,也值得研究一下这一点。

希望这能帮助有同样问题的人。感谢@Sebastian Stark 的上述评论。不知何故,他们帮助我找到了自己的路

相关内容