详解Linux系统中设置SFTP服务用户目录权限的方法

前言

在工作或者学习的时候,我们常常会遇到这样的需求,限制一个Linux用户,让他只能在指定的目录下进行添加、修改、删除操作,并且只能使用sftp登录服务器,不能用ssh操作。这些可以通过配置sftp服务实现。

方法如下

提供sftp服务的有vsftpd和internal-sftp,这里用的是系统自带的internal-sftp,操作步骤如下:

1.创建新用户ui,禁止ssh登录,不创建家目录

useradd -s /sbin/nologin -M www

2.设置用户密码

passwd www

3.创建用户的根目录,用户就只能在此目录下活动

mkdir /home/www

4.设置目录权限,目录的权限设定有两个要点:

目录开始一直往上到系统根目录为止的目录拥有者都只能是root

目录开始一直往上到系统根目录为止都不可以具有群组写入权限

chown root:root /home/www
chmod 755 /home/www

5.配置sshd_config

vim /etc/ssh/sshd_config

6.修改为下面内容,保存退出

#注释掉这行
#Subsystem  sftp /usr/libexec/openssh/sftp-server
#添加在配置文件末尾
Subsystem sftp internal-sftp  #指定使用sftp服务使用系统自带的internal-sftp
Match User www      #匹配用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /home/www   #用chroot将指定用户的根目录,chroot的含义:http://www.ibm.com/developerworks/cn/linux/l-cn-chroot/
ForceCommand internal-sftp  #指定sftp命令
X11Forwarding no    #这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
AllowTcpForwarding no

7.重启sshd服务

service sshd restart

8.测试:

用户登录后进入的是/home/www即用户根目录,根目录是无法写入的,所以先用root在/home/www新建一个ui目录

mkdir /home/www/ui

修改目录所有者和权限

chown ui:ui /home/www/ui
chmod 777 /home/www/ui
#可以在其他目录创建软连接指向ui目录
#ln -s /home/www/ui /www/

sftp登录www用户,进入ui目录,即可在/home/www/ui下,对文件进行添加、修改、删除的操作

