首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >某些Linux日志上的只读权限

某些Linux日志上的只读权限
EN

Server Fault用户
提问于 2015-03-16 10:17:02
回答 1查看 3.1K关注 0票数 1

我想限制某个用户(我们称之为记录器)只能读取一些(并非全部)日志文件(web、php框架、radius等),.I不知道如何以“最佳”的方式来读取。

到目前为止,我为我的用户设置了一个着色的sftp帐户,并将所需的日志文件夹绑定到他的home for (/home/logger)中,例如:

/var/log/nginx /home/logger/log/nginx无_netdev,绑定,默认值为0 0

这里是lgos dir权限:

R-5记录仪4096火星12 10:09日志

然而,我不得不将这个用户添加到特定的组(www-data,freerad)。

记录器:记录器www-数据自由sftp

我不认为这是正确的方法。此外,用户还可以删除一些文件( www-data组对symfony应用程序的日志具有r+w权限)。

理想情况下,我希望我的用户拥有最少的特权(我相信这意味着RO ),并且仍然能够查看他需要访问的所有日志。

你能给我一些提示一下你会怎么做吗?

提前谢谢。

编辑:按照Arribah的回答,我尝试使用ACL,例如:

getfacl半径/Radius.log

代码语言:javascript
复制
# file: radius/radius.log
# owner: freerad
# group: freerad
user::r--
group::r--
group:logger:r--
mask::r--
other::---

记录器用户在记录器组中:

组记录器记录器:记录器sftp

我创建了一个radius dir (in /home/logger):

根根4096 mars 16 14:29半径

然后我使用了一些符号链接:

lrwxrwxrwx 1根30 mars 16 14:29半径/Radius.log -> /var/log/freeradius/radius.log

现在,我尝试使用记录器通过SFTP登录到他的彩色住宅:

我可以看到文件、文件夹和文件夹的名称,但是如果我试图获取一个文件,我就会出现一个“未找到的文件”错误,试图获取该文件半径/Radius.log。

在这个问题上,我真的感到很愚蠢。:/

EN

回答 1

Server Fault用户

发布于 2015-03-16 11:30:45

如果为用户提供对日志目录的读取权限,则不能确保用户对其中的文件具有读取权限(或任何其他权限)。您需要分别为每个日志文件提供此用户的读取权限。这很可能是您需要将读取器添加到指定组的原因,因为这些组对所讨论的日志文件具有组权限。您可以通过运行

ls -l

在logs文件夹中,检查每个文件属于哪个组。

在您的场景中,实现您要求的最正确的方法是设置ACL,这是工作中最强大的unix工具。

看看ACL:在Linux上使用访问控制列表,这是一个很大的博客文章,但它描述了所有的步骤,完全和简单,以获得这种感觉。

如果您需要一个更快速的n-脏解决方案(除非您不在生产环境中,否则我不推荐它),您可以将您的用户从每个组中提取出来,然后将‘Other’权限设置为r-,(或者您的chmod八进制表示的xx4 )。

编辑:我忽略了这样一个事实,即您试图在着色环境中这样做。在这种情况下,由于符号链接本身的性质,符号链接将不能与ftp (或sftp )一起工作。这里给出了一个很好的解释,尽管我似乎倾向于只链接大型文章。

不过,您可以使用mount --bind实现相同的行为,这将使日志目录在记录器用户的home dir中可用:

代码语言:javascript
复制
mount --bind /var/log /home/logger/logs/

这将为您提供一个logs目录,其中包含在/var/log中找到的所有内容。从那时起,您可以允许logger组只访问您想要的特定日志,而不允许其他任何内容,这样他就无法读取例如/var/log/auth.log等。别忘了添加对各个父文件夹的访问权限,否则用户只能通过键入完整路径来访问日志,这有时会令人沮丧。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/675782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档