【问题标题】:Finding out the groups to which the user belongs to from within R从R中找出用户所属的组
【发布时间】:2013-11-10 11:44:17
【问题描述】:

我想检查给我的 R 脚本的输出目录是否可写。但要检查这一点,我还需要检查当前有效用户所属的组,我似乎无法找到如何做到这一点。该查询也无法很好地 google。

这是我目前所拥有的

is.writable <- function(dir)
    {
        if(file.info(outputDir)['size'] == NA || file.info(outputDir)['isdir'] == FALSE)
            return FALSE
        mode <- file.info['mode']
        owner <- file.info['uname']
        fileGroup <- file.info['grname']
        user <- Sys.info()[["effective_user"]]

        if(bitwAnd(mode,2) != 0) # every can access
            return TRUE
        #if(bitwAnd(mode,16) != 0) # 16=0020 in octal, some group has access
        if(bitwAnd(mode,128) != 0) # 128 = 0200 in octal, the owner has write access
            return user == owner
    }

我使用this 来实现它。一旦我弄清楚如何获取有效用户所属组的向量,我就可以自己完成。

谢谢,

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以随时使用groups 命令:

    > groups = strsplit(system("groups",intern=TRUE)," ")[[1]]
    > groups
    [1] "rowlings"   "adm"        "sudo"       "lpadmin"    "sambashare"
    

    或者,一个围绕 Unix API 相关部分的 Rcpp 包装器将完成这项工作。

    (显然这在 Windows 上大多行不通)

    【讨论】:

      【解决方案2】:

      我似乎找到了检查目录(或文件)是否可写的解决方案。但是,我还不知道如何获取用户组,因此尽管我将其发布为答案,但我不会接受它,因为它没有解决主标题中的问题。

      要检查一个director outputDir是否可写,只需检查这个条件是否为真:

      file.access(outputDir,2) == 0
      

      【讨论】:

        猜你喜欢
        • 2023-03-16
        • 2012-06-28
        • 2011-04-10
        • 2019-03-13
        • 1970-01-01
        • 1970-01-01
        • 2021-05-30
        • 2018-11-18
        • 1970-01-01
        相关资源
        最近更新 更多