知识储备:

特殊权限:

SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者;(常用于普通用户有管理员权限执行某些命令,非常危险)

    chmod u+s FILE

    chmod u-s FILE

    如果FILE本身原来就有执行权限,则SUID显示为s;否则显示S;

SGID: 运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组;

    chmod g+s FILE

    chmod g-s FILE

Sticky: 在一个公共目录,每个人都可以创建文件,删除自己的文件,但不能删除别人的文件;

    chmod o+t DIR

    chmod o-t  DIR

当然,修改权限也可以用数字形式,如:chmod 5755 /backup/test

实验:

    做法:

        1.创建开发组成员: hadoop, hbase, hive,并为其设置密码:

# useradd hadoop

# passwd hadoop

# useradd hbase

# passwd hbase

# useradd hive

# passwd hive

2.创建一个公共目录/tmp/project和开发组 developteam,并将目录的属组改为此开发组:

# mkdir /tmp/project

# groupadd developteam

# chown -R :developteam /tmp/project/

3.将三个用户的附加组改为developteam:

# usermod -a -G developteam hadoop

# usermod -a -G developteam hbase

# usermod -a -G developteam hive

4.授予目录/tmp/project/写权限并添加SGIDSticky:

# chmod g+w /tmp/project/

# chmod g+s /tmp/project/

# chmod o+t /tmp/project/

# ls -ld /tmp/project/

drwxrwsr-t. 2 root developteam 21 8月   2 19:46 /tmp/project/

5.在hbase用户下创建一个文件,并查看其属组,并且用另外一个用户进行删除和修改的测试:

#su - hbase

$ cd /tmp/project/

$ touch b.hbase

$ ll

-rw-rw-r--. 1 hbase  developteam 0 8月   2 19:56 b.hbase

6.此时配置已完成,只要在/tmp/project下由这三个用户自己创建的文件,他们可以随意查看和修改,但只有文件创建者和root用户可以删除文件。