小编Mus*_*afa的帖子

Docker,以只读方式挂载卷

我正在使用Docker,我想安装一个变化很大的dyanmic文件夹(所以我不必为每个执行器生成docker,这会太昂贵),但我希望该文件夹只读.然而,将文件夹所有者更改为其他人的工作chown需要root访问权限,我不希望将其暴露给应用程序.

当我使用-vflag挂载时,它会提供我给出的任何用户名,我在docker镜像中创建了一个非root用户,但是卷中所有文件与所有者作为运行docker的用户,更改为我提供的用户命令行,所以我无法制作只读文件和文件夹.我怎么能阻止这个?

我还添加了mustafa ALL=(docker) NOPASSWD: /usr/bin/docker,所以我可以通过终端更改为另一个用户,但文件仍然拥有我的用户的权限.

readonly docker

97
推荐指数
2
解决办法
6万
查看次数

如何与Socket.IO 1.x和Express 4.x共享会话?

如何与Socket.io 1.0和Express 4.x共享会话?我使用Redis商店,但我认为这无关紧要.我知道我必须使用中间件来查看cookie和获取会话,但不知道如何.我搜索但找不到任何工作

    var RedisStore = connectRedis(expressSession);
    var session = expressSession({
        store: new RedisStore({
            client: redisClient
        }),
        secret: mysecret,
        saveUninitialized: true,
        resave: true
    });
    app.use(session);

    io.use(function(socket, next) {
        var handshake = socket.handshake;
        if (handshake.headers.cookie) {
            var str = handshake.headers.cookie;
            next();
        } else {
            next(new Error('Missing Cookies'));
        }
    });
Run Code Online (Sandbox Code Playgroud)

session node.js express socket.io

82
推荐指数
3
解决办法
4万
查看次数

如何编写图形DOS游戏?

我一直想知道如何编写像Sky Roads,Turbo,Aladdin,Duke Nukem,Commander Keen 6这样的DOS游戏.我找不到一个好的来源.如果我用C#,C++,Java等编写控制台应用程序.它总是显示并保持静止.它始终是文本.

  1. 他们是如何生成图形的?
  2. 有没有可以使用的库?
  3. 他们使用什么语言?

任何好的来源将不胜感激.

graphics dos

29
推荐指数
3
解决办法
2万
查看次数

Docker作为root用户运行时的安全性

Docker 博客文章指出:

默认情况下,Docker容器非常安全; 特别是如果你负责在容器内运行你的进程作为非特权用户(即非root用户)."

那么,如果我在docker下以root身份运行,那么安全问题是什么?我的意思是,如果我将我的进程作为非特权用户来处理它是非常安全的,那么,作为root用户,如何在容器中托管会有害?我只是要求它理解它,如果以root身份运行它是不安全的,它怎么能被隔离?哪个系统调用可以暴露主机系统呢?

security docker

21
推荐指数
2
解决办法
5992
查看次数

为什么阵列不可扩展?

当我们创建一个数组时,我们无法改变它的大小; 它是固定的.好吧,看起来不错,我们可以创建一个新的更大的数组并逐个复制值,这有点慢.它的技术背景是什么?

java arrays size

17
推荐指数
3
解决办法
1512
查看次数

Facebook API,电话号码

我正在开发一个Facebook应用程序,我需要获取用户的所有信息,包括手机.然而,即使这个网页声称https://developers.facebook.com/blog/post/446user_mobile_phone允许存在的,无论是文档中包含的移动电话号码的字段.我正在创建联系人同步,因此电话领域非常重要.

为什么会被阻止?使用移动设备进行垃圾邮件不是一种非常好的垃圾邮件方法,它需要付出代价.他们甚至允许发送电子邮件(虽然你可以将它改为隐形地址),但我们无法获得电话号码或地址.

有没有办法通过应用程序获取它?

编辑:即便如此:http://developers.facebook.com/blog/post/447

facebook-fql facebook-c#-sdk

17
推荐指数
1
解决办法
6万
查看次数

猫鼬,从模型中删除属性

我使用Node.js和Mongoose来存储一些数据.更新后,我有以下结构:

 { created: Mon, 30 Jan 2012 19:25:57 GMT,
  _id: 4f21a6028132fba40f0000b7,
  features:
   { imdb_id: 'tt0822975',
     released: '2007-03-24',
     tvdb_id: 103191,
     type: 'series',
     names: [ 'DinoSapien' ],
     pictures: [],
     cast: [],
     genres: [ 'Action and Adventure', 'Children' ] },
  type: 1 }
Run Code Online (Sandbox Code Playgroud)

我需要删除此文档中的eg castpicturesfield.但是,我已经应用了一个解决方案来从数据库中删除空数组,但它不起作用:

instance = (an instance from calling findOne on my model)
cast = (an array)
if ( cast && cast.length > 0){                          
     instance.features.cast = cast;                     
} else {
     delete instance.features.cast;
}
console.log(cast); // null
console.log(instance), // …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

