千家信息网

LINUX下的权限细分设置是什么

发表于:2024-10-08 作者:千家信息网编辑
千家信息网最后更新 2024年10月08日,本篇文章给大家分享的是有关LINUX下的权限细分设置是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。业务部门提过来一个FTP配置需求
千家信息网最后更新 2024年10月08日LINUX下的权限细分设置是什么

本篇文章给大家分享的是有关LINUX下的权限细分设置是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

业务部门提过来一个FTP配置需求,具体情况如下:

请提供一台FTP服务器,需要创建的FTP目录及账号规则如下!

人员配置情况:

北京总部:5人(需创建2个账号:bjzb读权限 bjguanli读写执行权限)

北京大区:8人(需创建1个FTP账号:bjdq)

上海大区:6人(需创建1个FTP账号:shdq)

广州大区:5人(需创建1个FTP账号:gzdq)

FTP目录及账号权限创建设计:

/data/bj (北京大区)

账号bjdq权限:写权限、读权限、执行权限

账号shdq、gzdq权限:读权限

账号bjzb权限:读权限

账号bjguanli权限:读权限、写权限、执行权限

/data/sh (上海大区)

账号shdq权限:写权限、读权限、执行权限

账号bjdq、gzdq权限:读权限

账号bjzb权限:写权限、读权限

账号bjguanli权限:读权限、写权限、执行权限

/data/gz (广州大区)

账号gzdq权限:写权限、读权限、执行权限

账号bjdq、shdq权限:读权限

账号bjzb权限:写权限、读权限

账号bjguanli权限:读权限、写权限、执行权限

大家看到这则需求时,基本上会感觉,权限实现起来有点困难。因为在linux下,对一个文件可以进行操作的对象被分为三类:file owner(文件的拥有者)、group(组,注意不一定是文件拥有者所在的组)、other(其他)。在每个类里,权限都是一致的,而在一个相同的类里实现不同的权限就不那么方便了,而上述提到的需求就是要在同一个类里实现不同的权限。那么我们就需要通过LINUX下的ACL来实现题中的需求。简单地说acl就是可以设置特定用户或用户组对于一个文件及目录的操作权限,需要掌握的命令也只有三个:getfacl,setfacl,chacl.

我们来具体说一下文章开头提到的那个需求的实现过程

1、目录和账号的创建

默认情况下,在linux下建立用户的时候,有个默认的家目录,一般是在/home下,但是如果我们想在系统中建立多个用户,而家目录都不在/home 下的话,就需要用useradd -d 来指定家目录

#groupadd ftpgroup

# useradd bjdq -d /data/bj -g ftpgroup

#passwd bjdq

# useradd shdq -d /data/sh -g ftpgroup

#passwd shdq

# useradd gzdq -d /data/gz -g ftpgroup

#passwd gzdq

#useradd bjzb

#passwd bjzb

#useradd bjguanli

#passwd bjguanli

补充还有一个方法是修改/etc/default/useradd文件

# useradd defaults file

GROUP=100

HOME=/home (将默认的HOME改为你设定的目录)

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

这样也可以在建用户的时候,指定特定的用户主目录。

2、FTP的设置

FTP服务器地址:192.168.1.130

修改FTP配置文件
# vi /etc/vsftpd/vsftpd.conf

在里面添加如下语句
local_enable=YES //是否允许本地用户登录FTP服务器,默认是允许
write_enable=YES //是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

local_umask=007 #用户的权限

chroot_list_enable=YES //如果希望用户登录后不能切换到自己目录以外的其它目录,需要设置该项来锁定用户目录
chroot_list_file=/etc/vsftpd/chroot_list

userlist_enable=YES #设置userlist_enable=YES,那么只允许/etc/vsftpd/user_list中列出的用户具有该功能
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
~
"/etc/vsftpd/vsftpd.conf" 147L, 5079C written
设置完重启ftp服务
# service vsftpd restart
关闭 vsftpd:[确定]
为 vsftpd 启动 vsftpd:[确定]

三、权限的设置

由于/data/bj的所有者是bjdq,/data/sh的所有者是shdq,/data/gz的所有者是gzdq,这样自然就有了读、写、执行权限,我们只需设置组和其他的权限即可

