#Linux学习笔记# Linux文件的所有者、群组和其他人
1.关于所有者、群组和其他人
在Linux系统中,每个文件都具有User、Group和Others三种身份的权限配置。那这三种身份分别表示什么意思呢?配置这三种身份的权限有啥意义呢?
(1)文件所有者(User)
由于Linux系统支持多人多任务,因此常常存在多个用户同时使用一个Linux系统的情况。那么,如何确认每个用户私密文件的访问控制呢?这就是文件所有者存在的原因。
Linux系统为每个用户提供一个用户主目录,用户的主目录为/home/<username>。例如,下图的/home/lienhua34是我的主目录,该目录下只有我能够添加文件和删除文件,其他人可以浏览,但是能不能查看我的文件内容就依具体的文件权限了。
每个Linux用户创建的文件的所有者都是自己。如果我有一个私密的文件,我当然不希望别人能够看到,于是我就这个文件放到我的主目录下,然后将文件的权限设置成只有文件所有者(即我自己)能够查看和修改。就算其他用户知道我有这个文件,但他还是不能查看、修改和删除。
(2)群组(Group)
试想这样子一个场景:你在一个团队中,团队中的每个成员都在同一台Linux机器上进行工作,该Linux机器的某个目录下存放你们团队的工作文档,团队中的每个成员都应该对这份文件具有查看和修改操作,同时又不希望这台机器上该团队之外的用户具有访问权限,那我们如何实现这种权限控制呢?这就需要用到群组的概念。
我们可以在Linux系统中为该团队建立一个群组,将该团队的所有成员添加到该群组中。然后将属于这个团队的文件所属群组设置为该群组,然后将文件的群组权限设置为可读写,于是该群组所有成员便都可以查看和修改,而不属于该群组的用户便没有这个权限。
(3)其他人(Others)
不属于文件所有者或文件所属群组成员的用户,便都是其他人。
当然,有个比较特殊的超级用户,即root。该用户可以访问Linux机器上的所有文件。
更详细的介绍可以参考鸟哥Linux私房菜:使用者和群组
2.修改所有者和群组
我们通过ls -l可以查看文件的属性,如下图所示,
其中,第3和第4列分别表示文件的所有者(lienhua34)和所属群组(lienhua34)。我们可以通过chown和chgrp分别来修改文件的所有者和所属群组。
(1)修改文件所属群组chgrp
chgrp即为change group的缩写。命令chgrp的用法如下,
chgrp [-R] GROUP FILE
要修改的群组名GROUP必须是一个已存在的群组,其中-R选项是否递归修改目录下的所有文件和子目录的所属群组。例如,下面修改了文件filea的所属群组为root,
lienhua34@test$ sudo chgrp root filea [sudo] password for lienhua34: lienhua34@test$ ls -l total 4 -rw-r--r-- 1 lienhua34 root 0 Dec 12 18:38 filea drwxr-xr-x 2 lienhua34 lienhua34 4096 Dec 12 18:38 subdir lienhua34@test$
(2)修改文件所有者chown
chown即为change owner的缩写。命令chown的简单用法如下所示,
chown [-R] OWNER[:[GROUP]] FILE
命令chown除了能够修改文件所有者,也能够同时修改文件的所属群组(通过在所有者后面紧着冒号(:)和群组名)。
样例:
将文件filea的所有者修改为root,
lienhua34@test$ sudo chown root filea lienhua34@test$ ls -l total 4 -rw-r--r-- 1 root root 0 Dec 12 18:38 filea drwxr-xr-x 2 lienhua34 lienhua34 4096 Dec 12 18:38 subdir
同时将文件filea的所有者修改为lienhua34以及所属群组修改为lienhua34,
lienhua34@test$ sudo chown lienhua34:lienhua34 filea lienhua34@test$ ls -l total 4 -rw-r--r-- 1 lienhua34 lienhua34 0 Dec 12 18:38 filea drwxr-xr-x 2 lienhua34 lienhua34 4096 Dec 12 18:38 subdir
(done)
posted on 2015-12-12 19:19 lienhua34 阅读(8529) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端