如何优化和调整Linux系统的文件权限设置

嘿,我因为 Linux 许可证而头疼了一段时间。

就在去年,我在上海搭建了一台服务器,上面运行着一个 Web 应用程序。
最初,权限没有调整好,可以更改各个表。
由于用户数据被盗。
这是一个悲剧!后来我才知道,车牌太松了。
你看,作为一个新手,我从一开始就错了。
对于普通图像的使用,对于我自己写的文字和文献,我首先会在6 6 6 处呈现出来。
但后来我发现别人可以随意改变它们。
后来我学得更好了。
我通常设置一个7 5 5 的普通用户文件,这意味着所有者可以读写该文件,组和其他人可以读取和执行该文件。
在系统配置文件(例如/etc/passwd)中,我添加了6 4 4 ,该值对于所有者是读写的,并且仅对其他人来说是可读写的。
这样关键文件就保存下来了,程序就可以正常运行了。

后来项目越来越大,不同的人负责不同的事情。
比如有一个哥们是专门做开发的,所以我给他单独创建了一个组,叫dev。
然后我将项目组文件更改为dev,并将权限设置为7 7 0,这样他们组中的人可以进行更改,但其他人则不能。
该权限是按组划分管理的。

后来我发现情况更加困难了。
有时需要允许外部人员一次使用某个文件,或者更确切地说,您希望向某个组授予权限。
这次传统的7 5 5 和6 4 4 已经不够用了。
有时我记得,作者帮我们尝试过。
我需要花时间读取和写入文件,但我不想更改许多其他内容。
这次我使用了ACL。
我输入 setfacl -m u: Foris: rwx name 给他对该表的读、写和执行权限。
我用了之后又改回来了。
这是一个非常强大的东西,并且比旧系统灵活得多。

当然,做对比做错更糟糕。
所以后来我就养成了定期签到的习惯。
例如,我有时会发现使用 /home -type d -exec chmod 7 00 {}\;更改所有用户主目录的权限,以便我可以登录并单独工作。
或者使用 find /etc -type f -exec chmod 6 4 4 {}\;配置文件权限进行合并。
有时文件所有者和组不匹配,因此我使用 chown -R user:group directory 来更改许多文件的所有者和组。

还有这些特殊权限,SUID、SGID 和 Lentesco 位。
我用的不多,但必须小心使用。
例如,文件 /usr/bin/passwd 必须设置 SUD 位,否则更改密码将不起作用。
对于 /var/tmp 这样的常见目录,我有时会采取一些技巧来防止别人删除你的文件。
如果这些特殊资源使用不当,可能会出现问题。

一般来说,Linux的权限是根据情况来定义的。
对于普通文件,使用 chmod 和 chown。
如果您想共享权限,请使用组。
如果比较复杂,可以使用ACL。
对于特殊需要,请尝试 SUID、SGID 和 Sticky。
最重要的是要经常看,经常检查,不要出错。
这一切都是我入坑的经历所取得的。
向你学习。

Linux下设置权限让用户只删除自己的文件的方法

在这四个八进制数中,第一个通常被忽略。
最后三个分别对应SUID、SGID和sticky-bit。

SUID:当一个文件被执行时,它以该文件的所有者身份运行,root所有者是超级用户。

SGID:当一个文件被执行时,它以该文件所属的组运行。

sticky-bit:防止其他用户删除文件。

使用chmod修改权限,比如给用户写权限,给组写权限。
命令是 chmodu+w,g+wmyfife。

要设置 SUID、SGID 和粘滞位,您还可以使用 chmod。
例如,chmodu+smyfife 向用户授予 SUID 权限,chmodg+s 向组授予 SGID 权限,chmodo+t 设置粘滞位。

myfife文件中的T是sticky-bit权限,可以防止其他用户删除该文件。

要防止删除,请使用 chmod1 7 7 7 myfife 进行设置。

Linux系统中如何修改及设置文件系统的权限及安全

老实说,我已经尝试过很多处理 Linux 许可的方法。
我们来谈谈 chattr 和 lsattr。
如果这两个命令使用正确,可以给系统添加一个强限制。
我记得有一次我管理的服务器被黑客入侵,后来我发现密钥日志文件的权限被更改了。
如果我没有事先用 Chatter 锁定这个文件,后果将是可怕的。
喋喋不休非常实用。
例如,如果直接用chattr +i /var/log/syslog 锁定系统日志文件,即使root也无法更改它。
我有一个客户创建了一个备份脚本,文件的名称是backup.sh。
不过黑客把它改成了suid,一杀掉,权限就增加了。
后来他吸取了教训,给所有的脚本文件都加上了+i属性,现在更加安全了。
但是,请注意,一旦添加了不可变功能,您甚至无法删除它们。
此时,应该使用chattr -i来删除它们,或者使用dd if=/dev/zero of=filename这种攻击删除方法。

lsattr很简单,就是用来查看属性的。
我通常想写一个脚本, get / -type f -perm / 4 000 | lsattr,这样我就可以快速找到所有suid程序。
有一次,我的服务器上突然出现了一个带有s位的程序。
查了半天,发现是一个特定开发包自带的工具。
但那时已经有点晚了。
还好我之前支持过这个系统。

关于许可证检查,获取命令非常灵活。
我有每周运行一次 cron 作业的习惯,查看哪些目录启用了写权限 / -perm -2 -type d -exec ls -ld {} \;查出。
还有一个很酷的操作:find / -perm / 6 000 |然而,这种方法消耗更多的资源。
后来我改用了轻量级版本/usr/bin -perm/4 000 -ls。

/tmp 和 /var/tmp 等区域非常容易受到安全漏洞的影响。
我管理一台旧服务器,硬盘即将填满。
当我检查时,我发现这些目录中的所有文件都是临时文件。
后来直接挂载到/etc/fstab时我添加了nosuid、noexec和nodev,结果立竿见影。
一位技术人员告诉我,他见过黑客使用/tmp作为数据库,将临时文件转换为数据库文件,这比常规数据库更快。
需要明确的是,这些目录不能完全禁用,而是限制权限这很重要。

至于/dev/shm,这个东西就比较神秘了。
我有一个朋友使用虚拟机。
虚拟机中的程序实际上可以处理主机的共享内存。
最后我发现/dev/shm没有任何限制。
后来改用tmpfs挂载,效果一样但更安全。
但请注意,必须适当调整 tmpfs 内存限制,以防止特定进程占用整个内存。
这些操作或难或简单。
关键是制定例行程序,例如定期进行许可证检查并立即处理任何异常情况。
我有一台笔记本电脑,现在所有重要文件都添加了 +i 功能。
即使系统装的是双系统,启动时也会自动挂载不幸的根目录。
说实话,有点高估了,但说到安全,拥有总比失去好。