我有两台服务器:
服务器一:
deploy@server:/home/vftp$ ls -la
total 24
drwxr-xr-x 6 ftp ftp 4096 May 7 2013 .
drwxr-xr-x 7 root root 4096 Jul 19 2013 ..
dr-xr-xr-- 3 ftp ftp 4096 Feb 18 2013 ald
deploy@server:/home/vftp$ cd ald
deploy@server:/home/vftp/ald$
服务器二:
deploy@server:/home/vftp$ ls -la
total 24
drwxr-xr-x 6 ftp ftp 4096 Mar 17 11:01 .
drwxr-xr-x 6 root root 4096 Mar 17 12:44 ..
dr-xr-xr-- 3 ftp ftp 4096 Mar 17 11:01 ald
deploy@server:/home/vftp$ cd ald
bash: cd: ald: Permission denied
我无法理解这种行为。我需要“服务器二”中的部署用户才能访问该ald
文件夹。
有什么想法吗?
答案1
对目录的访问由执行属性 (x) 控制。
您的 ald 目录仅对用户/组具有执行权限,因此服务器 1 上的用户 deploy 可能是组 ftp 的成员,而在服务器 2 上他不是。
更改 server2 上部署的组成员身份
useradd -G ftp deploy
或者添加其他对 ald 目录的执行权限
chmod o+x ald