[
https://issues.apache.org/jira/browse/HADOOP-1298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12514827
]
Tsz Wo (Nicholas), SZE commented on HADOOP-1298:
------------------------------------------------
Hi Christophe and others,
I would like to work on this issue. Below are my comments.
*Major problems:*
- I have tried to apply hadoop-dev-20070720-1633.patch.gz to the current trunk
but the program cannot be compiled. Did you update your version with current
trunk? It seems to me that the patch is out dated
- The entire patch does not use any Java security technology. It would be
difficult to provide real security later on. java.security.Permission and
other related classes already have some very good design. Java Authentication
and Authorization Service (JAAS) provides pluggable login modules. We probably
want to use them.
- Using DFSClientContext as a parameter in all method calls for checking
permissions. The idea is not right. We should pass some kind of credential /
ticket / signature, instead of a context.
- Also, it is better to provide a framework to support the general secure
operations. For example, add a method setCredential(...) in ClientProtocol.
Then, the credential be used for the later method calls and we don't have to
change other method headers.
- I think we need authentication server(s) to manage users (i.e. UserDatabase
should be resided in an authentication servers). System components
authenticate itself with the server and obtain credentials. It reduces the
complication and use of resource in Namenode.
- INode has
private String owner;
private String group;
private short mode;
It is better to have a FilePermission class (which extends
java.security.PermissionCollection) to encapsulate them. I think it is valid
to assume that there are many file having the same permissions. Then, we might
be able to save spaces. Also, we will have the flexibility that use permission
model other than posix.
- It seems to me that the patch was not careful written: for example, in class
Path, there is a constant SEPARATOR (= "/") but the codes inside keep using "/".
- HDFS should have its own user management. It is not right to use arbitrary
username (like OS's username), especially there is no real security
implemented. It will bring a lot of problems by user's careless mistakes later.
- All entries (user, host, etc.) should have its own principal. Something like
"nobody" is just a shared account.
*Minor problems:*
- The patch changed a lot of unnecessary code formatting. That's why it has
8000+ lines. Also, the codes have a lot of lines longer than 80 characters.
- FileMode and FileAcccessMode are overlapped. FileAcccessMode using enum is
better.
- It is better to create some packages since there are quite many new classes.
- why change FSDirectory.INode to INode? Again, it makes the patch hard to
follow.
- bad idea to use static variables for non-constants, e.g. in UserDatabase,
private final static UserDatabase db = new UserDatabase();
it will be difficult to manage, e.g. restarting NameNode.
- There are un-used classes Pair and Triplet. Programming exercises?
- missing javadoc for many methods.
*Other comments:*
- For some design issues like "changing FSDirectory.INode to INode", if there
is a good reason behind, we can create a new issue and change it later.
- We should only provide core user/group support in the first patch for making
the patch as small as possible. We can work on features like sticky bit later.
*Please vote:*
For a messy patch like this, how many of you think that it is bug free and does
not hide some back doors?
-1 for me.
I suggest to remove all the unnecessary changes and work on a small core patch
and I am willing to do it. Of course, we should reuse the well written codes
in the patch.
Nicholas
> adding user info to file
> ------------------------
>
> Key: HADOOP-1298
> URL: https://issues.apache.org/jira/browse/HADOOP-1298
> Project: Hadoop
> Issue Type: New Feature
> Components: dfs, fs
> Reporter: Kurtis Heimerl
> Fix For: 0.15.0
>
> Attachments: hadoop-dev-20070720-1633.patch.gz,
> hadoop-user-munncha.patch, hadoop-user-munncha.patch,
> hadoop-user-munncha.patch, hadoop-user-munncha.patch10,
> hadoop-user-munncha.patch11, hadoop-user-munncha.patch12,
> hadoop-user-munncha.patch13, hadoop-user-munncha.patch14,
> hadoop-user-munncha.patch15, hadoop-user-munncha.patch16,
> hadoop-user-munncha.patch17, hadoop-user-munncha.patch4,
> hadoop-user-munncha.patch5, hadoop-user-munncha.patch6,
> hadoop-user-munncha.patch7, hadoop-user-munncha.patch8,
> hadoop-user-munncha.patch9, hdfs-access-control.patch.gz
>
>
> I'm working on adding a permissions model to hadoop's DFS. The first step is
> this change, which associates user info with files. Following this I'll
> assoicate permissions info, then block methods based on that user info, then
> authorization of the user info.
> So, right now i've implemented adding user info to files. I'm looking for
> feedback before I clean this up and make it offical.
> I wasn't sure what release, i'm working off trunk.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.