在另一个用户的现有主目录中创建主目录的新用户 - 两个用户都必须拥有该子目录

在另一个用户的现有主目录中创建主目录的新用户 - 两个用户都必须拥有该子目录

这是我的情况:

  • 我有一个用户存储用户主目录为/贮存
  • 存储用户拥有 /storage 的完整 (RWE) 权限
  • 之内/贮存我有一个目录媒体
  • 我想创建一个新用户媒体用户谁的主目录是/储存媒介具有只读权限,同时维护存储用户的完整 RWE 权限

当使用 FTP 或 SSH 登录服务器时,我希望 storageUser 能够以完全 RWE 权限控制 /storage,而 mediaUser 只能读取 /storage/media。我希望将来授予 mediaUser 访问权限以共享我的媒体文件夹,而人们无法进行任何更改。

这是我尝试过的:

  • 已创建媒体用户并设置他们的密码
useradd mediaUser
passwd mediaUser
...
  • 创建了一个新组存储组
groupadd storageGroup
  • 两者都添加了存储用户媒体用户到小组
usermod -a -G storageGroup storageUser
usermod -a -G storageGroup mediaUser
  • 更改了所有权权限,以便存储用户将具有 7 级权限(读-写-执行)并且存储组将具有 4 级权限(只读)
chown -R storageUser:storageGroup media
chmod -R 740 Media
  • 更改了 mediaUser 的主目录
usermod -d /storage/media mediaUser

权限存储用户似乎工作正常,但是当我 SSH 进入服务器时媒体用户,我收到此错误:

Could not chdir to home directory /storage/media: Permission denied

媒体用户也无法读取目录内容LS

ls: cannot access '/storage/media': Permission denied

我究竟做错了什么?

答案1

创建用户

  1. useradd mediaUser
  2. useradd storageUser

设置用户

  1. passwd mediaUser
  2. passwd storageUser

创建组

  1. groupadd storageGroup

创建目录

  1. mkdir /storage/media

将用户分配到组

  1. usermod -a -G storageGroup {mediaUser,storageUser}

将目录所有者更改为组

  1. chgrp storageGroup /storage/media

现在组中的每个人都storageGroup拥有该特定目录。从中删除用户storageGroup也会删除对该目录的访问权限。另请参见man chgrp 此方法还消除了对 的需要storageUser,除非您出于其他原因使用该用户。

答案2

除了用户、组、权限和物理文件夹之外,您还可以使用命令创建软链接或硬链接,ln这将使文件夹按您的预期工作。输入链接(快捷方式)提供的文件夹应该像真实文件夹一样工作。

默认情况下ln创建硬链接,可以选择-s创建软链接。通过查看手册man ln

相关内容