Linux基础命令6(权限管理)

特殊权限(了解):

SUID:rwsrwxrwx  chmod  u+s  filename

·作用:让其他用户使用拥有SUID权限,可以使用所有者的权限。

#s:原来有x执行权限,才会变成s为生效,否则为S:不生效

SGID:所有组的x变成s,其他人以组权限执行命令。

chmod  g+s  filename

#SGID权限位

chmod  2755  filename

#SUID+SGID

chmod  6755  filename

chmod  u+s,u+s  filename

stickybit:粘滞位

#给共享目录设置为粘滞位,作用是只能在该目录中删除自己的文件,没有修改权限,不能修改不能移动

chmod  o+t  dir

chmod  1777  dir

三种特殊权限的区别

特殊权限

说明

SUID

当一个设置了SUID 位的可执行文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。任意存取该文件拥有者能使用的全部系统资源。如果所有者是 root 的话,那么执行人就有超级用户的特权了。

SGID

当一个设置了SGID 位的可执行文件运行时,该文件将具有所属组的特权,任意存取整个组所能使用的系统资源;若一个目录设置了SGID,则所有被复制到这个目录下的文件,其所属的组都会被重设为和这个目录一样,除非在复制文件时保留文件属性,才能保留原来所属的群组设置。

stickybit

对一个文件设置了sticky-bit之后,尽管其他用户有写权限,也必须由属主执行删除、移动等操作;对一个目录设置了sticky-bit之后,存放在该目录的文件仅准许其属主执行删除、移动等操作。

什么是特殊权限?

Linux 除了基础的读(r)、写(w)、执行(x)权限外,还有三个特殊权限位,用于解决特定场景下的权限管理问题。

①、SUID(Set User ID):临时借身份

核心作用

让其他用户使用拥有SUID权限,可以使用所有者的权限。对可执行文件生效,用户执行该文件时,会临时获得文件所有者的权限(用完就还)。

生活化理解

比如你是普通用户,本来没权限改系统密码文件(只有 root 能改),但passwd命令默认设置了 SUID,你执行它时就临时变成 root,改完密码又变回自己。

怎么看?

权限显示所有者的执行位(x)变成s(比如-rwsr-xr-x),如果是大写S,说明没实际执行权限,SUID 无效。

注意

只能给可执行文件用,给目录用没用。

别乱给bash这种程序设 SUID,不然普通用户能直接变 root,太危险!

②、SGID(Set Group ID):团队共享好帮手

核心作用

分两种情况:

对可执行文件:执行时临时获得文件所属组的权限(类似 SUID,但借的是组权限)。

对目录(更常用):目录里新建的文件 / 子目录,自动继承目录的所属组(而不是创建者自己的组)。

生活化理解

团队共享文件夹/team设了 SGID,不管谁在里面新建文件,都自动属于团队组,所有人都能查看修改,不用手动改权限。

权限显示:组的执行位(x)变成s(比如drwxr-sr-x),大写S表示无效。

③、Sticky Bit(粘滞位):公共区域的规矩

核心作用

只对目录有效,规定:目录里的文件,只有自己、目录主人或 root 能删,别人再有权限也不能动你的文件。

生活化理解

系统的/tmp目录是公共临时文件夹,谁都能放文件,但你只能删自己的,不能删别人的,避免误删。

权限显示:其他人的执行位(x)变成t(比如drwxrwxrwt),大写T表示无效。

简单总结表

权限名

作用对象

核心功能

符号特征

SUID

可执行文件

执行时临时借文件主人的权限

所有者 x 位变s

SGID

目录 / 可执行文件

新建文件自动归目录的组;执行时借组权限

组 x 位变s

Sticky Bit

目录

只能删自己的文件,保护公共目录

其他人 x 位变t

隐藏权限——ACL权限(了解):

可以限制root的权限操作。保护重要文件,保险作用。

lsattr:查看文件隐藏权限

chattr:修改文件隐藏权限

常用权限:直接+或-

A:文件或目录的atime不可被修改

S:硬盘I/O同步选项,功能类似sync。Linux默认为异步I/O。

a:只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。(强制保护,不能覆盖“>”,只能用“>>”追加内容)

d:(了解)文件不能成为dump程序的备份目标。

i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。锁定文件。(不能追加)

+:添加权限

-:删除权限

=:赋予权限

#buff:写入缓存,存放在内存中等待写入的缓存。sync命令可以写入磁盘。

#cache:读出缓存,从磁盘中预先加载的数据,等待被程序运行。

ACL权限(了解):

·三类用户:user所有者,group同组人员,other其他人。

ACL(访问控制列表):单独赋予某个用户对文件的rwx相关权限。

用法:

setfacl:

命令选项:

-m :设置acl

-x :指定删除,删除指定的acl

-b :删除所有的acl

# 获取文件的acl权限

getfacl filename

# 该用户设置acl权限

setfacl -m u:tom:rw- filename

#删除用户acl权限

setfacl -x u:tom filename

#删除文件所有acl权限

setfacl -b filename

#对目录设置acl权限

setfacl -m d:u:tom:rwx dir

42.chown:修改权限的所有者(修改属主)

用法:chown 属主.属组    文件

      chown 属主.属组 -R 目录

改所有者:用 sudo chown 用户名 文件名

改组:用 用户名:组名 组合方式。

改目录及子文件:加 -R 递归修改。

# 创建用户

useradd tom

useradd chen

# 给用户设置密码

passwd tom

passwd chen

# 切换用户

su tom     # 在当前目录切换到该用户

su - tom  #在切换用户时,自动cd用户家目录,加载用户配置

# 切换root用户

su root

su - root

su -

# root用户切换到其他用户不需要密码

# root可以修改所有用户的密码

# 普通用户只能修改自己的密码

# 普通用户切换到其他用户(包括root)都需要密码

# 退出当前用户,返回之前的用户或退出登录

exit

#chmod:修改文件权限

普通用户可以修改自己的文件,root可以修改所有的文件

#chown:修改文件的所有者(属主)

#root才能修改其他用户文件的属主和属组

43.chgrp:修改文件属组

组(group):默认组、附加组。可以把多个用户添加到同一个小组当中,用于批量权限管理。

# chgrp修改属组

chgrp root filename

#chmod可以改组权限

chmod g=rw filename

44.sudo:提权,提升权限,让普通用户临时使用root权限执行命令

# 使用root身份修改/etc/sudoers文件,将普通用户添加到该文件并进行设置。

vim /etc/sudoers

# 在第101行

zj  ALL=(ALL)  ALL

# 切换回普通用户

su - zj

# 使用sudo执行关机命令

sudo reboot

#限制用户的关机命令

%minsudev ALL=(ALL) NOPASSWD:ALL,!/usr/sbin/reboot

# 使用sudo修改root的密码

sudo passwd (任何人)

sudo权限免密码:%tom ALL=(ALL) NOPASSWD:ALL

可以重启的命令不止一个,我们添加命令:/sbin/reboot

%tom ALL=(ALL) NOPASSWD:ALL,!/usr/bin/reboot,!/sbin/reboot

给一个组添加sudo权限:%tom ALL=(ALL) ALL

给用户添加sudo权限:tom     ALL=(ALL:ALL) ALL

#限制sudo用户提权为root用户

%tom ALL=(ALL) NOPASSWD:ALL,!/bin/su

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值