Linux系统里给用户分配权限,说白了就是管理谁能看、谁能改、谁能跑你的文件和程序。权限设置不当,轻则数据泄露,重则系统被搞瘫。很多新手一碰到“chmod”、“chown”这些命令就头大,觉得字母数字组合太抽象。其实权限管理有一套清晰逻辑,只要顺着思路走,几分钟就能上手。

如何用chmod修改文件权限

chmod是Linux里修改权限的核心指令。它有两种写法:数字模式和符号模式。数字模式更简洁,用三位数字分别代表文件所有者、所属组和其他用户的权限。读权限是4,写权限是2,执行权限是1,把这三个数加起来就是最终权限值。比如755表示所有者有读写执行(4+2+1=7),组用户和其他用户只有读和执行(4+1=5)。

linux用户权限分配_linux分配权限命令_linux给用户分配权限

符号模式则用字母表示,u代表所有者,g代表所属组,o代表其他用户,a代表所有用户。加号表示增加权限,减号表示移除。比如chmod u+x filename就是给所有者增加执行权限。我用数字模式更多,因为它能一次性搞定所有设置,不用一条条改。

有一点容易踩坑:对目录执行chmod时,如果不加-R参数,只会改目录本身,不会影响里面的文件。想递归修改整个目录树,一定要写成chmod -R 755 foldername。

创建新用户时该给什么权限最安全

linux用户权限分配_linux分配权限命令_linux给用户分配权限

很多管理者图省事,直接把新用户扔进root组或者给sudo权限,结果出事时追悔莫及。Linux里有个基本原则叫“最小权限原则”——用户只需要够用的权限,不能多给。新建用户默认只有自己家目录的完全控制权,系统文件和他人目录都动不了。

如果你想给用户安装软件或者执行某些管理操作的权限linux给用户分配权限,建议用sudo分组管理。系统自带的sudo组只有运行sudo命令的能力,但不会直接变成root。你还可以创建自定义组,比如webgroup,然后把需要管理网站的用户加进去,再给特定目录设置组权限。这样既灵活又安全。

对于服务器上的FTP用户或者数据库备份用户,连登录shell都不需要给他们。用usermod -s /sbin/nologin username就能把用户的shell改成禁止登录,他们只能通过FTP或者特定程序访问文件,无法执行命令。这个操作用得多,能有效减少攻击面。

linux给用户分配权限_linux用户权限分配_linux分配权限命令

如何用chown更改文件所属用户和组

当你需要把文件从一个用户名下转给另一个用户,或者调整文件所属组时,chown就派上用场了。基本用法是chown username:groupname filename。如果不修改组,可以只写用户名;如果不修改用户,只改组,可以用chown :groupname。

一个常见场景是:你用root账号帮普通用户安装了软件包,结果安装目录的所有者是root,用户无法正常使用。这时候你需要chown -R username:username /path/to/software,把整个目录的所有权转给那个用户。注意,-R参数同样适用于递归处理。

linux给用户分配权限_linux用户权限分配_linux分配权限命令

还有个小技巧:chown --reference=模板文件 目标文件,可以把目标文件的所有者和组改成和模板文件一模一样。这在批量设置权限时非常高效,省得一个个输入用户名。

普通用户如何临时获得root权限

有时候用户只是偶尔执行一个需要管理员权限的命令,没必要永久加入sudo组。Linux提供了几种临时提权方式。最常用的是sudo命令,但前提是用户被加入了/etc/sudoers文件。vim /etc/sudoers后,添加一行“username ALL=(ALL) ALL”,用户就能用sudo执行任何命令。

更严格的做法是限制sudo可以执行的命令范围。比如只允许用户重启Nginx服务,可以写成“username ALL=(ALL) /usr/sbin/nginx restart”。这样用户无法通过sudo执行其他任何命令,安全性高得多。

对于完全不想改sudoers文件的情况,可以用su命令让用户先切换成root用户。不过这种方法要求知道root密码linux命令,而且切换后所有操作都是root身份,风险较大。我个人更推荐sudolinux系统命令,因为它记录日志,事后能查到谁执行了什么命令。

权限管理这件事实话说并不难,上手之后你会发现它比Windows的权限体系还要清晰。关键是养成习惯:多个用户共用服务器时,永远别共享密码;每个服务单独建用户;定期检查哪些用户有sudo权限。做到这三点linux给用户分配权限,你的Linux系统安全性至少能提升一大截。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复