关于Linux权限

权限:权力的限制,体现在Linux上就是超级管理员普通用户的权力大,普通用户的权力相对而言就被限制住了ᐖ

关于白名单

怎么体现呢?首先我们要先创建一个普通用户来与超级管理员用户做比较

新建用户:用户名为name

useradd name

新建完毫无反应,然后新建密码

passwd name

确认用户创建成功

1.登录root用户,查看home目录是否有“name”成员

2.直接登录name用户

当然我们su root也是可以回到root用户的,但是这时候就需要输入密码了,而su name不用输入密码

当我们用普通用户身份时,我们的权限变小了。以前我们可以胡作非为随便创建文件夹再删除,现在不可以了

那么怎么做到呢

使用sudo命令,在我们的命令前加一个sudo

这时候你需要输入你的密码,不是root的密码,而是普通用户的密码

然后你就会悲催的发现这个普通用户太普通了,甚至不能狐假虎威地使用root的权力。所以还需要root给他权限--将name用户放到白名单里,手动给他权限

怎么放到白名单里呢?使用vim编辑器,找到白名单文件

vim /etc/sudoers

然后把root  ALL=(ALL)      ALL这一行复制粘贴到下一行,然后改个名字就好啦。

按esc键,输入“:wq!”强制保存退出

好了我们现在再借用root的权限创建一个文件

(顺便一提普通用户在进入白名单前看不见根目录)

其中,普通用户借root的权力这个东西,叫做指令提权

为什么用户在使用指令提权时,需要输入自己的密码?

答案是为了验证该用户是不是白名单的成员

为什么要存在白名单这种东西?一些共同使用服务器的成员,在确保他们不会攻击系统、对系统造成损害之后,就可以把他们加入白名单,可以使用sudo命令提权执行

Linux文件角色

Linux系统下一切皆文件,那么文件的所属就很重要了。

在Linux系统中,对于文件的使用角色分为三种:拥有者,所属组,other

我们分别解释

首先ll可以查看文件信息

(前面带d的是目录文件,没有d的是普通文件)

拥有者:就是文件的拥有者,上图左边的root那一行,就是文件信息中文件拥有者信息,例如上图main1.c和test1的拥有者就是root

所属组:经常应用在多人共做一个项目时,一个文件的权限可以交给一坨人,但是他们又不是管理员,这一坨人就是所属组,可以方便多人共同协作时进行更好的权限管理

other:既不是拥有者,也不是所属组

我们要把这个使用文件的角色root账户分开

root账户普通用户,他们是

拥有者,所属组,other,他们是角色

文件的属性权限

文件的属性一般有三种:r(读),w(写),x(可执行权限)

权限=角色+可以使用的文件属性

拥有者:rwx

如果上面的任何一个权限被去掉了,就用“-”代替

作为文件的所属者,我们可以修改文件的权限

chmod u-r name

当我们修改所属者非自己的文件时,会看到下图的结果

修改前

修改后,可以看见前面少了r

再加上也是可以的

chmod u+r name

更改所属组的权限时输入

chmod g-r test.txt

更改other权限时输入

useradd 用户名 -g 组名
chmod o-r test.txt

想同时操作多个角色

chmod u-w,g-w test.txt

想同时操作所有人

chmod a-r test.txt

顺便一提在Linux里创建组

输入指令

groupadd 组名

添加成员

usermod -G 组名 用户名

更改密码

password 用户名

只有root或有sudo权限的用户才能创建新组

查看组信息:cat /etc/group
查看单个组信息:getent group 组名

即使你是拥有者,也是所属组,把你的拥有者权限去掉后就不能使用对应操作了,即使你是拥有者。因为Linux对用户身份识别只有一次

文件拥有者和所属组改变

如果把文件的所属权赠与别的用户,使别的用户成为拥有者,那么在Linux系统下,应该先向那个用户打个招呼,要告知ta你要给ta一个文件。如果想免去这个打招呼的过程,就可以使用sudo,短暂的指令提权,强行给别人

给拥有者:sudo chown 用户名 test.txt
给所属组:sudo chgrp 用户名 test.txt

改变文件拥有权前:

改变后:

改变所属组前:

改变后:

想要同时更改拥有者和所属组

chown 用户名1:用户名2 文件名

只要把拥有者和所属组改了,other就也变了

二进制表示文件权限

一个文件的权限只有这两个状态,可以用二进制表示,用1代表有0代表无

用二进制表示:110(rw-),111(rwx),000(---)

把它们转换成十进制就是:6,7,0

也就是说6就代表了读写两个权限,以此类推

那么我们在更改权限时也可以

chmod 000 test.txt    //三种角色的所有权限都被取消
chmod 777 test.txt    //三种角色的所有权限都被赋予

那么给予读写权限时,就这么写

chmod 660 test.txt    //赋予拥有者和所属组文件的读写权限

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值