为什么使用 mkdir 和 mkdir -p 时组权限不同?

为什么使用 mkdir 和 mkdir -p 时组权限不同?

我试图使目录内的新文件和目录始终具有相同的权限和组。

我已经这样做了:

cd /
sudo mkdir apps
sudo chown deploy:www-data apps
sudo chmod g+s apps
sudo setfacl -d -m g:www-data:rwx apps/
cd apps
mkdir foo
ls -lah foo

我获得了 foo 的正确权限和组所有权:

drwxrwsr-x+  2 deploy www-data 4.0K Apr 22 17:29 foo

但是,如果我这样做:

mkdir -p /apps/bar

...我获得了正确的组所有权,但没有获得组权限:

drwxr-sr-x+  2 deploy www-data 4.0K Apr 22 17:30 bar

显然,我不明白 ACL 的工作方式。我不明白为什么第二个目录没有 rwx 组权限。

答案1

mkdir -p使用默认的 umask。您可以将其与-m设置权限

mkdir -m 2775 -p path/dirname

相关内容