Linux Grant仅通过我的脚本访问字典

Linux Grant仅通过我的脚本访问字典,linux,unix,debian,file-ownership,Linux,Unix,Debian,File Ownership,我在Debian9系统上有几个带有文件的目录。我想为除所有者之外的所有人禁用读取这些目录的权限,但我想让一些用户仅通过bash中我自己的脚本列出这些目录中的文件。 我将权限更改为目录和脚本,但当我尝试使用它时,会得到“权限被拒绝”。我明白原因,但无法解决。好的,我们聊了一会儿后,我明白了以下几点: 您(您的用户称为user0)有一个目录,其中包含一些文件,并且您的计算机上有一个特殊类别的用户(user1、user2…usern),您希望授予访问此文件夹的权限。首先,您必须创建一个名为“cowbo

我在Debian9系统上有几个带有文件的目录。我想为除所有者之外的所有人禁用读取这些目录的权限,但我想让一些用户仅通过bash中我自己的脚本列出这些目录中的文件。
我将权限更改为目录和脚本,但当我尝试使用它时,会得到“权限被拒绝”。我明白原因,但无法解决。

好的,我们聊了一会儿后,我明白了以下几点:

您(您的用户称为user0)有一个目录,其中包含一些文件,并且您的计算机上有一个特殊类别的用户(user1、user2…usern),您希望授予访问此文件夹的权限。首先,您必须创建一个名为“cowboys”的组,该组中的用户将有权阅读并执行文件夹添加的操作

# create the group cowboys
groupadd cowboys 

# add user1, user2, etc to the group
usermod -a -G cowboys user1 user2 .... usern  
让我们承认,您要访问的文件夹名为“/不知何故/there/dictionary”

所以,在你创建了文件夹并加入它之后,你就把它交给了你和牛仔组

chown user0:cowboys /somehow/there/dictionary
在下一步中,您必须以可以读取(400)、写入(200)和执行(100)、牛仔可以读取(40)和执行(10)的方式对文件夹进行chmod,并且单词的其余部分不能有任何内容(0)

最后一步是,现在必须在目录中对文件进行chmod
1) 您必须对可执行文件进行chmod的方式与对文件夹进行chmod的方式非常相似,因为文件夹需要具有“可执行”权限才能在文件夹中使用“cd”

chmod 750 /somehow/there/dictionary/*
2) 您将创建的不可执行文件如下所示:

chmod 640 /somehow/there/dictionary/*

这应该可以解决问题。

我想为除所有者之外的所有人禁用读取这些目录的权限。
=您想将世界其他地方设置为不列出目录,也不读取文件吗?你想让一些“可能在一个组中”的人列出目录而不读取文件吗?我们在Linux用户、组和世界其他地方都有,请用这个术语来表达你的问题。群组是一组拥有特殊权限的用户。是的,没错。我的意思是,我想在示例“user1”中创建一个用户,他可以列出目录中的特定文件。我读了一些东西,发现可以用另一个用户的权限运行脚本,所以我真的需要创建一个用户“user1”,该用户只能运行我的脚本“script.sh”,该脚本有权从目录中读取文件。有可能吗?所以“user1”不应该能够写,只是为了读取和执行您使用自己的用户“user0”编写的脚本?他应该能列出你创建的目录?而世界上其他地方不应该能够列出、读取、写入或执行您的文件?您正在查找
设置用户ID setuid
?目录模式700,并且当使用脚本上设置的用户id访问时,仍要访问。
chmod 640 /somehow/there/dictionary/*