精华内容
下载资源
问答
  • sftp 写权限
    万次阅读
    2017-04-21 12:56:11

    场景:给特定的服务器提供sftp账号,提供文件上传,修改和删除功能,但不提供ssh访问,只能sftp登录操作。

    处理方案:使用openssh-server,使用sftp实现

    具体操作:
    1、ssh -V 保证版本在4.8p1以上;
    2、grouadd sftpusers 用于管理sftp账号的组
    3、useradd -s /bin/false -G sftpusers sftpuser1
    将用户的shell设置为/bin/false使他没有登陆shell的权限

    4、vi /etc/ssh/sshd_config
    修改 Subsystem 为:
    Subsystem sftp internal-sftp
    然后再到文件最尾处增加配置设定属于用户组sftpusers的用户都只能访问他们自己的home文件夹
    Match Group sftpusers
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    保存并关闭文件
    5. 修改sftpuser1用户home文件夹的权限,让其属于root用户
    chown root:sftpusers ~ sftpuser1
    chmod 755 /home/sftpuser1 如果给予写的权限的话,需要下面新增目录
    mkdir write
    chown sftpuser1:sftupusers ./write
    chmod 775 ./write
    tips: 因为 /home/sftpuser1 已经chroot 为 sftpuser1用户,不能也不建议扩大权限。
    6. 重启sshd服务
    service sshd restart
    7. 测试用户账号
    ssh sftpuser1@localhost
    连接会被拒绝或者无法登陆
    sftp sftpuser1@localhost
    登陆后你会发现你的账号无法切换到除自己home目录之外的地方的
    8 .如果让别人上传的文件,直接生效,也可以配置软链接关联到应用目录下去
    如:把 home/sftpuser1/write/ 目录映射为 /www/app/
    ln -s /home/sftpuser1/write/ /www/app/

    常见问题:
    如果你链接服务器的时候出现下面的提示:
    Write failed: Broken pipe
    Couldn’t read packet: Connection reset by peer
    这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。

    更多相关内容
  • 在工作或者学习的时候,我们常常会遇到这样的需求,限制一个Linux用户,让他只能在指定的目录下进行添加、修改、删除操作,并且只能使用sftp登录服务器,不能用ssh操作。这些可以通过配置sftp服务实现。 方法如下 ...
  • SFTP账号是基于SSH账号的,其拥有的权限是比较大的,今天主要教大家如何进行SFTP用户权限设置,感兴趣的你可不要错过了哈,希望本文知识可以帮助到你
  • 一、最近接到一个项目组的需求搭建文件服务器,需求如下1、用户:amovs、upload、download2、组:amovs、dataload、download3、具体需求是upload和download的家目录都为同一...所以对于dataload目录权限需要读、权...

    一、最近接到一个项目组的需求搭建文件服务器,需求如下

    1、用户:amovs、upload、download

    2、组:amovs、dataload、download

    3、具体需求是upload和download的家目录都为同一个目录dataload

    4、upload能上传也就是能读能写、download用户只能下载

    5、amovs因需要进行批量自动化删除日志等操作,所以对于dataload目录权限需要读、写权限

    6、并且upload和download只能使用sftp软件上传和下载文件使用,不能作为登录用户

    详细规划了一下用户和组的关系如下:

    amovs属于dataload组,家目录为/amovs

    upload为属于dataload组 /data/dataload

    download属于download组 /data/dataload

    二、搭建环境如下:

    Red Hat Enterprise Linux Server release 6.7 (Santiago)

    具体搭建步骤:

    1、查看ssh相关版本

    [[email protected] /]# rpm -qa | grep ssh

    openssh-clients-5.3p1-111.el6.x86_64

    openssh-server-5.3p1-111.el6.x86_64

    ksshaskpass-0.5.1-4.1.el6.x86_64

    libssh2-1.4.2-1.el6_6.1.x86_64

    openssh-5.3p1-111.el6.x86_64

    2、创建相关组和用户

    [[email protected] /]# groupadd  -g 601 amovs

    [[email protected] /]# groupadd  -g 602 dataload

    [[email protected] /]# groupadd  -g 603 download

    [[email protected] /]# useradd  -u 601  -g amovs  -G dataload  -d /amovs  amovs

    [[email protected] /]# useradd  -u 602  -s /bin/false  -g dataload  -d  /data/dataload upload

    [[email protected] /]# useradd  -u 603  -s /bin/false  -g download  -d  /data/dataload download

    3、编辑/etc/ssh/sshd_config 更为为如下:

    #注释掉这行

    #Subsystem      sftp    /usr/libexec/openssh/sftp-server

    添加如下配置

    Subsystem sftp internal-sftp  #指定使用sftp服务使用系统自带的internal-sftp

    #Match Group  dataload        #如何限制组就改成这样  这里也可以使用用户Match User,用逗号隔开

    Match User upload、download   #我这里的需求是控制用户所以就配置成这样

    ChrootDirectory /data    #此目录实际上传目录的上级目录,例如这里实际存储文件位置是/data/dataload

    #用chroot将指定用户的根目录,chroot的详细含义请参考如下链接:

    ForceCommand internal-sftp    #指定sftp命令

    X11Forwarding no             #这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉

    AllowTcpForwarding no

    注意:

    要实现Chroot功能,目录权限的设置非常重要。否则无法登录,给出的错误提示也让人无语。

    基本上报错都是这样的

    Connecting to 192.168.56.102...

    Write failed: Broken pipe

    Couldn‘t read packet: Connection reset by peer

    目录权限设置这里从网上找到了3条总结测试如下:

    1、ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root:root

    这里我的/data 属组为root:root  而/data/dataload 属组为upload:dataload  ,具体如下

    [[email protected] ~]# ls -ld /data

    drwxr-xr-x 3 root root 4096 5月  23 17:27 /data

    [[email protected] data]# ls -ld /data/dataload/

    drwxrwxr-x 4 upload dataload 4096 5月  23 18:11 /data/dataload/

    2、ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755

    这条没试出来

    3、ChrootDirectory %h 如果选择了这种模式,用户的home目录必须是root:root 权限,它的上级目录页必须是root:root,否则就会报错。

    [[email protected] /]# ls -ld /amovs/

    drwxr-xr-x 3 amovs amovs 4096 5月  23 16:00 /amovs/

    [[email protected] /]# chown root:root /amovs

    [[email protected] /]# ls -l /amovs/

    drwxr-xr-x 3 root root 4096 5月  23 16:39 data

    这里设置完了以后还出现了一个问题就是通过sftp软件上传后的文件属性是644的,也就是amovs用户删除不了upload 用户的上传的文件,这说明上传文件的权限并没有走系统用户umask,通过查了一些资料修改PAM值并测试成功了。

    一,查看并开启ssh的PAM功能,

    运行命令看看 ldd  /usr/sbin/sshd | grep libpam.so支持PAM

    [[email protected] 20170523]$ ldd /usr/sbin/sshd | grep libpam.so

    libpam.so.0 => /lib64/libpam.so.0 (0x00007fce94f79000)

    编辑/etc/ssh/sshd_config

    UsePAM yes  #这默认是开启的,没有开的话开启了

    二,编辑/etc/pam.d/sshd,(具体说明参照PAM),加上umask那一行。

    #%PAM-1.0

    auth       required     pam_sepermit.so

    auth       include      password-auth

    account    required     pam_nologin.so

    account    include      password-auth

    password   include      password-auth

    # pam_selinux.so close should be the first session rule

    session    required     pam_selinux.so close

    session    required     pam_loginuid.so

    # pam_selinux.so open should only be followed by sessions to be executed in the user context

    session    required     pam_selinux.so open env_params

    session    optional     pam_keyinit.so force revoke

    session    include      password-auth

    session     optional     pam_umask.so umask=0002

    重启sshd服务就可以了

    测试如下:

    10090bf2f5ce6add81ec1e2af9948ea3.png

    原文:http://laobaiv1.blog.51cto.com/2893832/1928973

    展开全文
  • 基于 ssh 的 sftp 服务相比 ftp 有更好的安全性(非明文帐号密码传输)和方便的权限管理(限制用户的活动目录)。 1、开通 sftp 帐号,使用户只能 sftp 操作文件, 而不能 ssh 到服务器 2、限定用户的活动目录,使...
  • linux配置sftp权限设置

    千次阅读 2021-05-10 20:02:05
    前言1:应用场景:对于数据量很大的交互,对接方不愿意通过...从sftp服务器上获取数据文件*:也需要开设一个sftp账号,权限设置视情况而定。前言2:服务器版本为Centos6.5, 采用系统自带的internal-sftp, 限制用...

    前言1:应用场景:对于数据量很大的交互,对接方不愿意通过接口方式对接式可采用ftp的方式数据交互。

    A——>上传数据文件到sftp服务器

    *:需要给A开设一个只用于sftp上传的账号,并且只能在指定目录下活动。

    B——>从sftp服务器上获取数据文件

    *:也需要开设一个sftp账号,权限设置视情况而定。

    前言2:服务器版本为Centos6.5, 采用系统自带的internal-sftp, 限制用户只能在自己的目录下活动,这里需要使用到chroot,openssh 4.8p1以后都支持chroot,我现在用的是CentOS 6.5,自带的openssh已经是5.3p1,足够了。

    1、 查看 openssh的版本,如果低于4.8p1,需要自行升级安装

    #    ssh -V

    2、 创建sftp组

    #    groupadd sftp

    3、 创建一个sftp用户,名为guest

    #    useradd -g sftp -s /bin/false guest

    *: /bin/false  表示不能通过ssh的方式登录

    4、设置密码

    #     passwd  guest

    *:输入两次密码,回车即可。也可通过此命令修改已有的账号密码。

    5、创建用户活动的根目录

    #     mkdir -p /5108/sftp

    #     usermod -d /5108/sftp guest

    6、配置sshd_config

    #     vi /etc/ssh/sshd_config

    找到如下这行,并注释掉

    Subsystem      sftp    /usr/libexec/openssh/sftp-server

    添加如下几行:

    Subsystem       sftp    internal-sftp  # 指定使用sftp服务使用系统自带的internal-sftp

    Match Group sftp   # 匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割

    ChrootDirectory /5108/sftp/ # 用chroot将用户的根目录指定到 /5108/sftp/, 可设为"/",代表根目录。

    ForceCommand    internal-sftp  # 指定sftp命令

    AllowTcpForwarding no  # 允许用户能使用端口转发

    X11Forwarding no # 允许用户能使用端口转发

    :wq保存并退出

    7、 设定Chroot目录权限

    #     chown root:sftp /5108/sftp

    #     chmod 755 /5108/sftp

    *:权限必须为755

    8、 建立SFTP用户登入后可写入的目录

    照上面设置后,在重启sshd服务后,用户 guest 已经可以登录,但使用chroot指定根目录后,根应该是无法写入的,所以要新建一个目录供 guest 上传文件。这个目录所有者为 guest,所有组为sftp,所有者有写入权限,而所有组无写入权限

    #    mkdir /5108/sftp/ABH

    #    chown guest:sftp /5108/sftp/ABH

    #    chmod 755 /5108/sftp/ABH

    *: 权限可设置为777,代表组的所有用户都拥有所有权限。

    9、 修改/etc/selinux/config文件中的SELINUX="" 为 disabled或者

    #    setenforce 0

    10、 重启sshd服务

    #     service sshd restart

    测试ssh能否登录:

    测试sftp能否登录:

    sftp guest@127.0.0.1

    到此,我们已经把A的账号建立好了,并已经设置了相应的权限。下面再配置B,也就是我们系统下载文件的账号。

    #     useradd -g sftp -s /bin/false  consftp

    #     passwd  consftp

    设置账号后,就能通过sftp的方式登录了,再配置下路径:

    #    usermod -d /5108/sftp/ABH consftp

    补充:

    groupdel命令:删除组

    groupdel 命令用于删除不再需要的组,如果指定的组中包含用户,则必须先删除组里面的用户>以后,才能删除组。

    #     sudo groupdel test

    vipw :

    -g, --group                  编辑 group 数据库

    -h, --help                    显示此帮助信息并推出

    -p, --passwd                  编辑 passwd 数据库

    -q, --quiet                  安静模式

    -R, --root CHROOT_DIR        chroot 到的目录

    -s, --shadow                  编辑 shadow 或 gshadow 数据库

    问题:

    Write failed: Broken pipe

    Couldn't read packet: Connection reset by peer

    这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755

    关键是ChrootDirectory /5108/sftp/%u 目录的配置,可更改目录为"/"试试

    后续:

    第一次在设置第二个账号的时候,重复创建了目录,设置了权限,所以导致第一个账号也连接不上。折腾了很久,在此记录下,引以为戒,以后配置方面的东西,一定要先看懂,了解流程。切记切记......

    展开全文
  • SFTP权限问题

    千次阅读 2020-11-25 14:35:59
    1、权限问题: 1.1、重要: r、w、x权限对文件和目录的意义: 补充: (1)w(目录):可以创建或删除目录中任意一个空目录。如果被删除的目录不 是空目录且该目录没有w权限,则该目录无法被删除。 (2)建议...

    1、权限问题:

    1.1、重要: r、w、x权限对文件和目录的意义:

    补充:

    (1)w(目录):可以创建或删除目录中任意一个空目录。如果被删除的目录不

    是空目录且该目录没有w权限,则该目录无法被删除。

    (2)建议目录权限:

    1)目录:755(drwxr-xr-x)

    2)文件:644(-rw-r--r--)

    3)可执行文件:755(-rwxr-xr-x)

     

    2、高级权限:

    (1)高级权限的类型

    suid 4

    sgid 2

    sticky 1 粘滞位

     

                    文件                  目录

    suid      执行的时候以所有者身份执行

     

    sgid                                  继承属组

     

    sticky                                谁可以删除:root、文件的所有者、目录的所有者

     

    (2)设置特殊权限

    1)字符

    chmod u+s file

    #用户位的x位上设置

    chmod g+s dir

    #用户组位的x位上设置

    chmod o+t dir

    #其它用户位的x位上设置

     

    2)数字

    chmod 4755 file

    chmod 2755 dir

    chmod 1777 dir

     

    (3)示例:

    1)示例1:suid 普通用户通过suid提权 <针对文件>

    在进程文件(二进制,可执行)上增加suid权限

    [root@localhost ~]# chmod u+s /bin/cat

    [root@localhost ~]# ls -l /bin/cat

    -rwsr-xr-x. 1 root root 54080 4月  11 2018 /bin/cat

    [alice@tianyun ~]$ cat /root/install.log

     

    2)示例2:sticky 用户只能删除自己的文件 <针对目录>

    [root@localhost ~]# mkdir /home/dir1

    [root@localhost ~]# chmod 777 /home/dir1

    [root@localhost ~]# chmod o+t /home/dir1

    [root@localhost ~]# ll -d /home/dir1

    drwxrwxrwt 2 root root 21 5月  25 23:36 /home/dir1

    测试:user1在/home/dir1建立文件, user2尝试删除!

     

    =================================================================

    小知识:注意以下目录的正确权限,否则会导致程序不能正常运行

    [root@wangcy ~]# ll -d /tmp /var/tmp/

    drwxrwxrwt. 8 root root 105 5月  25 23:51 /tmp

    drwxrwxrwt. 3 root root  18 5月  25 23:29 /var/tmp/

    =================================================================

     

    3)示例3:sgid 新建文件继承目录属组 <针对目录>

    [root@localhost ~]# mkdir /home/hr

    [root@localhost ~]# groupadd hr

    [root@localhost ~]# chgrp hr /home/hr/

    [root@localhost ~]# chmod g+s /home/hr

    [root@localhost ~]# ll -d /home/hr/

    drwxr-sr-x 2 root hr 33 5月  25 23:52 /home/hr/

    [root@localhost ~]# touch /home/hr/file92

    [root@localhost ~]# ll /home/hr/

    -rw-r--r-- 1 root hr  0 5月  26 23:53 file92

     

     

     

     

     

    展开全文
  • 我们需要创建一个用户组,专门用于sftp用户$ groupadd sftpusers2. 我们创建一个用户test$ useradd -s /bin/false -G sftpuser test注意这里我们将test用户的shell设置为/bin/false使他没有登陆shell的权限3. 编辑 ...
  • SFTP多用户权限配置

    2021-09-06 08:35:36
    SFTP多用户权限配置新增用户组及用户配置sshd_config测试:用户只能sftp登录,不能ssh修改用户权限测试:admin用户功能测试:user2用户功能其他 新增用户组及用户 进入root用户权限下进行操作 mkdir -pv /opt/ftp...
  • 美好的一天! 我有一个位于虚拟机的linux sftp服务器。该VM可以访问sftp目录所在的GlusterFS存储。 Sftp通过OpenSSH服务器工作,并... 试图创建用户:sftp服务器上的Linux权限问题# useradd -d /mnt/cluster-data/re...
  • sftp多用户权限配置

    2022-04-15 16:33:09
    mkdir -pv /data/sftp/{admin,userA,userB} groupadd sftpadmins groupadd sftpusers useradd -g sftpadmins -s /sbin/nologin -d /data/sftp/ admin passwd admin mkdir /data/sftp/userA useradd -g sftpusers -...
  • 背景:之前搭建SFTP多用户都是同属一个用户组,所有用户都可以进行读写操作,需要将各个用户权限调整,遂度娘一波,没有明显匹配的文档,自己综合整理记录。 实现目的 如下图所示,用户组G1的用户可读写目录1,目录2...
  • Centos下配置ssh以及Vsftp
  • 下面为SFTP用户权限设置方法。必要条件:你的openssh-server版本至少得失4.8p1, 因为配置权限需要版本添加的新配置项ChrootDirectory来完成。如何查看自己服务器上的ssh版本?大家可以尝试以下命令:$ ssh -V具体...
  • 建立SFTP目录权限控制

    千次阅读 2019-07-08 10:32:28
    xftp等)直接上传的,这些用户可以进入服务器的大部分目录,下载拥有可读权限的文件,直接拿用户做sftp还是存在风险的,尤其是向第3方人员或服务提供sftp服时,所以在提供专用的sftp用户有必要做好权限的控制 ...
  • 1、创建sftp群组groupadd bmssftp2.创建用户,并指定分组和主目录useradd -d /alidata/ftpdata/epay.nm.test -s /sbin/nologin -g bmssftp epay.nm.test解析:useradd 添加用户epay.nm.testpasswd 给用户epay.nm....
  • web项目的上传大多数人还是习惯用ftp,当然也有git和svn这些上传方式,该文章主要讲到ftp的上传,sftp在ftp当中是相当配置简单的一种,它主要是依赖SSH的,所以一般系统都会自带的,而且由于它依赖SSH所以也可以进行...
  • 东坡小编这里给大家分享的是Linux设置用户通过SFTP访问目录的权限教程,对linux sftp 用户权限设置可以参考下。sftp和ftp是两种协议是不同的,sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp...
  • Linux下如何进行SFTP用户权限设置.docx
  • sftp用户权限设置

    千次阅读 2019-10-05 19:04:15
    对于服务器文件上传, 我们会创建sftp用户登陆服务器,禁止ssh... 现在对外提供test用户,sftp访问服务器;创建过程如下: 1. 建立sftp用户 test useradd test, 此时会在创建sftp用户目录/home/test  chown -R...
  • linux SFTP用户权限控制

    万次阅读 2018-07-19 10:31:17
    xftp等)直接上传的,这些用户可以进入服务器的大部分目录,下载拥有可读权限的文件,直接拿用户做sftp还是存在风险的,尤其是向第3方人员或服务提供sftp服时,所以在提供专用的sftp用户有必要做好权限的控制 ...
  • 要求:openssh-server版本大于等于4.8p1, 这主要因为本文介绍的配置需要用到新配置项...1、创建一个用户组,专门用于sftp用户代码示例:$ groupadd sftpusers2、创建一个用户test代码示例:$ useradd -s /bin/f...
  • sftp 文件权限

    千次阅读 2017-12-06 11:41:00
    因为ftp能通过设置umask来控制上传文件的权限,所以一直想通过umask来控制文件的权限,的确在网上也搜索到sftp&umask的文章,19个支持应该不算低了,但是设置-u参数后文件的权限还是644.   最后通过man ...
  • 最近在研究sftp 搞得自己焦头烂额,整理出一个创建sftp的脚本,供大家参考,本人没怎么过shell脚本,都是百度拼出来的。。的不好之处,请多多体谅 #! /bin/bash usage() { echo "usage=====================...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,612
精华内容 6,644
关键字:

sftp 写权限