обойти права доступа к папке

Вы должны указать конкретный каталог, в который вы хотите их переместить, и какие файлы вы хотите переместить.

Вы бы сделали что-то вроде

mv *.mp3./Music/

Использование подстановочного знака *переместит все файлы с окончанием.mp3 из текущей папки в папку с именем Музыка, расположенную в текущем каталоге. Но вы, вероятно, хотите что-то еще в этом роде

mv *.mp3 ~/Music/

~обозначает вашу домашнюю папку, где, скорее всего, находится папка «Музыка».

Поскольку он у вас есть, вы говорите ему переместить файл с именем.mp3 в папку с именем Музыка в корневом каталоге /

0
23.12.2020, 22:17
2 ответа

В ваших намерениях и целях то, что вы пытаетесь сделать, невозможно с текущими разрешениями и владельцем. Это можно сделать с помощью привязки, но тогда символическая ссылка не будет работать.

Как вы уже знаете, aне может пройти никто, кроме владельца (и root ), что означает, что bи cтакже не могут быть доступны никому другому, поэтому не имеет значения, что они уже могут быть прочитаны и пройдены всеми.

Единственное, что вы можете сделать, это либо изменить права доступа для aна 755, либо, если вы не хотите давать доступ всем, создайте группу и добавьте только тех, кого вы хотите иметь доступ, установите его как группу для a, а затем измените разрешения для aна 750.

1
18.03.2021, 22:41

Да, возможно :вам необходимо создать жесткую ссылку на a/b/c/some_files. И тогда вы можете удалить абсолютно все разрешения "o" из промежуточных каталогов!

Кстати, безопаснее всего указывать абсолютные пути при создании ссылок.

Демонстрация :Подготовка

# whoami
root

# mkdir -p /a/b/c
# touch /a/b/c/d
# chmod o= /a/
# chmod o= /a/b/
# chmod o= /a/b/c/
# ls -ld /a/
drwxr-x--- 3 root root 15 Dec 23 20:45 /a/

# ls -ld /a/b/
drwxr-x--- 3 root root 15 Dec 23 20:45 /a/b/

# ls -ld /a/b/c/
drwxr-x--- 2 root root 15 Dec 23 20:45 /a/b/c/

# ls -l /a/b/c/d
-rw-rw-rw- 1 root root 0 Dec 23 20:46 /a/b/c/d

# ln -s /a/b/c/d /softlink-to-d
# ls -l /softlink-to-d
lrwxrwxrwx 1 root root 8 Dec 23 20:47 /softlink-to-d -> /a/b/c/d

# ln    /a/b/c/d /hardlink-to-d
# ls -l /hardlink-to-d
-rw-rw-rw- 2 root root 0 Dec 23 21:09 /hardlink-to-d

Демонстрация :Доказательство

# su - postgres -c 'touch /a/b/c/d'
touch: cannot touch ‘/a/b/c/d’: Permission denied

# su - postgres -c 'touch /softlink-to-d'
touch: cannot touch ‘/softlink-to-d’: Permission denied

# ls -l /a/b/c/d
-rw-rw-rw- 2 root root 0 Dec 23 20:46 /a/b/c/d
                       ### Note, mtime still unchanged...

# su - postgres -c 'touch /hardlink-to-d'

# ls -l /a/b/c/d
-rw-rw-rw- 2 root root 0 Dec 23 21:13 /a/b/c/d
                       ###...finally, mtime changed.
0
18.03.2021, 22:41

Теги

Похожие вопросы