如何在用户需要管理员权限的目录中创建文件夹

时间:2009-11-11 06:33:53

标签: java

您好我需要将一些文件放在某个目录中,我自己作为用户没有权利,但对于管理员有权限。在这种情况下,我希望我的程序应该要求管理员用户名和密码。如果我输入正确的管理员用户名和密码,那么我必须能够将该文件夹放在该目录中。否则我应该收到错误用户名和密码的消息框

由于 Sunil Kumar Sahoo

5 个答案:

答案 0 :(得分:2)

AFAIK你不能仅用Java做这件事,你可能需要JNI

答案 1 :(得分:1)

至少在类Unix操作系统(例如Linux)中,你不可能在Java中做到这一点,甚至不能用JNI。您需要一个二进制可执行文件(不是shell脚本,java程序等),由root拥有,并设置set-user-ID-on-execution位。该程序应该(但在技术上,不必)检查您是否被允许做您想做的事情(通过询问您的密码或其他)并为您执行操作。 BTW,susudo都是这样的。

另一种可能性,我认为这是Windows中的标准方法,是运行守护程序(由管理员启动,因此它具有必要的权限),并且此守护程序等待处理命令(通过某种方式的IPC) ,网络等),检查是否应该允许用户这样做(但这是确定的)并最终处理这些命令。

答案 2 :(得分:1)

在java中不可能。未经root / admin许可,用户不能在根文件系统中使用任何文件夹或目录。该文件夹需要管理员权限。

答案 3 :(得分:0)

创建一个文件夹,使权限如下:(但你可以选择!)

如果您(和“其他人”)希望能够将文件保存,复制或移动到此文件夹中,但是看不到其内容,请选择此选项:

 ___________________________________
|        | User   | R | W | X | Val |
|--------+--------+---+---+---+-----|
| user   | you    | X | √ | X |  2  |
| group  | admins | √ | √ | √ |  7  |
| others | N/A    | X | √ | X |  2  |
|________|________|___|___|___|_____|

如果您(和“其他人”)不应拥有此文件夹的任何权限,请选择此选项:

 ___________________________________
|        | User   | R | W | X | Val |
|--------+--------+---+---+---+-----|
| user   | you    | X | X | X |  0  |
| group  | admins | √ | √ | √ |  7  |
| others | N/A    | X | X | X |  0  |
|________|________|___|___|___|_____|

这会解决您的问题还是我误解了?

答案 4 :(得分:0)

从Java 1.6开始,java.io.File具有以下方法:

  1. setReadable()
  2. setWritable()
  3. setExecutable()
  4. 猜猜他们做了什么。有一个boolean ownerOnly的重载方法。如果您已经以管理员身份登录,这应该是解决方案(更多;在Windows中,如果您已经不是管理员,则无法提供仅限管理员的文件权限。)