Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a Windows 7 Ultimate machine with some users with and without administrative privileges. There are confidential batch files and confidential LaTeX packages in some directories in c:\. Only users with administrative privileges are allowed to see those confidential codes. Users without administrative privileges are only allowed to make use of them.

How to prevent non-administrator users from seeing confidential script codes in c:\ while they can still make use of them?

share|improve this question
I don't think you can do what you are describing. In order to execute a program, a user must have permission to read the file to load it into memory/execute it. – Darth Android Aug 31 '12 at 4:19
@DarthAndroid: How about just hiding those files so they still cannot read the confidential batch files? My batch files contain confidential code which invokes confidential programs behind the scene. – kiss my armpit Aug 31 '12 at 4:40
It looks as if you have an XY problem. What are you really trying to do? – kinokijuf Aug 31 '12 at 5:20
@GarbageCollector Move all the confidential code to another, secured system over the network and do not ever let it be sent to a system the user controls. Currently you're ignoring the #1 rule in security: If I can physically touch a machine, I can, with time, access any piece of information on it. If you leave the information on the system they are using, it is not confidential at all. – Darth Android Aug 31 '12 at 6:28

You have two privileges you're trying to control separately:

  • Execute a specific batch file
  • View the contents of a specific batch file

On a single machine, these two privileges are essentially inseparable: You cannot let someone execute a batch file unless they have read permission on it, and if they have read permission they can always open it up in Notepad or some other text editor.

As Darth Android suggests, to do what you're asking you need to introduce an intermediary between the user and the batch files. This would be a separate computer that is not under the user's control, but the user is allowed to request that the intermediary execute batch files on his behalf.

An analogy is how I perform money transfers with my bank. I need to be able to make these transfers, but if the bank were to give me access to their database so I could transfer the funds myself, that would be quite a security problem, indeed!

Instead, the bank gives me a website I can log in to. Once I log in, I can request that the website perform transfers on my behalf. The website knows that I'm allowed to request money transfers, but it also knows I'm not allowed to see information for accounts I don't own.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .