当前位置:首页 » 文件传输 » 设置sftp限制用户访问目录
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

设置sftp限制用户访问目录

发布时间: 2023-01-11 20:10:04

① Linux系统如何关闭scp和sftp命令

sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。接下来是我为大家收集的Linux系统如何关闭scp和sftp命令,欢迎大家阅读:

Linux系统如何关闭scp和sftp命令
系统:centos 5.x

1.先禁止scp

rpm -qa|grep openssh-*

yum remove openssh-clients -y

删除了openssh-clients后,再执行scp,就会报下面的错误:

-bash: scp: command not found

2.禁止sftp

vi /etc/ssh/sshd_config

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

把这行注释了,如下:

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

退出保存后,重启sshd:

service sshd restart

以上就是Linux系统中禁止scp和sftp命令的方法了。有需要或者是有兴趣的用户,可以在自己的电脑上尝试操作一下。


看了“Linux系统如何关闭scp和sftp命令”还想看:

1. linux系统中scp命令怎么使用

2. 怎么利用scp命令来实现linux系统之间互传文件

3. Linux scp命令怎么使用

4. Linux怎么设置用户通过SFTP访问目录的权限

5. linux下scp远程拷贝怎么使用

6. linux scp怎么远程拷贝文件

② 如何将SFTP用户限制在某个目录下

sftp和ftp是两种协议是不同的,sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp服务器启动。 1.查看openssh软件版本,想sftp服务用户只能访问特定的文件目录,版本需要4.8以上 代码如下: [root@localhost ftp]# rpm -qa grep openssh openssh-server-5.3p1-81.el6_3.x86_64 openssh-5.3p1-81.el6_3.x86_64 openssh-clients-5.3p1-81.el6_3.x86_64 2.新增用户,限制用户只能通过sftp访问 代码如下: [root@localhost ftp]# useradd -m -d /opt/ftp/dave -s /sbin/nologin dave 3.限制用户通过sftp登录进来时只能进入主目录,修改/etc/ssh/sshd_config文件 代码如下: [root@localhost ftp]# vim /etc/ssh/sshd_config #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match User dave ChrootDirectory /opt/ftp/dave X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp 重启ssh 4.测试访问 代码如下: [email protected]:test# sftp -oPort=22 [email protected] Connecting to 10.1.6.175... [email protected]'s password: Read from remote host 10.1.6.175: Connection reset by peer Couldn't read packet: Connection reset by peer 发现连接不上,查看日志 代码如下: [root@localhost ftp]# tail /var/log/messages Jan 6 11:41:41 localhost sshd[4907]: fatal: bad ownership or modes for chroot directory "/opt/ftp/dave" Jan 6 11:41:41 localhost sshd[4905]: pam_unix(sshd:session): session closed for user dave 解决方法: 目录权限设置上要遵循2点: ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root; ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是755。 如果不能遵循以上2点,即使是该目录仅属于某个用户,也可能会影响到所有的SFTP用户。 代码如下: [root@localhost ftp]# ll total 4 drwxr-xr-x 3 dave dave 4096 Jan 5 13:06 dave [root@localhost ftp]# chown root:root dave [root@localhost ftp]# chmod 755 dave [root@localhost ftp]# ll total 4 drwxr-xr-x 3 root root 4096 Jan 5 13:06 dave 然后在测试通过 代码如下: [email protected]:test# sftp -oPort=22 [email protected] Connecting to 10.1.6.175... [email protected]'s password: sftp> ls test sftp> cd .. sftp> ls test sftp> cd test sftp> ls 1.txt sftp> get 1.txt Fetching /test/1.txt to 1.txt /test/1.txt 可以看到已经限制用户在家目录,同时该用户也不能登录该机器。

③ Linux下如何进行SFTP用户权限设置

1、打开Linux文件查看有哪些权限。

注意事项:

Linux用户分三种,超级用户,普通用户,伪用户,超级用户拥有所有权限,伪用户一般和进程相关,无需登录系统,所以常说的管理用户权限指的是管理Linux中普通用户的权限。

④ SFTP限制目录和端口

使用 root 操作

注:该目录权限最大为 755 ,设置成 777 会报错

注:设置用户sftpuser,如果设置拥有者为root,表示该目录sftpuser没有权限读写,在该目录下建立其它目录,赋权给sftpuser用户读写权限;
若需要对该目录拥有读写权限,设置权限:

注:这里的目录sftpuser 权限也只能是755,否则无法限制目录。

在配置文件末尾添加

在用户登录测试过程中,可能会遇到如下错误:

是目录权限导致了该问题,具体解决方案,回看以上4、5步骤!

以上用户和目录都是测试使用,按实际进行更改。

⑤ 如何将SFTP用户限制在某个目录下

这个简单,你只要将你不想要其它用户访问的目录修改为root用户即可。使用chown命令。 比如你不希望/etc目录被其它用户访问,可是以root用户登录,执行命令: chown root /etc -R

⑥ 怎么使用Chroot文件系统限制SFTP登录用户访问文件夹权限

在早期的UNIX系统中,根目录在文件系统中是固定的。在包括Linux的现代UNIX中,你可以为每个进程都定义一个根目录。而chroot命令则可以允许你运行/目录以外的进程。

