权限
linux的权限操作与用户、用户组是兄弟操作
系统将文件访问的身份分为3个类别,owner,group,others,且3种身份各有read【读】、write【写】、execute【执行】操作
读权限:
- 对于文件夹:影响用户是否能够列出目录结构
- 对于文件:影响用户是否可以查看文件内容
写权限:
- 对于文件夹:影响用户是否可以在文件夹下“创建/删除/复制/移动”文档
- 对于文件:影响用户是否可以编辑文件内容
执行权限:
- 一般都是对文件来说,特别是脚本文件。
身份介绍
-
Owner身份(文件所有者,默认为文档的创建者)
-
Group身份(与文件所有者同组的用户)
-
Others身份(其他人,相对于所有者)
-
Root用户(超级用户,拥有所有权限,可以管理所有用户)
查看权限
#ls -l 路径
十位字符含义:
- 第一位表示文档类型,常见“d表示文件夹,-表示文件,l表示软链接,s表示套接字
- 第2-4位表示文档所有者的权限情况,第2位表示读权限的情况,取值有r、-;第3位表示写权限的情况,取值有w,-;第4位表示执行权限的情况,取值有x,-;
- 第5-7位表示与所有者同在一个组的用户的权限情况,第5位表示读权限的情况,取值有r、-;第6位表示写权限的情况,取值有w,-;第7位表示执行权限的情况,取值有x,-;
- 第8-10位表示除了前两部分用户之外的其他用户的权限情况(其他人),第8位表示读权限的情况,取值有r、-;第9位表示写权限的情况,取值有w,-;第10位表示执行权限的情况,取值有x,-;
r:read
w:write
x:execute
-:没有对应权限
权限设置
语法:#chmod 选项 权限模式 文档路径
注意事项:
常用选项: 权限模式 文档
- -R:递归设置权限 文档需要设置的权限信息 可以是文件,也可以是文件夹
- 如果要设置权限,要么是root用户,要么是文档的owner(所有者)
给谁设置:【如果设置权限的时候不指定给谁设置,则默认给所有用户设置】
u:所有者身份owner(user) g:所有者同组用户设置(group)
o:表示others,给其他用户设置权限 a:表示all,给所有人
权限字符 : r:read w:write x:execute -:没有对应权限
权限分配方式:+:表示给具体用户新增权限 -:删除用户权限 =:将权限设置成具体指(注重结果)
eg:#chmod u+x,g+rx,o+r #chmod a=-或a=rwx #chmod +x【等同于给所有人x权限】
如果文件拥有执行权限,则文件颜色为绿色
数字形式 **数值 ** 权限 目录权限列表
读:r 4 0 不能读,不能写,不能执行 —
写:w 2 1 不能读,不能写,能执行 --x
执行:x 1 2 不能读,能写,能执行(奇葩权限) -w-
但凡权限出现2,3的情况,会不合理
注意事项
- 在linux中,如果想要删除一个文件,不仅要看是否有该文件的写权限,还要看是否有该文件上一级的写权限
属主与属组设置
属主:所属的用户(文件的主人)
属组:所属的用户组
文件夹属于root用户,而root用户属于root这个主组
有时候需要删除某个用户,则该用户对应的文档的属主和属组的信息就需要更改
1.chown 【 Change Owner】
作用:更改文档的所属用户【属主】
语法:#chown -R 用户名 文档路径
-R:递归改变文件夹里面文件的所属用户
2.chgrp【change group】
作用:更改文档的所属组
语法:#chgrp -R 组名 文档路径
3.chown进阶【可以修改组,和所属用户
语法:#chown -R 用户名:组名 文档路径
扩展
问题:reboot、shutdown、init、halt、user管理,在普通用户身份上都是操作不了的,但是有些特殊的情况有需要执行权限。
使用sudo命令(switch user do)命令进行权限设置。sudo可以让root用户事先定义某些特殊命令谁可以执行。
sudo命令配置文件/etc/sudoers【只读】
使用#visudo 打开此文件
(ALL)代表管理员身份
可以执行的命令用","号分割
如果要给用户组指定:使用%组名【下图将(ALL)省略】
注意:
- 在写sudo规则时,不建议直接写直接形式的指令, 而是写命令的完整形式。
- 通过#which 命令
- 添加完规则后,切换用户执行刚才的规则,需要使用:#sudo 需要执行的命令
补充:在普通用户下如何查看自己的权限
#sudo -l 【sudo不是任何linux分支都有的命令,常见centos与ubuntu都存在sudo命令】