Вручную сделать ресурс «занятым» - PullRequest
0 голосов
/ 27 января 2020

Я делаю сценарий оболочки и мне нужно пометить временный файл как "занятый". Например, если вы попытаетесь удалить его в своем терминале, он скажет «Ресурс занят».

Я хочу, чтобы любой пользователь любого уровня не мог удалить этот файл, пока мой скрипт не закроется. Только мой скрипт имеет право помечать и снимать пометку с файла как занятого.

Возможно ли это?

1 Ответ

0 голосов
/ 27 января 2020

Если вы просто хотите прочитать файл, но не обновлять его, пока он "заблокирован" , тогда вы можете установить для него неизменный флаг:

[~]@ubuntu-s-1vcpu-1gb-nyc3-01  
(0) matias #> sudo chattr +i food.txt 
[~]@ubuntu-s-1vcpu-1gb-nyc3-01  
(0) matias #> lsattr food.txt 
----i---------e--- food.txt
[~]@ubuntu-s-1vcpu-1gb-nyc3-01  
(0) matias #> rm -f food.txt 
rm: cannot remove 'food.txt': Operation not permitted

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

Это было бы более надежно, если запутывать чем пуленепробиваемый.

...