10
推荐指数
1
解决办法
6985
查看次数

NodeJS通过流复制文件非常慢

我在VMWare下的SSD上用Node复制文件,但性能非常低.我测量实际速度的基准如下:

$ hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   12004 MB in  1.99 seconds = 6025.64 MB/sec
 Timing buffered disk reads: 1370 MB in  3.00 seconds = 456.29 MB/sec
Run Code Online (Sandbox Code Playgroud)

但是,以下复制文件的节点代码非常慢,因此后续运行不会使其更快:

var fs  = require("fs");
fs.createReadStream("bigfile").pipe(fs.createWriteStream("tempbigfile"));
Run Code Online (Sandbox Code Playgroud)

运行如下:

$ seq 1 10000000 > bigfile
$ ll bigfile -h
-rw-rw-r-- 1 mustafa mustafa 848M Jun  3 03:30 bigfile
$ time node test.js 

real    0m4.973s
user    0m2.621s
sys     0m7.236s
$ time node test.js 

real    0m5.370s
user    0m2.496s
sys     0m7.190s
Run Code Online (Sandbox Code Playgroud)

这里有什么问题,如何加快速度?我相信只需调整缓冲区大小,我就可以在C中更快地编写它.令我困惑的是,当我编写简单的几乎pv等效程序时,将stdin管道输出到stdout,如下所示,它非常快.

process.stdin.pipe(process.stdout);
Run Code Online (Sandbox Code Playgroud)

运行如下:

$ dd …
Run Code Online (Sandbox Code Playgroud)

performance file-io pipe stream node.js

10
推荐指数
1
解决办法
5267
查看次数

Golang exec进程并取消它

我正在尝试使用我的守护进程分叉进程,并在我的守护程序崩溃的情况下尝试拒绝它们.Regular os/exec是高级的,因此我去了syscall.ForkExec并生成了以下代码:

package main

import (
    "fmt"
    "os"
    "os/exec"
    "syscall"
    "time"
)

func main() {

    cmd := "myproc"
    binary, lookErr := exec.LookPath(cmd)
    if lookErr != nil {
        panic(lookErr)
    }
    fmt.Println(binary)

    os.Remove("/tmp/stdin")
    os.Remove("/tmp/stdout")
    os.Remove("/tmp/stderr")

    fstdin, err1 := os.Create("/tmp/stdin")
    fstdout, err2 := os.Create("/tmp/stdout")
    fstderr, err3 := os.Create("/tmp/stderr")
    if err1 != nil || err2 != nil || err3 != nil {
        fmt.Println(err1, err2, err3)
        panic("WOW")
    }

    argv := []string{"hi"}
    procAttr := syscall.ProcAttr{
        Dir:   "/tmp",
        Files: []uintptr{fstdin.Fd(), fstdout.Fd(), fstderr.Fd()},
        Env:   []string{"VAR1=ABC123"}, …
Run Code Online (Sandbox Code Playgroud)

linux fork exec go

9
推荐指数
1
解决办法
6002
查看次数

用于HTML 5视频的MP4持续时间的HTTP标头

我正在尝试流式传输MP4视频,因为它是从网络服务器编码的.我相信我使用了适当的标志,但它无法正常工作.当我从流中下载视频并使用VLC打开它时,它会正确显示持续时间.由于套接字不可搜索,我假设它将元数据写入结束?我的Chrome浏览器始终显示8秒的持续时间.前8秒以正常速度播放,但之后暂停按钮变为播放按钮,视频播放速度非常快,可能与收到的速度一样快.但是音频以正常速度播放.我尝试过,document.getElementById('myVid').duration = 20000但这是一个只读字段.

我想知道,无论如何要在HTTP标头中以任何其他方式明确说明持续时间吗?我找不到任何关于它的文档.

ffmpeg -i - -vcodec libx264 -acodec libvo_aacenc -ar 44100 -ac 2 -ab 128000 -f mp4 -movflags frag_keyframe+faststart pipe:1 -fflags +genpts -re -profile baseline -level 30 -preset fast

对于那些认为与编程无关的选民来说,我在自己编写的服务器中使用它,我需要通过JavaScript以编程方式设置持续时间或设置HTTP头.我相信它可能与ffmpeg或http标头有关,这就是我在这里发布的原因.

app.get("/video/*", function(req,res){
    res.writeHead(200, {
        'Content-Type': 'video/mp4',
    });
    var dir = req.url.split("/").splice(2).join("/");
    var buf = new Buffer(dir, 'base64');
    var src = buf.toString();

    var Transcoder = require('stream-transcoder');
    var stream = fs.createReadStream(src);
    // I added my own flags to this module, they are at below:
    new Transcoder(stream)
        .videoCodec('libx264')
        .audioCodec("libvo_aacenc") …
Run Code Online (Sandbox Code Playgroud)

video html5 ffmpeg

8
推荐指数
1
解决办法
4170
查看次数