为了限定bjdq、shdq、gzdq的用户不能切换目录,我们还需要把bjdq、shdq、gzdq这三个用户写入chroot_list文件。
[root@localhost vsftpd]# echo "bjdq" >>chroot_list
[root@localhost vsftpd]# echo "shdq" >>chroot_list
[root@localhost vsftpd]# echo "gzdq" >>chroot_list

权限设置如下:

#chmod 755 /data/bj

#chmod 755 /data/sh

#chmod 755 /data/gz

针对bjzb和bjguanli这两个账户的权限设置如下

#setfacl -R -m u:bjzb:rx /data/bj

#setfacl -R -m u:bjguanli:rwx /data/bj

#setfacl -R -m u:bjzb:rx /data/sh

#setfacl -R -m u:bjguanli:rwx /data/sh

#setfacl -R -m u:bjzb:rx /data/gz

#setfacl -R -m u:bjguanli:rwx /data/gz

[root@localhost data]# ls -l
total 12
drwxr-xr-x+ 4 bjdq ftpgroup 4096 Jan 18 19:09 bj
drwxr-xr-x+ 4 shdq ftpgroup 4096 Jan 18 19:12 sh
drwxr-xr-x+ 4 gzdq ftpgroup 4096 Jan 18 19:22 gz
最后大家可以通过getfacl来查看这三个目录的权限并通过客户端登陆来验证。

(注:setfacl -x g:ftpgroup file 删除ftpgroup组对file文件的所有权限
setfacl -x u:bjguanli /data/bj 删除bjguanli用户对/data/bj目录的权限保留读权限
setfacl -x u:bjzb file 删除bjzb用户对file文件的所有权限)

#getfacl --omit-header /data/bj

getfacl: Removing leading '/' from absolute path names

# file: data/bj

# owner: bjdq

# group: ftpgroup

user::rwx

user:bjguanli:rwx

group::r-x

mask::rwx

other::r-x

default:user::rwx

default:user:bjguanli:rwx

default:group::r-x

default:mask::rwx

default:other::r-x

其他目录权限设置类似
四、客户端测试
[root@localhost /]# ftp 192.168.1.130
Connected to localhost.localdomain.
220 (vsFTPd 2.0.5)
Name (localhost:root): bjdq
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/data/bj
Login failed.
ftp> quit
注意这个报错,你需要考虑IPTABLES和SELINUX的限制了。
可以直接关闭IPTABLES和SELINUX,如果是不能关则需要做如下调整
在IPTABLE里开放FTP服务,允许21、20端口通行。
针对SELINUX的安全限制,可以使用这句
[root@localhost test]# setsebool ftpd_disable_trans 1 #关闭SELinux对ftp的保护
[root@localhost test]# service vsftpd restart

最后再试,一切正常。

[root@localhost test]#ftp 192.168.1.130

Connected to localhost.localdomain.
220 (vsFTPd 2.0.5)
Name (localhost:root): bjdq
331 Please specify the password.
Password:

Login successful.

ftp> pwd

"/"

ftp>bye

经验证,最后权限设置,符合业务部门的需求。

以上就是LINUX下的权限细分设置是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

权限 账号 目录 用户 文件 需求 服务 服务器 三个 就是 情况 所有者 北京 配置 细分 不同 业务 客户 客户端 拥有者 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术统筹是什么工作 网络安全要学什么 数据库查询每门课程及格人数 网络安全与应用本科毕业论文 如何备份一条数据库 怎么设置数据库默认系统时间 网络安全产生的原因是什么 缓存和数据库的强一致性 网页程序怎么传到服务器 网络安全和信息化委员会宗旨 计算机网络技术入门要求 举办网络技术培训班 云服务器装什么系统好 网络安全是如何来的 房山服务器硬盘回收公司 教育部网络安全工程师报考 网络安全工作取得成绩 求生之路2服务器观战怎么加入 中国民航飞行数据库 软件属于科技还是互联网领域 数据库集合运算结果 网络技术学好了怎么样 河南项目软件开发费用是多少 管家婆辉煌版怎么设置连接服务器 网络安全 发展 阿里云服务器设备管理器 软件开发和教育行业哪个好 民警辅警签订网络安全责任书 达梦数据库连接串加到哪 软件开发中的
0