设置新文件的默认权限 - CentOS 6.0

时间:2012-03-28 11:14:33

标签: linux permissions centos acl

我正在尝试将一些默认的继承权限设置为一个目录,该目录将传播到它将包含的所有新文件和文件夹。

到目前为止,我的尝试一直在使用setfacl,但是当我将新文件触及目录时,它似乎从文件中删除了执行权限,考虑到这将是一个脚本文件夹,这在某种程度上是必需的。

我可能会以完全错误的方式解决这个问题,但任何帮助都会受到赞赏。基本上我想要实现的是脚本将被rsync,scp从中心位置到(而不是这个位置)主机上的某个地方我默认需要它们在创建时具有执行权限

$ mkdir /tmp/scripts
$ cd /tmp/scripts
$ setfacl -Rm d:u::rwx,d:g::rwx,d:o:rx /tmp/scripts
$ getfacl /tmp/scripts/
getfacl: Removing leading '/' from absolute path names
# file: tmp/scripts/
# owner: chris
# group: chris
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

$ setfacl -Rm d:u:chris:rwx,d:g:chris:rwx,d:o:rx /tmp/scripts
$ getfacl /tmp/scripts/
getfacl: Removing leading '/' from absolute path names
# file: tmp/scripts/
# owner: chris
# group: chris
user::rwx
group::rwx
other::r-x
default:user::rwx
default:user:chris:rwx
default:group::rwx
default:group:chris:rwx
default:mask::rwx
default:other::r-x

$ setfacl -k /tmp/scripts
$ setfacl -nRm d:u:chris:rwx,d:g:chris:rwx,d:o:rx /tmp/scripts
$ getfacl /tmp/scripts/
getfacl: Removing leading '/' from absolute path names
# file: tmp/scripts/
# owner: chris
# group: chris
user::rwx
group::rwx
other::r-x
default:user::rwx
default:user:chris:rwx
default:group::rwx
default:group:chris:rwx
default:mask::rwx
default:other::r-x

$ touch this.py
$ getfacl this.py
# file: this.py
# owner: chris
# group: chris
user::rw-
user:chris:rwx                 #effective:rw-
group::rwx                      #effective:rw-
group:chris:rwx                #effective:rw-
mask::rw-
other::r--

$ ls -la
total 20
drwxrwxr-x+  2 chris chris 4096 Mar 28 12:00 .
drwxrwxrwt. 18 root   root   4096 Mar 28 11:56 ..
-rw-rw-r--+  1 chris chris    0 Mar 28 11:58 test.py
-rw-rw-r--+  1 chris chris    0 Mar 28 12:00 this.py
$

1 个答案:

答案 0 :(得分:2)

IIRC基本的unix权限位也构成了文件可用权限的限制。

这是可用的权限将始终受基本权限的限制。基本权限可能受同步过程的umask或源文件的原始权限限制,因此您应该检查它们。

或者,您应该在完成同步后更正基本权限。