Linux权限管理(重点)
Linux权限操作于用户和用户组是兄弟操作
1.权限概念
总述:Linux系统将文件可存取访问的身份分为三个类别:owner group others
三种身份各有:read write execute等权限。
什么是权限:在多用户计算机系统的管理中 权限是指某个特定的用户具有特定的系统资源使用的权力 像文件 特定指令或存储量限制
在linux中有 读 写 执行 权限
2.身份介绍:
Owner身份(文件的所有者)
Group身份(与文件所有者同组的用户)
Others身份
3.linux权限介绍
ls-l 路径 用来查看文件的属性 用来显示文件的文件名和相关属性
十位字符表示含义:
第一位 表示文档类型 d文件夹 -表示文件 l表示软连接
第二位到第四位:文档所有者权限情况:
第二位读权限 r有权限 -没有权限
第三位写权限 w有权限 -没有权限
第四位写权限 x有权限 -没有权限
第五位到第七位:与所有者同在一个组的用户的权限情况:
第五位读权限 r有权限 -没有权限
第六位写权限 w有权限 -没有权限
第七位写权限 x有权限 -没有权限
第八位到第十位:表示除了前两部分外 其他用户的权限情况:
第八位读权限 r有权限 -没有权限
第九位写权限 w有权限 -没有权限
第十位写权限 x有权限 -没有权限
设置权限:
语法 chmod 选项 权限模式 文档
注意事项:
常用选项就一个 -R 递归设置权限
权限模式:该文档设置的权限信息(给文档设置权限 要么是root 要么是文档所有者)
文档:可以是文件 也可以是文件夹 可以是相对路径 也可以是绝对路径
1.字母形式设置
给谁设置:
u 表示所有者身份
g表示给所有者同组用户设置
o 表示给其他用户设置权限
a表示给所有人设置
如果在权限设置的时候不指定给谁 默认给所有用户设置
权限分配作用:
+:表示给具体用户增加权限(相对当前)
-:表示给具体用户删除权限
=:表示将权限设置成具体的值(注重结果)
案例:给anaconda-ks.cfg 文件权限(-r-x------)设置为(-rwxr-xr-x)
chmod u+w,g+rx,o+rx anaconda-ks.cfg
chmod u=rwx,g=rx,o=rx anaconda-ks.cfg
2.数字形式设置
读:r 4;
写:w 2;
执行:x 1;
没有任何权限:0;
注意事项:
1.使用root用户创建一个文件夹(/oo) 权限默认(drwxr-xr-x)
2.在oo目录下创建文件 xx.txt 文件 给777权限
3.切换到other用户
问题1:other用户是否可以打开文件? 能
问题2:other用户是否可以编辑文件? 能
问题3:other用户是否可以删除文件? 不能
在linux 中 如果要删除一个文件 不是看文件有没有对应的权限 而是看文件所在的目录是否有写权限 如果有才可以删除。
属主与属组设置
属主:所属的用户(文件的主人)
属组:所属的用户组
如果有时候需要删除某些用户 那么该用户对应的文档属组和属主两个信息就需要去修改啦
1.chown
作用:更改文档的所属用户
语法: chown (-R )username 文档路径
案例:将root用户创建的oo目录 所有者更改为test
chown test oo/
2.chgrp
作用:更改文档的所属用户组
语法: chgrp -R groupname 文档的路径
案例:将刚才root用户创建的oo目录,所有者更改为test 并且将所属用户组也改为test
chgrp test oo/
问:如何通过一个命令实现既可以更改所属用户 又更改属组呢?
答:chown -R username:groupname 文档路径
扩展1:
问题:如init 在普通用户身份上都是操作不了的 但有些情况下又需要执行权限 这个问题怎么解决
答:可以使用sudo(awitch user do)命令来进行权限设置。Sudo可以让管理员(root)事先定义某些特殊命令谁可以执行
默认sudo是没有除boot之外的用户规则,想用需要配置sudo。
sudo的配置文件: /etc/sudoers
配置sudo文件请使用visudo 然后进行编辑
配置普通用户的权限
root 表示用户名(如果是用户组 使用------%用户组 名)
All:表示允许登陆的主机(地址白名单)
(ALL):表示以谁的身份执行,ALL表示root身份
ALL:表示当前用户可以执行的命令, 多个命令可以使用“,”分割
在写sudo规则的时候 不建议直接写形式的命令 要写完整路径 路径可以使用which命令来查看(which 指令名称)
在添加好对应规则后 切换到普通用户 再去执行(sudo 需要执行指令)
在输入sudo指令后 输入当前用户密码进行确认
如果禁止修改root密码的配置:
/usr/bin/passwd,!/usr/bin/passwd root
在普通用户中怎么查看自己具有哪些特殊权限
sudo -l
sudo不是任何linux分支都有的命令,常见centos和ubuntu都存在sudo命令