Каталог /home
имеет права на выполнение, установленные для всех, чтобы пользователи могли перемещаться в свои дома внутри, но дом каждого пользователя имеет разрешения только для пользователя (, если по какой-либо причине не настроено иное ).
Единственный способ получить точно то, что вы хотите, — это создать группу, содержащую user2
, и предоставить ей разрешения на выполнение для дома из user1
и каталогов выше того, к которому вы хотите предоставить общий доступ. сделайте их доступными с помощью user2
, а затем установите полные права доступа к полному каталогу. Я бы не рекомендовал делать это, так как user2
сможет просматривать определенные файлы и подкаталоги внутри дома user1
, что является плохой идеей. Вы не хотите давать другому пользователю разрешения на чужой дом.
Лучшим способом добиться этого было бы либо создать каталог в /
и создать группу, содержащую пользователей, и дать им разрешения на нее, либо создать экспорт nfs с разрешениями только для двух пользователей и смонтировать его на машина. Еще раз, не давайте другому пользователю доступ к чужому дому.
Предположим, вам нужны каталоги с целочисленными именами и что вы хотите иметь один каталог для каждого файла, соответствующий шаблону ./WhatsApp*
:
shopt -s nullglob
counter=0
for name in./WhatsApp*; do
counter=$(( counter + 1 ))
mkdir "$counter" && cp "$name" "$counter"
done
Это пытается создать каталог для каждого совпадающего имени, и если это удается, он копирует файл в этот новый каталог. Вызов mkdir
завершится ошибкой, если этот каталог уже существует или если у вас нет прав на запись и выполнение в текущем каталоге.
Я установил параметр оболочки nullglob
перед циклом, чтобы избежать запуска одной итерации цикла, если нет имен, соответствующих заданному шаблону. Без установки nullglob
цикл будет выполняться один раз с $name
, установленным в литеральную строку ./WhatsApp*
.