如何使用set_mode将权限应用于文件?

uru*_*ubi 1 rust

如果我的理解是正确的,则以下代码应生成一个可执行文件。但是事实并非如此。它已创建,但未应用指定的权限。我究竟做错了什么?

use std::fs;
use std::os::unix::PermissionsExt;


fn main() {
    fs::File::create("somefile").unwrap()
        .metadata().unwrap()
        .permissions()
        .set_mode(0o770);
}
Run Code Online (Sandbox Code Playgroud)

Ren*_*non 6

用途OpenOptions

use std::fs;
use std::os::unix::OpenOptionsExt;

fn main() {
    fs::OpenOptions::new()
        .create(true)
        .write(true)
        .mode(0o770)
        .open("somefile")
        .unwrap();
}
Run Code Online (Sandbox Code Playgroud)


Kar*_*yan 6

您还可以对现有路径使用set_permissions

use std::fs;
use std::os::unix::fs::PermissionsExt;

fn main(){
     fs::set_permissions("/path", fs::Permissions::from_mode(0o655)).unwrap();
}
Run Code Online (Sandbox Code Playgroud)