Які дозволи впливають на створення жорстких посилань? Чи має значення саме право власності на файл?
Припустимо, користувач alice
хоче створити жорстке посилання на файл target.txt
у каталозі target-dir
.
- Які дозволи
alice
потрібні і для,target.txt
іtarget-dir
? - Якщо
target.txt
належить користувачевіbill
іtarget-dir
належить користувачевіchad
, чи це щось змінює?
Я намагався моделювати цю ситуацію, створюючи таку структуру папок / файлів у ext4
файловій системі:
#> ls -lh . *
.:
drwxr-xr-x 2 bill bill 60 Oct 1 11:29 source-dir
drwxrwxrwx 2 chad chad 60 Oct 1 11:40 target-dir
source-dir:
-r--r--r-- 1 bill bill 0 Oct 1 11:29 target.txt
target-dir:
-rw-rw-r-- 1 alice alice 0 Oct 1 11:40 dummy
Хоча alice
може створити м'яке посилання на target.txt
, вона не може створити жорстке посилання:
#> ln source-dir/target.txt target-dir/
ln: failed to create hard link ‘target-dir/target.txt’ => ‘source-dir/target.txt’: Operation not permitted
Якщо права alice
власності target.txt
та дозволів не змінені, жорстке посилання є успішним. Що я тут пропускаю?
target.txt
та target-dir
дозволів, якщо я не буду sudo
root.
alice
можу отримати доступ як до оригінального файлу, так і до жорсткого посилання на нього (створеного за допомогою sudo
), але я не можу створити посилання як користувачеві, alice
незважаючи на те, що ми всі погоджуємося з цими дозволами, цього має бути достатньо.