установка разрешений по умолчанию для новых файлов - CentOS 6.0 - PullRequest
1 голос
/ 28 марта 2012

Я пытаюсь установить некоторые наследуемые разрешения по умолчанию для каталога, который будет распространяться на все новые файлы и папки, которые он будет содержать.

До сих пор я пытался использовать setfacl, но кажется, что я удаляю разрешения на выполнение из файла, когда я касаюсь нового файла в каталоге, что, учитывая то, что это будет папка скриптов, несколько требуется.

Я мог бы пойти по этому пути совершенно неправильно, но любая помощь будет оценена.По сути, я пытаюсь добиться того, чтобы скрипты были rsync'ed, scp'ed из центрального местоположения (а не этого местоположения) где-то на хосте, который мне нужен по умолчанию, чтобы иметь разрешения на выполнение при их создании

$ 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 Ответ

2 голосов
/ 28 марта 2012

IIRC основные биты разрешений Unix также формируют предел разрешений, доступных для файла.

То есть доступные разрешения всегда будут ограничены базовыми разрешениями. Основные разрешения могут быть ограничены umask процесса синхронизации или исходными разрешениями исходных файлов, поэтому вы должны проверить их.

В качестве альтернативы вы должны исправить основные разрешения после выполнения синхронизации.

...