本文将会介绍怎么限制SFTP用户访问其home文件夹或者设置好后制定的目录。即通过ssh登录的用户只能访问给指定的home文件夹下面的某些文件夹,而不是整个home文件夹。

限制用户的访问权限是至关重要的,特别是在一个公用的环境中,只有这样才能让不同的用户只能访问自己分配的文件夹.

重要提示:本文的主要目的也可以设置只通过SFTP登录的用户而不是SSH登录的用户,看了本文教程后可以设置成只能进行文件传输而不允许SSH登录.

最简单的方法就是给SFTP权限创建chrooted文件系统. 这种方法在所有的Unix/Linux操纵系统上都是可以通用的. 使用chrooted我们可以限制用户在他们自己的home文件夹或者制定的文件夹

Restrict Users to Home Directories

In this section, we will create new group calledsftpgroupand assign correct ownership and permissions to user accounts. There are two choices to restrict users to home or specific directories, we will see both way in this article.

创建或更改用户、用户组

首先我们要限制下已有的用户,就那 tecmint举例吧,改用户的home文件路径是/home/tecmint.我们使用下面的命令创建一个新的用户组sftpgroup:

# groupadd sftpgroup

下面分配‘tecmint’ 用户到sftpgroup用户组去.

# usermod -G sftpgroup tecmint

当然你也可以创建一个新的用户比如 senthil,然后分配给tosftpusers用户组.

# adser senthil -g sftpgroup -s /sbin/nologin # passwd tecmint

修改SSH配置文件

打开 /etc/ssh/sshd_config 配置文件,加入下面代码.

Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /home ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no

保存文件,重启sshd让其生效

# systemctl restart sshd OR # service sshd restart

如果你想让多个用户的跟目录都指定到同一个目录来,那就需要修改每个用户home文件夹的权限了,这样才能避免用户可以访问别个用户的home文件夹

# chmod 700 /home/tecmint

验证SSH和SFTP用户登录

 现在就从本系统登录,然后尝试登录到远程的服务器

# ssh [email protected]

说明下

tecmint– 是远程服务器的登录用户名.

192.168.1.150– 远程服务器IP

然后就会输出类似这样的信息:

[email protected]'s password: Could not chdir to home directory /home/tecmint: No such file or directory This service allows sftp connections only. Connection to 192.168.1.150 closed.

那下面尝试使用SFTP登录试试.

# sftp [email protected] 

然后就会输出类似这样的信息:

[email protected]'s password: Connected to 192.168.1.150. sftp>

下面看看当前的working目录

sftp> pwd

Remote working directory: /

sftp> ls

tecmint

在这里,tecmint就是一个home文件夹. 进入这个目录去创建一些你喜欢的文件或者文件夹测试下.

sftp> cd tecmint

Remote working directory: /

sftp> mkdir test

tecmint

下面

⑦ 如何将SFTP用户限制在某个目录下

你不能这样做。一旦用户创建,用户登录UNIX,那么只要其它目录有允许所有用户读的权限,即目录权限如 drwxrwxr--,那么这个用户就可以查看那些目录。
还有甫龚颠夹郯蝗奠伟订连一些目录是全局性的,如/tmp, /usr/bin, /usr/sbin, /etc等,必然是开放给所有用户可读的,所以你建的这个用户就肯定可以访问的。

⑧ Linux如何实现锁定sftp用户目录

1,安装jailkit软件到/usr/local/jailkit2.8目录下

代码示例:
tar jxvf
cd jailkit-2.8
./configure --prefix=/usr/local/jailkit2.8
make
make install
2,配置jailkit服务

代码示例:
cp /usr/local/jailkit-2.8/extra/jailkit /etc/init.d/
chmod a+x /etc/init.d/jailkit
chkconfig jailkit on
3,设置要限定的目录

代码示例:
mkdir /jail
chown /jail
cd /usr/local/jailkit2.8/sbin
./jk_init -v /jail basicshell
./jk_init -v /jail editors
./jk_init -v /jail extendedshell
./jk_init -v /jail netutils
./jk_init -v /jail ssh
./jk_init -v /jail sftp
mkdir -p /jail/usr/sbin
cp /usr/local/jailkit2.8/sbin/jk_lsh /jail/usr/sbin/
./jk_jailuser -m -j /jail sftp01
./jk_jailuser -m -j /jail sftp02
4,建立sftp用户(例子:sftp01,sftp02两位使用者,同属于sftpuser组)

代码示例:
groupadd sftpuser
adser -g sftpuser sftp01
adser -g sftpuser sftp02
passwd sftp01
passwd sftp02
5,需要修改的部分

代码示例:
vim /jail/etc/passwd
sftpuser:x:505:506::/home/sftpuser:/bin/bash

cp /etc/skel/.bashrc /jail/home/sftp01
cp /etc/skel/.bashrc /jail/home/sftp02
chown sftp01:sftp01 /jail/home/sftp01/.bashrc
chown sftp02:sftp02 /jail/home/sftp02/.bashrc

6,测试sftp sftp01@
也可以用winscp直接访问。

通过以上6步,即可实现锁定sftp用户目录的功能