Создать каталог с сегодняшней датой и переместить в него файлы

Безопасные интерпретаторы TCL работают с expect . Для иллюстрации я создал два сценария: unsafe.exp , представляющий файл, представленный пользователем, и safe.exp , который использует безопасный интерпретатор для запуска unsafe.exp . Вот код unsafe.exp :

#!/usr/bin/expect
spawn whoami
expect {
    "user" { send_user "safe success\n" }
    "root" { send_user "unsafe success\n" }
}

Запуск unsafe.exp от имени root приводит к

# expect unsafe.exp
spawn whoami
root
unsafe success

Теперь safe.exp предотвратит использование пользователем опасных команд, таких как spawn , в то же время предоставив доступ к важным функциям, таким как send и expect . Вот код:

#!/usr/bin/expect

# create a safe interpreter
interp create -safe untrusted

# provide it with essetial expect functions
interp alias untrusted send_user {} send_user
interp alias untrusted send {} send
interp alias untrusted expect {} expect
interp alias untrusted interact {} interact

# censor the "spawn" function
# not providing it would be just as safe, but scripts using it would fail
proc safe_spawn {args} {
    puts "censored spawn"
}
interp alias untrusted spawn {} safe_spawn

# create a safe process to interact with
spawn sudo -u user whoami

# run unsafe.exp
untrusted invokehidden source unsafe.exp

Запуск safe.exp от имени пользователя root приводит к

# expect safe.exp
spawn sudo -u user whoami
censored spawn
user
safe success
1
07.04.2017, 16:28
2 ответа
mv *?"$now" "$now/."

гарантирует, что ваш только что созданный каталог не выбран для перемещения, требуя наличия хотя бы одного символа (? ) перед меткой времени.

3
27.01.2020, 23:19

Команда find может фильтровать по типам файлов, а также по именам файлов.

now=$(date '+%Y_%m_%d')
find . -name "*$now" -type f -print0 | xargs -0 mv -t $now/

хотя, возможно, вам нужно подумать о том, есть ли какие-либо странности в именах файлов (например, другие каталоги, содержащие строку даты), прежде чем запускать это на большой партии.

1
27.01.2020, 23:19

Теги

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