當前位置:首頁 » 文件傳輸 » 設置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用戶目錄的功能