sftp -oPort=22 ui@123.56.18.72
sftp> cd ui

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • 简析Linux中如何改变文件或目录的访问权限

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户.其他用户.所有者一般是文件的

  • Linux 文件和目录权限详细介绍

    Linux文件和目录权限解读 如何设置Linxu文件和目录的权限 字符表示法   1)ls -l:查看所在目录所有文件的权限 2)chmod u=r file:把file文件的当前(用户user)的权限赋值为可写模式 3)chmod g=wrx file:把file文件的当前(组gruop)的权限赋值为可写,可读,可执行模式 4)chmod g-x file:把file文件的当前(组group)的权限减去可执行模式 5)chmod o+w file:把file文件的当前(所有人other)的权限

  • linux文件上传,给文件或目录添加apache权限的方法

    在LAMP环境中,测试一个简单的php文件上传功能时,发现/var/log/apache2/error.log中出现如下php警告: 1. [Tue Jan 31 09:40:27 2012] [error] [client 127.0.0.1] PHP Warning: move_uploaded_file(/home/leotody/32883679.jpeg): failed to open stream: Permission denied in /var/www/upload_file

  • Linux中文件权限目录权限的意义及权限对文件目录的意义

    linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括增加删除文件的具体内容: x:文件就具有了可执行的权限-------注意:这里和window不一样,在win中,文件的可执行权限是通过扩展名表现出来的,如exe.bat等,但是在linux中文件的可执行权限是通过这个x决定的,与文件名没有什么关系. 二.目录权限的意义 r:可以查看此目录下的完整文件列表信息. w:可以对此目录下的所有的文件及目录进行相关的更改,也就是可以更改这个

  • Linux文件权限与目录管理详解

    一.Linux文件系统的三种身份 1).文件所有者 2).同组用户 同一个用户组的用户可以访问该用户组的文件: 每个账号可以加入多个用户组. 在同一个用户组的文件也可以设置不同的权限,可以不让本组用户查看. 3).其他人 除了文件主.同组用户以外的人就是其他人. PS: /etc/passwd 记录所有用户的账号 /etc/shadow 记录所有用户的密码 /etc/group 记录所有的组名 二.文件属性 ls -al 显示所有的文件名和相关属性(包括以.开头的隐藏文件) total 72 d

  • Linux 下目录文件权限(命令)的查看和修改

    Linux 下目录文件权限的查看和修改 在我的服务器下面有这几个文件夹 同时用ls -l也可以查看到这几个文件的权限. 看其中的assets文件一共有十位数,其中: 最前面那个 - 代表的是类型 中间那三个 rwx 代表的是所有者(user)拥有的权限 然后那三个 rwx 代表的是组群(group)拥有的权限 最后那三个 rwx 代表的是其他人(other)拥有的权限 r 表示文件可以被读(read) w 表示文件可以被写(write) x 表示文件可以被执行(如果它是程序的话) -表示相应的权

  • linux下建站目录分配权限的经验技巧总结

    前言 在网上搜索网站文件夹权限配置一般都是是: 文件夹权限最小权限755 文件最小权限644 文件的可读可写可执行很容易理解,但文件夹的权限就需要好好梳理梳理啦,下面是自己的一些经验分享给大家,需要的一起来看看详细的介绍: 前期工作 先创建一个文件夹 test mkdir test 在该目录下创建一个1.txt文件并写入111 cat > 1.txt 111 现在退出该目录来一个一个分析改目录权限 不要用root用户来创建文件夹,因为文件权限配置对root用户无效 目录的可执行权限 chmod

  • linux修改目录和文件权限的简单命令解释

    今天遇到的问题,如何一个用户如www的权限复制给我的用户? 目录的权限表示:dwrxr--r-- 其中第一个字符 d代表目录, -代表字符 w代表可写,r代表可读 x代表可执行 数字为4,2,1其中第一组是文件或者目录所有者权限,第二组代表当前用户所在用户组,第三组是其他用户组的权限所以控制文件的权限是精确到组的 用 chmod 权限 目录 复制代码 代码如下: chmod 777 testchmod u+w test

  • linux文件目录默认权限(详解)

    1.文件的默认权限是没有x的,即文件的最大默认权限为666(-rw-rw-rw) 2.由于进入目录和目录的x权限有关,故目录的最大默认权限为777(drwxrwxrwx) 查看默认权限需要使用umask命令: [123@123 ~]$ umask           //数字方式显示 0022 [123@123 ~]$ umask -S        //符号方式显示 u=rwx,g=rx,o=rx以数字范式显示有4个数字,只看后3个即可,第一个为特殊权限使用 [123@123 ~]$ touc

  • 详解Linux系统中设置SFTP服务用户目录权限的方法

    前言 在工作或者学习的时候,我们常常会遇到这样的需求,限制一个Linux用户,让他只能在指定的目录下进行添加.修改.删除操作,并且只能使用sftp登录服务器,不能用ssh操作.这些可以通过配置sftp服务实现. 方法如下 提供sftp服务的有vsftpd和internal-sftp,这里用的是系统自带的internal-sftp,操作步骤如下: 1.创建新用户ui,禁止ssh登录,不创建家目录 useradd -s /sbin/nologin -M www 2.设置用户密码 passwd www

  • 详解Linux系统中虚拟设备文件的各种实用用法

    大家好,我是良许. 大家知道,在 Linux 下,一切皆文件,对于设备文件也是如此.我们在工作的过程中,经常会看到 /dev/null 这个玩意,那它到底是什么呢? 专业地讲,/dev/null 是一个虚拟设备文件.而对程序而言,这些虚拟设备文件则会被当成真实的文件对待.程序可以向这种数据源请求数据,所得到的数据将由操作系统提供.但是,这些数据并不是从磁盘上读取到的,而是由操作系统动态生成的.虚拟设备文件的一个典型例子就是 /dev/zero . 然而,当你想向 /dev/null 写入数据时,

  • 详解Linux系统中Oracle数据库程序的启动和关闭方式

    在单机环境下,要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle Oracle数据库有以下几种启动方式: 1. startup nomount 非安装启动,这种方式启动下可执行:重建控制文件.重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件. 2. startup mount dbname 安装启动,这种方式启动下可执行: 数据库日志归档. 数据库介质恢复. 使数据文件联机或脱机, 重新

  • 详解Linux系统中的tempfs与/dev/shm

    tmpfs 是 Linux/Unix 系统上的一种基于内存的文件系统,即 tmpfs 使用内存或 swap 分区来存储文件. Linux 内核中的 VM 子系统负责在后台管理虚拟内存资源 Virtual Memory,即 RAM 和 swap 资源,透明地将 RAM 页移动到交换分区或从交换分区到 RAM 页,tmpfs 文件系统需要 VM 子系统的页面来存储文件.tmpfs 自己并不知道这些页面是在交换分区还是在 RAM 中:做这种决定是 VM 子系统的工作.tmpfs 文件系统所知道的就是它

  • 详解Linux系统中网卡MAC地址克隆方法

    怎么临时性地改变 MAC 地址? 你可以在 Linux 运行的时候改变 MAC 地址.需要注意的是当 MAC 地址转换的那一会时间,你的网络会掉线.当电脑重启时 MAC 地址又会变回原来的.下面介绍几种方法来改变你的 MAC 地址. 方法一:iproute2 $sudo ip link set dev eth0 down $sudo ip link set dev eth0 address 00:00:00:00:00:01 $sudo ip link set dev eth0 up 方法二:m

  • 详解 iOS 系统中的视图动画

    动画为用户界面的状态转换提供了流畅的可视化效果, 在 iOS 中大量使用了动画效果, 包括改变视图位置. 大小. 从可视化树中删除视图, 隐藏视图等. 你可以考虑用动画效果给用户提供反馈或者用来实现有趣的特效. 在 iOS 系统中, Core Animation 提供了内置的动画支持, 创建动画不需要任何绘图的代码, 你要做的只是激发指定的动画, 接下来就交给 Core Animation 来渲染, 总之, 复杂的动画只需要几行代码就可以了. 哪些属性可以添加动画效果 根据 iOS 视图编程指南

  • 详解Linux命令中的正则表达式

    命令中的正则表达式 如果要在命令输出或文本中筛选内容时使用模糊查找,就需要使用正则表达式.正则表达式是一套由多个元字符组成的模糊查找模式,使用正则表达式可以快速查找和定位文本中指定的内容. 1.单字符匹配符.  正则表达式主要由一些元字符和匹配模式组成 单字符匹配符可以匹配任意单个字符,这个字符的功能和文件名匹配符中的?功能相同 使用正则表达式查找文本,首先需要使用元字符组成一个查找模式 (1)使用查找模式时,通常将其放入两个斜杠//中,然后再放入命令,例如要在一个文本中查找匹配模式/.i...

  • 查看远程 Linux 系统中某个端口是否开启的三种方法

    这是一个很重要的话题,不仅对 Linux 管理员而言,对于我们大家而言也非常有帮助.我的意思是说对于工作在 IT 基础设施行业的用户来说,了解这个话题也是非常有用的.他们需要在执行下一步操作前,检查 Linux 服务器上某个端口是否开启. 假如这个端口没有被开启,则他们会直接找 Linux 管理员去开启它.如果这个端口已经开启了,则我们需要和应用团队来商量下一步要做的事. 在本篇文章中,我们将向你展示如何检查某个端口是否开启的 3 种方法. 这个目标可以使用下面的 Linux 命令来达成: nc

  • linux系统中修改tomcat默认输入日志路径的方法

    1.修改catalina.sh 进入tomcat安装目录/bin,找到catalina.sh,先进行备份. 对本地的catalina.sh进行修改,这里是以将日志目录修改为/data/logs为例,即将$CATALINA_BASE/logs/catalina.out改为CATALINA_OUT=/data/logs. 2.修改logging.properties 进入tomcat安装目录/conf/,找到logging.properties,先进行备份. 对本地的logging.properti

  • 详解在java中进行日期时间比较的4种方法

    1. Date.compareTo() java.util.Date提供了在Java中比较两个日期的经典方法compareTo(). 如果两个日期相等,则返回值为0. 如果Date在date参数之后,则返回值大于0. 如果Date在date参数之前,则返回值小于0. @Test void testDateCompare() throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

随机推荐