Используйте link
с полным путем:
systemctl link /home/nick/myservice.service
Обратите внимание, что вы не можете ссылаться на файл, который сам по себе уже является ссылкой.
Маску можно изменить с помощью следующей команды:
setfacl -m m:rwx filename/directory
Если я правильно понял ваш вопрос, пользователь ola
создает файлы в каталоге:/omega/olabooktmp/gettaxi
и вы хотите ограничить доступ к этим файлам, но предоставить доступ пользователю uber
.
Примечание:/omega/olabooktmp/gettaxi
принадлежитola
Начнем пока без ACL:
ls -ld /omega/olabooktmp/gettaxi
drwxr-x--- 2 ola ola 4096 mars 21 08:16 /omega/olabooktmp/gettaxi
Чтобы предоставить rwx
разрешение uber
с помощью ACL, вы можете использовать:
setfacl -m u:uber:rwx,d:u:uber:rwX,o:--- /omega/olabooktmp/gettaxi
Что даст пользователю uber
права rwx
на папку /omega/olabooktmp/gettaxi
, а также предоставит rwx
как default
d:
и X
. Он предоставляет разрешение на файлы, ранее присутствующие в папке, и дает унаследованные права доступа к файлу. А также удалить все остальные разрешения на other
для ограничения, конечно. Владелец все еще имеет свое собственное разрешение.
Результат:
getfacl /omega/olabooktmp/gettaxi
getfacl: Removing leading '/' from absolute path names
# file: omega/olabooktmp/gettaxi
# owner: ola
# group: ola
user::rwx
user:uber:rwx
group::r-x
mask::rwx
other::---
default:user::rwx
default:user:uber:rwx
default:group::r-x
default:mask::rwx
default:other::---
Тестирование:
ola
создает некоторые файлы (запускается от имени пользователя root):
su - ola -c "for i in {1..3}; do date > /omega/olabooktmp/gettaxi/$RANDOM; done"
Результат:
ls -l /omega/olabooktmp/gettaxi/
total 32
-rw-r----- 1 ola users 32 mars 21 08:43 17606
-rw-r----- 1 ola users 32 mars 21 08:43 22286
-rw-r----- 1 ola users 32 mars 21 08:42 31484
-rw-r----- 1 ola users 32 mars 21 08:43 31848
-rw-r----- 1 ola users 32 mars 21 08:42 667
-rw-r----- 1 ola users 4 mars 21 08:16 one
-rw-r----- 1 ola users 6 mars 21 08:16 three
-rw-r----- 1 ola users 4 mars 21 08:16 two
Недоступно обычному пользователю (запуск от имени пользователя root):
su - debian -c "ls -l /omega/olabooktmp/gettaxi"
ls: cannot open directory '/omega/olabooktmp/gettaxi': Permission denied
Но uber может (работать как root):
su - uber -c "ls -l /omega/olabooktmp/gettaxi"
total 32
-rw-r----- 1 ola users 32 Mar 21 08:43 17606
-rw-r----- 1 ola users 32 Mar 21 08:43 22286
-rw-r----- 1 ola users 32 Mar 21 08:42 31484
-rw-r----- 1 ola users 32 Mar 21 08:43 31848
-rw-r----- 1 ola users 32 Mar 21 08:42 667
-rw-r----- 1 ola users 4 Mar 21 08:16 one
-rw-r----- 1 ola users 6 Mar 21 08:16 three
-rw-r----- 1 ola users 4 Mar 21 08:16 two
Если вы испортите свой ACL с помощью некоторых тестов, вы можете удалить все ACL с помощью:
setfacl -R -b /omega/olabooktmp/gettaxi
И снова.
Да, маска снижает разрешения. Действующее разрешение — это разрешение и маска.(user::
(пользователь-владелец )и other
не зависят от маски ).
Вы можете изменить маску с помощью :, например. setfacl -m m:r-x file-name
.
Когда вы делаете ls -l
, если режим заканчивается на +
, тогда средние биты режима (, традиционно групповые биты ), являются маской.
Иногда биты режима устанавливаются в соответствии с групповыми битами в umask
. Я еще не разработал правила, когда это происходит и когда используется маска по умолчанию. Использование cp
для копирования файла, похоже, использует umask
.
Убедитесь, что у пользователей есть собственная группа, и что она установлена как группа по умолчанию. Затем установите umask
на 007
.
Я подозреваю, что это ошибка. Я писал об этом в прошлом месяце (, см. unix.stackexchange.com/questions/570795 ). Происходит то, что права доступа к исходному файлу копируются в маску acl командой cp. Это то, что я ожидал для cp -p, а не cp. Я обнаружил, что могу делать копии с помощью cat
cat afile > bfile
или путем пропускания через смолу
(cd A; tar -cf -)|(cd B; tar-xf -)
И ACL соблюдаются, как положено.
Я также назначил вознаграждение за объяснение этого поведения cp. Никто не объяснил. Думаю написать отчет об ошибке. т.е. что это должно быть поведение «cp -p», а не ванильное поведение cp. (И система вычла баллы за вознаграждение, хотя никто не мог дать ответ. Меня это тоже удивило.)