无法访问我拥有的文件

无法访问我拥有的文件

我创建了一个文件夹 /root/bin ,用于存储我的自定义脚本。我们的想法是任何用户都可以访问这些脚本,因此我将用户添加到“用户”组中。我给了该组对该文件夹以及该文件夹中所有文件的rwx权限。我也设置了该组的所有者。但是,我仍然无法以任何非 root 用户身份访问这些脚本。请帮忙!

答案1

根据文件系统层次结构标准/usr/local目录及其子目录(例如bin子目录)用于“本地数据,特定于该主机”,而目录则/root是root用户的主目录。

root 的主目录通常应该是所有普通用户都无法访问的。

管理员可以通过 root 帐户在 中安装本地脚本/usr/local/bin,这将使所有拥有此目录的用户都可以访问它们PATH(或者知道如何在给定绝对路径名的情况下执行它们)。

除了维护脚本的用户(可能是 root 用户)之外,任何人都不能写入这些脚本。这意味着这些文件的所有权应该是root,并且它们很可能也属于该root组,除非您有一个特殊的可执行文件组,例如binwheel(如在某些 BSD 系统上找到的;检查例如/bin和下的其他可执行文件/usr/bin)。权限应该是r针对x所有人的,也可能是w针对所有者的(除非可写副本保存在其他地方并且已安装版本是所有人都不可写的)。

这意味着使用 来设置文件的权限755或,具体取决于文件所有者是否可写 ( ) 或不可写 ( )。555chmod755555

答案2

FORMAT="ERROR: path: '%s' group name: '%s' group perm: '%s'\n"
find /root/bin -perm -g+rX -printf "%p %g %M\n" | \
    while read path group perm; do
        if ! [[ ${group} == "users" && ${perm:4:3} == "r-x" ]]; then
            printf "${FORMAT}" ${path} ${group} ${perm:4:3}
        fi
    done
ERROR: path: '/root/bin' group name: 'root' group perm: 'r-x'
ERROR: path: '/root/bin/script' group name: 'root' group perm: 'r-x'

它有什么作用?它列出了所有路径/root/bin并检查组是否为“users”并且许可是否为“rx”。

相关内容