如果没有关闭selinux,那么就需要针对selinux进行文件权限的额外配置,否则网络服务就不可能会正常启动。那么如何关闭selinux呢?可以这样做:
[root@xiaozhu ~]# vi /etc/selinux/config
SELINUX=disabled
修改成disabled
修改开机时grub的配置文件。
[root@xiaozhu ~]# vi /boot/grub/menu.lst
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet selinux=0
然后重新开机
[root@xiaozhu ~]# sync;reboot
ACL设置权限:
要让文件系统支持ACL,可以这样做:
mount -o remount,acl /home
mount |grep /home
/dev/sda10 on /home type ext3 (rw,acl)
看到那个出现的acl了吧,如果想要开机时文件系统就支持acl,需要修改/etc/fstab成下面的模样:
[root@xiaozhu ~]# vi /etc/fstab
LABEL=/home1 /home ext3 defaults,acl 1 2
setfacl
-m:设置一个ACL权限
-x:取消一个ACL权限;
-b,全部的ACL权限都移除;
-d,设置默认的ACL权限,仅能针对目录使用
针对xiaozhu这个用户来设置其权限为rx,
[root@xiaozhu tmp]# touch acl.test
[root@xiaozhu tmp]# ll acl.test
-rw-r–r– 1 root root 0 03-03 07:46 acl.test
[root@xiaozhu tmp]# setfacl -m u:xiaozhu:rx acl.test
[root@xiaozhu tmp]# ll acl.test
-rw-r-xr–+ 1 root root 0 03-03 07:46 acl.test
看到有什么区别了吧,也就是说xiaozhu这个用户对acl.test这个文件只有rx的权限,针对单个用户来说的。
现在我们用一个实例说明acl的用法
假设:
已经将/home这个独立的分区设置成支持acl。
/home下设置了一个名为study的目录。
将该目录分配给xiaozhu这个用户,且该用户属于xiaozhu群组,默认权限是770。
有个用户帐号名称是xiaozhu1,她属于xiaozhu1那个群组,但是她想进入到program那个目录来工作,也就是说,xiaozhu1在该目录下必须要有W的权限才可以
有个用户是其他班级的老师,名称是litter(小不点),群组名也是litter,他想要进入该目录查阅所有的文件数据,但是不能够进行删除与新建工作,亦即他不能拥有W的权限。
1,建立该目录并且规划好权限
[root@xiaozhu ~]# mkdir /home/program
[root@xiaozhu ~]# chown xiaozhu:xiaozhu /home/program将该目录分配给xiaozhu1这个用户和群组
[root@xiaozhu ~]# ld /home/program 查看该目录的拥有者和拥有群组都为xiaozhu1
drwxr-xr-x 2 xiaozhu xiaozhu 4096 03-03 13:48 /home/program
[root@xiaozhu ~]# setfacl -m u:xiaozhu1:rwx /home/program设置/home/program,xiaozhu1这个用户拥有rwx的权限
[root@xiaozhu ~]# ld /home/program看到最后面多了一个“+”号吗?
drwxrwxr-x+ 2 xiaozhu xiaozhu 4096 03-03 13:48 /home/program
[root@xiaozhu ~]# getfacl /home/program获取某个文件的acl设置 资料。
getfacl: Removing leading ‘/’ from absolute path names
# file: home/program
# owner: xiaozhu
# group: xiaozhu
user::rwx
user:xiaozhu1:rwx 瞧,这个就是我们刚才设置的效果哈
group::r-x
mask::rwx
other::r-x
[root@xiaozhu ~]# setfacl -m u:litter:rx /home/program
[root@xiaozhu ~]# getfacl /home/program
getfacl: Removing leading ‘/’ from absolute path names
# file: home/program
# owner: xiaozhu
# group: xiaozhu
user::rwx
user:xiaozhu1:rwx
user:litter:r-x瞧,这个是我们的第二个用户的设置哈,只有阅读的权限哈
group::r-x
mask::rwx
other::r-x
现在,我们再来说说上面两行的mask的用途,还是听有用的哈
如果/home/program这个目录要让所有人都暂时仅能读取不能写入,可以将acl内的mask设置为r-x,其他人就不需要再额外的设置了
[root@xiaozhu home]# setfacl -m m:rx program/
[root@xiaozhu home]# getfacl program/
# file: program
# owner: xiaozhu
# group: xiaozhu
user::rwx
user:xiaozhu1:rwx #effective:r-x
user:litter:r-x
group::r-x
mask::r-x
other::—
这里涉及到有效权限的问题,有效权限是指mask需要与用户的权限进行逻辑与运算(and)后,才能变成有效的权限。rwx(用户权限)与rx(mask)逻辑与后,就是rx了,所以只能读不能写了