这是我的情况:
- 我有一个用户存储用户主目录为/贮存
- 存储用户拥有 /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
创建用户
useradd mediaUser
useradd storageUser
设置用户
passwd mediaUser
passwd storageUser
创建组
groupadd storageGroup
创建目录
mkdir /storage/media
将用户分配到组
usermod -a -G storageGroup {mediaUser,storageUser}
将目录所有者更改为组
chgrp storageGroup /storage/media
现在组中的每个人都storageGroup
拥有该特定目录。从中删除用户storageGroup
也会删除对该目录的访问权限。另请参见man chgrp
此方法还消除了对 的需要storageUser
,除非您出于其他原因使用该用户。
答案2
除了用户、组、权限和物理文件夹之外,您还可以使用命令创建软链接或硬链接,ln
这将使文件夹按您的预期工作。输入链接(快捷方式)提供的文件夹应该像真实文件夹一样工作。
默认情况下ln
创建硬链接,可以选择-s
创建软链接。通过查看手册man ln
。