chown、chgrp、chmod
1.权限对应的数值
一开始理解权限对应的数值总是要去用二进制去算例如r-x是多少rwx是多少,后来才知道r就 是4,w就是2,x就是1,不管权限怎么变,他们对应的数值就是对应位相加。。
权限对于文件来说
r 可读,可以使用类似cat等命令查看文件内容
w 可写,可以编辑或删除此文件
x 可执行
权限对于目录来说
r 可以对此目录进行ls以列出内部的所有文件
w 可以在此目录创建文件
x 可以使用cd切换进此目录,也可以使用ls- l来查看目录内部文件的详细内容。目录默认
SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者。
SGID:运行某程序时,相应进程的属组时程序文件自身的属组,而不是启动者自身的属组
不要乱给文件SUID,SGID
2.用户类别
管理员: o root
普通用户:
系统用户:1-499
一般用户:500-60000
3.用户组类别
私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名相同的组
基本组:用户的默认组
附加组:额外组
4.chown 属主 文件[夹] 改变文件属主(管理员命令)
1 2 3 4 5 | [root@localhost ~] # ls -l /home/admin/a -rw-rw-r--. 1 admin admin 0 Jan 3 12:52 /home/admin/a [root@localhost ~] # chown root /home/admin/a [root@localhost ~] # ls -l /home/admin/a -rw-rw-r--. 1 root admin 0 Jan 3 12:52 /home/admin/a |
-R:递归修改,目录内的文件的属主
--reference=文件1 文件2:将文件2的属性改成文件1的属性(属主和属组都改)
1 2 3 4 5 6 7 | [root@localhost ~] # ls -l a /home/admin/a -rw-r--r--. 1 root root 0 Jan 3 13:14 a -rw-rw-r--. 1 admin admin 0 Jan 3 12:52 /home/admin/a [root@localhost ~] # chown --reference=a /home/admin/a [root@localhost ~] # ls -l a /home/admin/a -rw-r--r--. 1 root root 0 Jan 3 13:14 a -rw-rw-r--. 1 root root 0 Jan 3 12:52 /home/admin/a |
USERNAME:GRPNAME:同时改变属主属组
1 2 3 4 5 6 7 8 | [root@localhost ~] # chown admin:admin /home/admin/a [root@localhost ~] # ls -l /home/admin/a -rw-rw-r--. 1 admin admin 0 Jan 3 12:52 /home/admin/a ##可以同时改属主属组 [root@localhost ~] # chown :root /home/admin/a [root@localhost ~] # ls -l /home/admin/a -rw-rw-r--. 1 admin root 0 Jan 3 12:52 /home/admin/a ##也可以单用冒号改属组 |
5.chgrp 属组 文件[夹] 改变文件属组
1 2 3 | [root@localhost ~] # chgrp root /home/admin/a [root@localhost ~] # ls -l /home/admin/a -rw-rw-r--. 1 root root 0 Jan 3 12:52 /home/admin/a |
-R:递归修改,目录内的文件的属组
--reference=文件1 文件2:将文件2的属性改成文件1的属性
6.chmod 权限 文件[夹] 更改文件权限
1 2 3 4 5 | [root@localhost ~] # ls -l a -rw-r--r--. 1 root root 0 Jan 3 13:14 a [root@localhost ~] # chmod 777 a [root@localhost ~] # ls -l a -rwxrwxrwx. 1 root root 0 Jan 3 13:14 a |
如果更改权限不全,会在权限前补0
1 2 3 4 5 | [root@localhost ~] # ls -l a -rwxrwxrwx. 1 root root 0 Jan 3 13:14 a [root@localhost ~] # chmod 6 a [root@localhost ~] # ls -l a -------rw-. 1 root root 0 Jan 3 13:14 a |
更改某一类用户的权限
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [root@localhost ~] # chmod 000 a [root@localhost ~] # ls -l a ----------. 1 root root 0 Jan 3 13:14 a [root@localhost ~] # chmod u=rwx,g=rw,o=r-x a [root@localhost ~] # ls -l a -rwxrw-r--. 1 root root 0 Jan 3 13:14 a ##也可以在原有权限的基础上+-更改 [root@localhost ~] # chmod 777 a [root@localhost ~] # chmod g-w,o-wx a [root@localhost ~] # ls -l a -rwxr-xr--. 1 root root 0 Jan 3 13:14 a ## a可以代表所有用户 [root@localhost ~] # chmod a-rwx a [root@localhost ~] # ls -l a ----------. 1 root root 0 Jan 3 13:14 a |
-R:递归修改,目录内的文件的权限
--reference=文件1 文件2:将文件2的权限改成文件1的权限
***chmod u+s 文件:可以给文件赋予SUID权限,如果原文件属主具有执行权限就变成rws,反之变成rwS
chmod u-s 文件:去掉文件的SUID
1 2 3 4 5 6 7 | [root@bogon ~] # ls -l a b -rwxr--r--. 1 root root 0 Jan 22 19:43 a -rw-r--r--. 1 root root 0 Jan 22 19:43 b [root@bogon ~] # chmod u+s a b [root@bogon ~] # ls -l a b -rwsr--r--. 1 root root 0 Jan 22 19:43 a -rwSr--r--. 1 root root 0 Jan 22 19:43 b |
chmod g+s 文件:赋予文件SGID
chmod g-s 文件:去掉文件SGID
7.umask
遮罩码,在新建文件时,文件的默认权限会减去umask值,遮罩码默认为022。而新建文件默认不具有执行权限,也就是x。所以新建文件时权限就是666-022=644=rw-r--r--,文件夹就是777-022=755=rwx-r-xr-x。对于管理员来说umask为002
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能