Linux操作系统是多任务多用户操作系统,每当我们使用用户名登录操作系统时,Linux都会对该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是UID。为了方便用户管理,Linux允许把多个用户放入一个用户组;在Linux系统中,用户组也有一个ID,GID。
在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限,能执行任何命令和操作,而其他用户都是普通用户。
Linux对文件创建者(所属用户),所属用户组,其他用户都赋予不同的权限。
查看文件权限
# ls -l 或者 # ll
文件权限解读
r: 对文件是指可读取内容, 对目录是可以读,代表查看目录下的文件信息 => ls命令
w: 对文件是指可修改文件内容,对目录是指可以在其中创建或删除子节点(目录或文件)
x: 对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录
以上权限都只能针对普通用户,root超级管理员不受权限的控制,root可以为所欲为
本质: 给 同一类型用户 分配权限
命令 | 作用 |
---|---|
groupadd 组名 | 添加组 |
groupdel 组名 | 删除组 |
cat /etc/group | 确认组信息 |
chgrp 组名 文件/目录名 | 修改文件/目录的所属组 —R递归 |
提示:
我们以root:x:0:root,lanson
为例: 用户组root,x是占位符,GID是0,root用户组下包括root、lanson。
在实际应用中, 可以预先针对 组 设置好权限, 然后 将不同的用户添加到对应的组中 , 从而 不用依次为每一个用户设置权限
演练目标:
1、在 指定目录下创建 python目录
2、新建dev组
3、将python目录的组修改为 dev
chgrp dev python
命令 | 作用 | 说明 |
---|---|---|
useradd -m -g 组 新建用户名 | 添加新用户 | -m自动建立用户家目录-g指定用户所在的组, 否则会建立一个和同名的组 |
passwd 用户名 | 设置用户密码 | 如果是普通用户,直接用 passwd可以修改自己的账号密码 |
userdel -r 用户名 | 删除用户 | -r选项会自动删除用户家目录 |
cat /etc/passwd | grep 用户名 | 确认用户信息 |
提示:
/etc/passwd文件存放的是用户的信息, 由6个分好组成的7个信息, 分别是
命令 | 作用 |
---|---|
id [用户名] | 查看用户UID 和 GID 信息 |
who | 查看当前所有登录的用户列表 |
whoami | 查看当前登录用户的账户名 |
命令 | 作用 | 说明 |
---|---|---|
su - 用户名 | 切换用户, 并且企划目录 | -可以切换到用户家目录, 否则保持位置不变 |
exit | 退出当前登录用户 |
提示:若其未经授权的用户企图使用 sudo, 则会发出警告邮件给管理员
visudo
## 默认存在: root用户具备所有的权限
root ALL=(ALL) ALL
## 授予 lanson 用户 所有的权限
zhangsan ALL=(ALL) ALL
## 不切换root用户, 也可以完成 添加用户的功能
sudo useradd -m -g dev lisi
命令 | 作用 |
---|---|
chmod | 修改权限 |
chmod命令:chmod命令用来变更文件或目录的权限。
chmod命令 == change更改 + 文件 + mod权限
在使用chmod命令修改文件权限时,一般要把文件拥有者、组内用户权限、其他用户权限一起修改。
u : user代表文件的拥有者
g : group代表与文件拥有者同组的用户权限(组内用户权限)
o : other代表其他用户(既不是拥有者也不是组内用户)
例1:把python.txt文件(如不存在,则使用touch python.txt)权限的文件拥有者权限修改为rwx,组内用户权限修改为rw,其他用户权限修改为r
# chmod u=rwx, g=rw, o=r python.txt
# 命令 分配权限 操作文件
特别说明:如果时候一个文件夹,你不仅想修改文件夹的权限,还想把文件夹里面的所有文件全部修改一遍,可以建议chmod加一个-R选项,代表递归设置。
例2:创建一个bob文件夹,里面放一个readme.txt文件(没有自己提前创建),使用chmod更改bob文件夹及其内部的readme.txt文件权限,拥有者rwx权限,同组用户(组内用户)权限为rx,其他用户权限也为rx
# chmod -R u=rwx,g=rx,o=rx bob
例3:把bob文件夹本身,不包括里面的文件,u、g、o都设置为rwx权限
# chmod u=rwx,g=rwx,o=rwx bob
或
# chmod ugo=rwx bob
或
# chmod a=rwx bob
例4:给python.txt中的所有用户添加一个x可执行权限
# chmod u+x,g+x,o+x python.txt
或
# chmod a+x python.txt
或
# chmod +x python.txt
在CentOS7版本中,如果是一个普通文件,只要添加+x权限,就会变成绿色(但是这和文件夹有区别)。
在CentOS7版本中,如果想把一个文件夹变成绿色,需要为其组内用户和其他用户添加+w权限。
r可以使用数字4进行代替,w可以使用数字2进行代替,x可以使用数字1进行代替。
r = 4
w = 2
x = 1
在实际工作中,我们数字一般是3个数字一起出现,如777、755、644或者600
权限数字最大的 = 7,7怎么来的?
7 = 4 + 2 + 1 = rwx
如果数字为6,怎么来的?
6 = 4 + 2 = rw
如果数字为5,
5 = 4 + 1 = rx
注意:在实际文件权限设置时,一定是3个数字一起出现!!!
例1:给readme.txt文件的属主(文件拥有者)赋予可读可写可执行权限,组内用户、其他用户也赋予可读、可写、可执行权限
# chmod 777 readme.txt
例2:给bob文件夹文件拥有者(属主)设置可读可写可执行权限,属组(组内用户)、其他用户设置可读可执行权限
# chmod -R 755 bob
稍微注意一下:权限尽量不要随意设置,可能会导致后期某些或文件夹不能被用户访问。
另外权限2、3很少单独出现,如731权限,很少出现。3代表2+1,可写可执行,假设一个文件夹wx,但是不能看,显然不合理。
另外文件夹有一个组合权限,有r的时候肯定有x,相当一个组合(可以查看也可以切换到目录中)
另外数字没有+和-,就是3个纯数字,如777、755、644、600
字母形式的权限设置,可以有+和-,如chmod a+x python.txt或者chmod u-x python.txt