文件传输
SSH资产上的文件可以用两种方式传:
- 网页终端旁边的文件面板,什么都不用装;
- 经由SSH网关用
sftp、scp和rsync。
RDP资产则通过Casvisor重定向进会话的一个磁盘传文件,桌面旁边有同样的文件面板。
这些方式都由权限里的上传(Upload)和下载(Download)动作放行,传过和改过的文件都会记进操作日志。VNC和Telnet不能传文件。
文件面板
用户对资产有上传或下载权限时,SSH终端和RDP桌面上会有一个文件按钮,点开后旁边出现文件面板。SSH会话里,面板通过SFTP复用终端已有的SSH连接,所以看到的是资产账号的文件。RDP会话里,面板显示的是重定向的磁盘。
- SSH打开时在账号的主目录,RDP打开时在磁盘的根目录。用上一级、主目录和刷新移动,点文件夹进入。
- 下载把文件保存到浏览器,双击文件也一样。文件夹不能下载。
- 上传把一个或多个文件传到当前文件夹,也可以把文件拖到面板上。
- 新建文件夹、重命名和删除。删除前会确认,删文件夹会连同里面的内容一起删掉。
每个操作都在服务器上按用户此刻的权限检查,不只是打开面板时检查一次。面板只能在用户自己的、仍然连着的会话里用。
RDP
用户对RDP资产有上传或下载权限时,Casvisor会像Windows客户端重定向本地磁盘那样,把一个磁盘重定向进会话。远程桌面上它是casvisor盘,路径是\\tsclient\casvisor。里面的文件存在Casvisor服务器上,工作目录下的data/drives/<会话>,文件面板显示的就是这个目录:
- 传进服务器:在面板里上传,再在远程桌面上从这个磁盘打开或复制。
- 从服务器传出:在远程桌面上存到或复制到这个磁盘,再从面板下载。
这两个动作也限制远程桌面能对磁盘做什么:
| 用户有 | 远程桌面能 |
|---|---|
| 上传和下载 | 读写这个磁盘 |
| 只有上传 | 读上传进来的文件,但不能写,所以不能借它把东西拿出来 |
| 只有下载 | 往磁盘里写,但只能读回自己写的文件 |
磁盘只在会话期间存在:会话结束时它的目录会被删掉,Casvisor启动时也会删掉残留的目录。面板和磁盘本身都没有大小限制,会话期间文件占用的是Casvisor服务器的磁盘空间。
哪个动作允许什么
| 操作 | 网页文件面板 | SFTP、scp、rsync |
|---|---|---|
| 列目录、看文件信息 | 上传或下载 | 上传或下载 |
| 读文件 | 下载 | 下载 |
| 写文件、新建文件 | 上传 | 上传 |
| 新建、重命名、删除文件或文件夹 | 上传 | 上传 |
| 改权限、属主或时间,建链接 | 上传 |
只有下载权限时,sftp能浏览和下载,但任何改动都会报Permission denied。两个都没有时,sftp会被拒绝,提示you have no permission to transfer files on the asset。
scp -O(旧协议)和rsync不走SFTP。对它们,网关从客户端在资产上执行的命令判断方向:往资产上传要上传权限,从资产取文件要下载权限。
记录了什么
- SSH会话的文件面板:每次下载、每个上传的文件、每次新建文件夹、重命名和删除都是一条记录(
sftp-download、sftp-upload、sftp-mkdir、sftp-rename、sftp-delete),带用户、资产和路径。 - RDP会话的文件面板:同上,记为
file-download、file-upload、file-mkdir、file-rename和file-delete。 - 重定向的磁盘:远程桌面对它做的操作也会记下:
file-create、file-mkdir、file-read、file-write(文件关闭时记一次,带写入的字节数)、file-rename和file-delete。 - SFTP(包括OpenSSH 9.0起的
scp):每个打开来读或写的文件,以及每次新建文件夹、重命名、删除和建链接,都是一条记录,从sftp-download到sftp-symlink。改权限或时间不记。 - **
scp -O和rsync**不按文件逐个记录。它们的命令行(里面有路径)记在会话的命令记录里。
列目录不记,文件内容也不保存。