千家信息网

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

发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,本篇文章给大家分享的是有关LINUX下的权限细分设置是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。业务部门提过来一个FTP配置需求
千家信息网最后更新 2025年12月04日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安全错误 数据库的锁怎样保障安全 软件挂服务器地址 南方电网网络安全公司 阿里云服务器收费标准 软件开发答辩报告ppt 修改网络密码后无法连接服务器 深圳市匹配网络技术有限公司 怎样做好网络技术总监 杨村九小网络安全课 胡啸 网络安全领袖峰会 mysql数据库简易开发 ps5港版原神无法登录服务器 日照硕博软件开发 idc服务器排名官网 数据库 open方式 逻辑思维一般能做软件开发吗 互联网科技给生活带来惊喜 湘潭网络安全人才与创新基地 普陀区工商软件开发定制价格 域服务器管理域中用户 西咸定制软件开发 浪潮信息和海信网络技术 软件开发项目课题经费预算 反编译软件开发公司推荐 沈阳应用软件开发哪家公司好 查看数据库中所有权限 东莞拼团软件开发让你更安心 饥荒联机版有没有大服务器 扫码成为会员的软件开发 云服务器怎么备份 苏州互联网软件开发大概要多少钱
0