Правильное использование mkdir -m -p и chown вместе
Я хотел бы создать каталог с помощью bash-скрипта и одновременно установить режим доступа 00755. Я использую следующую команду:
mkdir -p -m=00755 "/dir/dir2"
Правильно ли я использую эти команды вместе, и могу ли я также добавить команду chown
в ту же строку, когда создаю каталог?
3 ответ(ов)
Команда, которую вы указали, используется для создания директории с определёнными параметрами прав доступа и владельца в Unix-подобных системах. Давайте разберём её по частям.
Команда install
в данном случае выполняет несколько функций. Вот что означает каждая часть вашей команды:
-d
: указание на то, что вы хотите создать директорию.-m 0755
: установка прав доступа для директории. В данном случае0755
означает, что владелец директории имеет право на чтение, запись и выполнение, а остальные пользователи (члены группы и все остальные) могут читать и выполнять, но не могут записывать.-o someuser
: назначение владельца директории пользователю с именемsomeuser
.-g somegroup
: назначение группы для директории какsomegroup
./dir/dir2
: путь, по которому будет создана директория.
Полная команда будет выглядеть так:
install -d -m 0755 -o someuser -g somegroup /dir/dir2
Эта команда создаст директорию /dir/dir2
, если она не существует, с правами 0755 и назначит указанного пользователя и группу в качестве владельца.
Если у вас есть какие-либо дополнительные вопросы или вам нужна помощь с другими командами, не стесняйтесь спрашивать!
Если вы хотите установить владельца во время создания, вы можете просто выполнить команду от имени этого пользователя, например, с помощью sudo
:
sudo -uTHE_USER mkdir -p -m=00755 "/dir/dir2"
Это имеет то преимущество, что не будет временного разрыва между созданием и изменением владельца, что в противном случае может привести к уязвимостям, если это будет использовано злоумышленником.
Да, это должно сработать. Что касается команды chown
, просто следуйте за ней после &&
. Символ &&
похож на ;
, но следующая команда выполняется ТОЛЬКО в том случае, если предыдущая команда завершилась успешно (код выхода 0).
Как запросить ввод Yes/No/Cancel в скрипте оболочки Linux?
Как изменить цвет вывода echo в Linux
Как выводить команды оболочки по мере их выполнения
Как работает "cat << EOF" в bash?
Автоматический вход в Docker через Bash-скрипт