chroot directory

给 /A/B/C的C目录做chroot,要对C能读写,所以C目录不能做ROOT目录,对B做chroot。

设置C目录所有者为sftp 账户a,组也改为sftp组(这里a和sftp组都是之前建立好的sftp账号,a不允许直接登录)。因为要对C目录下有读写权限所以

chmod -R 755 /A/B/C

chown -R a:xxx /A/B/C(这里所属组可以保持不变)

chown a:sftp /A/B/C

编辑/etc/ssh/sshd_config,具体如下:

注释 Subsystem sftp /usr/lib/openssh/sftp-server

添加 Subsystem sftp internal-sftp
在配置文件末尾加入针对登录用户或sftp组的访问限制

a登录后,chroot到/A/B/

Match user user1
     ChrootDirectory /A/B/

ChrootDirectory设置的目录及其所有的上级目录属主必须是root且只有属主能拥有写权限,也就是说权限最大设置只能是755。否则会报“fatal: bad ownership or modes for chroot directory”这样的错误。
用户目录下的链接文件失去作用。

时间: 2024-10-11 16:13:46

chroot directory的相关文章

fatal: bad ownership or modes for chroot directory

过年放假前在修改用户权限,添加了一个账户,年后回来发现几个SFTP账户无法登陆SFTP,提示WinSCP提示Authentication failure,以为账户密码错了,用passwd重置后问题依旧.然后用别的管理员帐户登陆SFTP却没有问题,于是用sudo journalctl -xe命令查看到日志信息: fatal: bad ownership or modes for chroot directory "/share/abc/",回忆起放假之前曾经试图将这个文件夹赋权给另一个账

chroot搭建脚本

#!/bin/bash #this is chroot creat .sh read -p "user chroot directory" dir list="bash ls cat  grep pwd" read -p "username:" username useradd $username && mkdir -p /home/$username && echo "12345" | pas

PHP chroot() 函数

改变根目录: <?php// Change root directorychroot("/path/to/chroot/"); // Get current directoryecho getcwd();?> 结果: / 定义和用法 chroot() 函数改变当前进程的根目录为 directory,并把当前工作目录改为 "/". 注意:该函数需要 root 权限,且仅在 GNU 和 BSD 系统上仅当使用 CLI.CGI.嵌入式 SAPI 时可用.该函数

How to configure dns slave server in Linux

A DNS server, or name server, is used to resolve an IP address to a hostname or vice versa.You can set up four different types of DNS servers: A master DNS server for your domain(s), which stores authoritative records for your domain. A slave DNS ser

OPENVPN搭建与配置

Content-type: text/html; charset=UTF-8 openvpn Section: Maintenance Commands (8)Updated: 17 November 2008Index Return to Main Contents NAME openvpn - secure IP tunnel daemon. SYNOPSIS openvpn [ options ... ] INTRODUCTION OpenVPN is an open source VPN

ssh超时时间设置(设置ClientAliveInterval),附SSH超详细参数

作者: daodaoliang 版本: V 0.0.1 日期: 2016年12月29日 0x00 OpenSSH 简介 OpenSSH是采用SSH协议实现的重要的远程连接工具,它对所有的数据进行加密以防止被中途窃听,OpenSSH提供了大量的安全通道的组件,比如: 远程操作用ssh.scp.sftp; 秘钥管理用ssh-add.ssh-keysign.ssh-keyscan.ssh-keygen; 服务端包含sshd.sftp-server.ssh-agent; 0x01 方案一 上面的所有信息

Android init源代码分析(2)init.rc解析

本文描述init.rc脚本解析以及执行过程,读完本章后,读者应能 (1) 了解init.rc解析过程 (2) 定制init.rc init.rc介绍 init.rc是一个文本文件,可认为它是Android系统启动脚本.init.rc文件中定义了环境变量配置.系统进程启动,分区挂载,属性配置等诸多内容.init.rc具有特殊的语法.init源码目录下的readme.txt中详细的描述了init启动脚本的语法规则,是试图定制init.rc的开发者的必读资料. Android启动脚本包括一组文件,包括

sshd服务基本配置和使用(201610改)

一.基于密钥认证的服务端基本安全设置:1.修改/etc/ssh/sshd_config,具体如下:Protocol 2  #只支持SSH2协议Port <端口号>  #修改默认端口号MaxStartups 5    #同时允许5个尚未登录的SSH联机MaxAuthTries 3 #最大登录尝试次数为3 GSSAPIAuthentication no #关闭GSSAPI认证ServerKeyBits 1024 #将ServerKey强度改为1024比特PermitEmptyPasswords n

Android核心服务解析篇(一)——Android系统的启动

从大的方面来说,Android系统的启动可以分为两个部分:第一部分是Linux核心的启动,第二部分是Android系统的启动.第一部分主要包括系统引导,核心和驱动程序等,由于它们不属于本篇要讲的内容,这里就不再讨论.在本篇博客中,我们重点讲解Android系统的启动,这一过程主要经过两个阶段,分别是应用的初始化流程与system_service进程及核心服务的创建流程. 1.初始化流程 初始化流程,顾名思义,它完成Android的一些初始化工作,包括设置必要的环境变量,启动必要的服务进程,挂载必