Я помещаю файл в cron.hourly, который должен создать папку в первый раз, и даю ему доступ пользователю, поэтому мне не нужно использовать sudo, если я хочу удалить все содержимое в папке , И в этом делает папку пригодной для использования также. -m 777
не работает для отсутствующей папки при использовании -p
#!/bin/sh
mkdir -m 777 -p 000Hourly/$(date +"%m-%d-%y_%T")
не работает: делает 000Hourly для администратора
#!/bin/sh
mkdir -m 777 000Hourly && mkdir -m 777 -p 000Hourly/$(date +"%m-%d-%y_%T")
выдает ошибку следующего часа mkdir: cannot create directory '000Hourly': File exists
и останавливается выполнение остальной части этого.
Это то, что я пытаюсь сделать, поэтому мне нужно 777, чтобы я мог удалить всю папку, когда она переполнена.
#!/bin/sh
profiledir=/home/kangarooo/.mozilla/firefox/a2t42sie.default/
cd $profiledir;
mkdir -m 777 000Hourly ; mkdir -m 777 -p 000Hourly/$(date +"%m-%d-%y_%T") && cp -p sessionstore.js sessionstore.bak 000Hourly/$(date +"%m-%d-%y_%T")
exit 0
[ -d 000Hourly ] || mkdir -m 777 000Hourly
mkdir -m 777 000Hourly/$(date +"%m-%d-%y_%T")
Вот лучший способ:
#!/bin/bash
dirname=000Hourly/$(date +"%m-%d-%y_%T") # Save the directory name for later access
user=bob # Set to the username of the user who should have access.
group=bob # Set to a group that should have access to the directory
mkdir -p "$dirname"
chown "$user:$group" "$dirname"
Если доступ нужен только одному пользователю, вы закончили.
Если доступ требуется более чем одному пользователю, создайте группу для всех, кому нужен доступ:
sudo groupadd mygroup
Прочитайте man groupadd
для получения дополнительной информации и измените mygroup
на любое имя, которое вы хотите ( но он должен начинаться со строчной буквы или подчеркивания и не содержать пробелов.
Затем добавьте всех необходимых пользователей в новую группу, где user1
, user2
и user3
и имена пользователей для Добавить. Вы можете добавить столько, сколько хотите. :
for i in user1 user2 user3; do sudo usermod -aG mygroup "$i"; done
Новое членство в группах вступит в силу после выхода пользователя из системы (или перезагрузки компьютера).
Теперь измените ваш скрипт выше. Установите $group
для вашей новой группы и добавьте следующую строку:
chmod 775 "$dirname"