文件操作 - server.js
返回文件管理
返回主菜单
删除本文件
文件: /root/server.js
编辑文件内容
var express = require('express'); var https = require('https'); var http = require('http'); var fs = require('fs'); var pty = require('node-pty'); var app = express(); var os = require('os'); var ipActual=''; var ifaces = os.networkInterfaces(); var FILE_LOCATION='/usr/local/cwp/.conf/terminaltoken.conf'; var hostname_serv = os.hostname(); Object.keys(ifaces).forEach(function (ifname) { var alias = 0; ifaces[ifname].forEach(function (iface) { if ('IPv4' !== iface.family || iface.internal !== false) { return; } if (alias >= 1) { } else { if(iface.address!="127.0.0.1"){ if(ipActual==""){ ipActual=iface.address; } } } ++alias; }); }); app.use("/",express.static("./")); var keyFile=''; var certFile=''; if (fs.existsSync('/etc/pki/tls/private/hostname.key')) { keyFile='/etc/pki/tls/private/hostname.key'; }else{ keyFile='/etc/pki/tls/private/'+hostname_serv+'.key'; } if (fs.existsSync('/etc/pki/tls/certs/hostname.bundle')) { certFile='/etc/pki/tls/certs/hostname.bundle'; }else{ certFile='/etc/pki/tls/certs/'+hostname_serv+'.cert'; } const options = { key: fs.readFileSync(keyFile), cert: fs.readFileSync(certFile) }; var SOCKETFILE = '/root/terminal.sock'; if (fs.existsSync(SOCKETFILE)) { fs.unlink(SOCKETFILE, function(err){}); } var server = https.createServer(options,app).listen(SOCKETFILE); fs.chmodSync(SOCKETFILE, '600'); var io = require('socket.io')(server,{path:'/terminal/socket.io/'}); var Dtoken=''; io.on('connection', function(socket){ socket.auth = false; socket.on('authenticate', function(dataT){ fs.readFile(FILE_LOCATION, function (err, data) { if (err){ console.log("Not file"); socket.disconnect(); io.close(); }else{ fs.stat(FILE_LOCATION, function (err, stats) { Dtoken=dataT.token; console.log("Authenticated socket ", socket.id); socket.auth = true; var term = pty.spawn('bash', [], { cols: 125, rows: 45 }); term.on('data', function(data){ socket.emit('output', data); }); socket.on('input', function(data){ term.write(data); }); socket.on("disconnect", function(){ term.destroy(); console.log("bye"); }); socket.on("resize", function(dataC){ var cols = parseInt(dataC.cols), rows = parseInt(dataC.rows); console.log(cols+" "+rows); term.resize(cols, rows); }); }); } }); }); });
修改文件时间
将文件时间修改为当前时间的前一年
删除文件