Linux文件权限控制

需求描述

某企业销售部(Sales)要求建立一个Sales文件夹,只允许本Sales部门成员访问,不允许市场部(Market)人员访问。

思路

1、创建环境(部门组和用户)

2、创建相应的文件夹

3、使用chown(修改文件夹拥有者),chmod(修改文件夹权限)

4、修改/etc/bashrc和/etc/profile,把原理的umask默认值从002改为007

5、验证结果

环境准备:

一、建立Sales和Market部门所属组

[root@server ~]# groupadd Sales

[root@server ~]# groupadd Market

二、建立Sales和Market部门用户并加入到相应组中

[root@server ~]# useradd sale001 -g Sales

[root@server ~]# useradd market001 -g Market

[root@server ~]# id sale001

uid=1001(sale001) gid=1001(Sales) groups=1001(Sales)

[root@server ~]# id market001

uid=1002(market001) gid=1002(Market) groups=1002(Market)

开始配置:

一、建立Sales部门文件夹

[root@server ~]# mkdir /file/sales

二、在/file目录中更改组权限,以使其属于Sales组

[root@server file]# ls -l

drwxr-xr-x. 2 root root 6 Oct 5 01:35 sales

[root@server file]# chown :Sales /file/sales

[root@server file]# ls -l

drwxr-xr-x. 2 root Sales 6 Oct 5 01:35 sales

三、对/file/sales目录设置权限,以使GID位目录(2)、所有者(7)和组(7)具有完全的读取/写入/执行权限,而其他用户对该目录没有权限(0)

[root@server file]# ls -l

drwxr-xr-x. 2 root Sales 6 Oct 5 01:35 sales

[root@server file]# chmod 2770 /file/sales

[root@server file]# ls -l

drwxrws---. 2 root Sales 6 Oct 5 01:35 sales

四、修改全局登录脚本,使普通用户拥有一个umask设置,该设置将阻止其他人查看或修改新的文件和目录。(即修改bashrc和profile文件,将if下面的umask 002改为007。)

[root@server file]# vim /etc/bashrc

[root@server file]# vim /etc/profile

# You could check uidgid reservation validity in

# /usr/share/doc/setup-*/uidgid file

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

umask 007

else

umask 022

fi

结果验证:

一、使用Sales部门用户sale001登录系统,并在/file/sales文件夹下创建文件。(可成功访问并创建文件)

[sale001@server file]$ cd sales/

[sale001@server sales]$ touch salesfile.txt

[sale001@server sales]$ vim salesfile.txt

[sale001@server sales]$ ll

-rw-r--r--. 1 sale001 Sales 26 Oct 5 01:54 salesfile.txt

二、使用Market部门用户market001登录系统,试图访问/file目录下的sales部门目录。(系统会提示拒绝访问sales文件)

[market001@server file]$ ls

sales

[market001@server file]$ ll

drwxrws---. 2 root Sales 26 Oct 5 01:54 sales

[market001@server file]$ cd sales/

bash: cd: sales/: Permission denied