我已经搜索了许多网站和论坛,了解如何使用 CHROOT 设置被监禁到某个目录的 SFTP 用户。以下是我遵循的步骤,但我似乎无法获得工作的写入权限。
设置
sshd_config
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Match group webmaster
X11Forwarding no
ChrootDirectory %h
AllowTcpForwarding no
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)
创建文件夹
mkdir /var/www/sites
Run Code Online (Sandbox Code Playgroud)
创建用户和组
useradd uploader
passwd uploader
usermod -d /var/www/sites uploader
groupadd webmaster uploader
groupadd www-data uploader
Run Code Online (Sandbox Code Playgroud)
权限和所有权
chown root:root /var/www
chmod 755 /var/www/sites
Run Code Online (Sandbox Code Playgroud)
现在,通过这些设置,用户上传者可以通过 SFTP 进入主目录,但无法写入该目录。
发生了 2 个典型错误,我要么无法登录,要么没有写入权限。
登录错误
Error: Network error: Software caused connection abort
Error: Could not connect to server
Changing permissions of /var/www/sites to 775 or 777 causes login error. …Run Code Online (Sandbox Code Playgroud) 将 Ubuntu chroot 环境升级到更新的 Ubuntu 版本的正确方法是什么?chroot 环境最初是使用debootstrap.
升级 Ubuntu 服务器的正确方法是使用do-release-upgrade命令。
Ubuntu 基于 Debian。Debian 可以通过将发行版名称替换为/etc/apt/sources.list新发行版名称并运行apt-get update,apt-get upgrade和apt-get dist-upgrade.
哪一种是升级 Ubuntu chroot 环境的正确方法?什么是do-release-upgrade从Debian的方式有什么不同?
我想创建最新 LTS 的虚拟实例,以便我可以以更接近我们的生产环境的方式测试我正在编写的软件。
似乎有很多很多不同的方法可以做到这一点:将 debootstrap 与 schroot 一起使用;将 debootstrap 与 dchroot 一起使用;使用 mk-sbuild... 而像https://wiki.ubuntu.com/DebootstrapChroot这样的页面有多个选项,现在肯定已经被小 shell 脚本取代了。
我该怎么做?
我一直在构建一个实时的 Ubuntu 服务器 (10.04 LTS) 来运行拇指驱动器,它几乎就在那里。
然而,我被困在了一步。
我需要跑步,update-grub但它在抱怨:
/usr/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?).
Run Code Online (Sandbox Code Playgroud)
我的fstab文件包含:
# filesystem mount point type options dump pass
UUID=76d2077e-9726-4f95-abab-323cb426b099 / ext2 defaults 0 0
proc /proc proc nodev,noexec,nosuid 0 0
sys /sys sysfs defaults 0 0
Run Code Online (Sandbox Code Playgroud) 我有一组软件包,希望与 debootstrap 中的 minibase 变体一起安装。我最难弄清楚如何自定义变体,以便在运行 debootstrap 时在 chroot 中安装的不仅仅是基础。有什么方法可以实现这一目标吗?
我有一个 Ubuntu 14.04 服务器安装了开放的 ssh。我想为客户配置 sftp 以便只能下载文件。换句话说,我将文件放在他们被监禁的目录中。我需要确保他们只能访问包含文件的目录,而不能访问其他目录。
最初我打算使用 vsftpd,但有人告诉我 sftp 是更好的选择。如果有一些关于我需要的文件,那就太好了。
我需要以下方面的帮助:
我有一个基于 Ubuntu 的定制 GCompris 的 ISO。它旨在刻录在 CD(iso 9660 FS 类型)上。当我尝试将其刻录到 USB 时,笔式驱动器“变成”了 CD,并且无法启动...
不久前制作这个 ISO 作为学校项目的人说他不记得他最初是如何制作它的,但它与提取 squashfs 并使用 chroot 重新创建它有关。
你们中的任何人都可以向我指出如何做到这一点的分步指南 - 从顶部开始?
我正在使用网络文件系统 (AFS),我还想将它安装到我的 schroot 中。在 /etc/schroot/mount-defaults 中添加一行,使用bind或rbind在选项中没有帮助:schroot 总是使用 挂载目录bind,并且它在 chroot 中保持为空。
我当前的解决方案是rbind在设置 schroot 后重新挂载 /afs 目录的脚本。
有没有办法让schroot直接使用rbind?
我已经使用 schroot 和 debrootstrap 在我的 Ubuntu 中创建了一个基于最小 ubuntu 的 chroot 系统。但是,每当我似乎无法将新用户添加到这个 chroot 环境时。这是发生的事情。
如何让新用户成为永久用户?
我尝试使用我通过控制台以 root 身份创建的符号链接让 proftpd 虚拟用户访问其主路径之外的目录。
/var/ftp/users/test 是名为 的用户的家test。
/var/ftp/files/documents 是保存文档的目录,/var/ftp/users/test/documents 是指向它的符号链接。
但是当用户连接到 FTP 并尝试遵循符号链接时,他只会看到以下错误:
documents: No such file or directory
我究竟做错了什么?