У вас есть две привилегии, которые вы пытаетесь контролировать отдельно:
- Выполнить определенный пакетный файл
- Просмотр содержимого определенного командного файла
На одной машине эти две привилегии по сути неразделимы: вы не можете позволить кому-либо выполнить пакетный файл, если у него нет разрешения на чтение, а если у него есть разрешение на чтение, он всегда может открыть его в Блокноте или другом текстовом редакторе.
Как предлагает Дарт Андроид, чтобы сделать то, что вы просите, вам нужно ввести посредника между пользователем и пакетными файлами. Это будет отдельный компьютер, который не находится под контролем пользователя, но пользователь может запросить посредника выполнить пакетные файлы от его имени.
Аналогия в том, как я выполняю денежные переводы в своем банке. Мне нужно иметь возможность делать эти переводы, но если бы банк предоставил мне доступ к их базе данных, чтобы я мог перевести средства сам, это действительно было бы проблемой безопасности!
Вместо этого банк предоставляет мне веб-сайт, на который я могу войти. После входа в систему я могу потребовать, чтобы веб-сайт осуществлял переводы от моего имени. Веб-сайт знает, что мне разрешено запрашивать денежные переводы, но он также знает, что мне не разрешено просматривать информацию о счетах, которые мне не принадлежат.