Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
2.6.0
-
Incompatible change, Reviewed
-
Changed the behavior of removing directories with sticky bits, so that it is closer to what most Unix/Linux users would expect.
Description
Recursively deleting a directory that contains files or directories protected by sticky bit should fail but it doesn't in HDFS. In the case below, /tmp/test/sticky_dir/f2 is protected by sticky bit, thus recursive deleting /tmp/test/sticky_dir should fail.
+ hdfs dfs -ls -R /tmp/test drwxrwxrwt - jzhuge supergroup 0 2016-11-03 18:08 /tmp/test/sticky_dir -rwxrwxrwx 1 jzhuge supergroup 0 2016-11-03 18:08 /tmp/test/sticky_dir/f2 + sudo -u hadoop hdfs dfs -rm -skipTrash /tmp/test/sticky_dir/f2 rm: Permission denied by sticky bit: user=hadoop, path="/tmp/test/sticky_dir/f2":jzhuge:supergroup:-rwxrwxrwx, parent="/tmp/test/sticky_dir":jzhuge:supergroup:drwxrwxrwt + sudo -u hadoop hdfs dfs -rm -r -skipTrash /tmp/test/sticky_dir Deleted /tmp/test/sticky_dir
Centos 6.4 behavior:
$ ls -lR /tmp/test /tmp/test: total 4 drwxrwxrwt 2 systest systest 4096 Nov 3 18:36 sbit /tmp/test/sbit: total 0 -rw-rw-rw- 1 systest systest 0 Nov 2 13:45 f2 $ sudo -u mapred rm -fr /tmp/test/sbit rm: cannot remove `/tmp/test/sbit/f2': Operation not permitted $ chmod -t /tmp/test/sbit $ sudo -u mapred rm -fr /tmp/test/sbit