Linux 权限管理


学习目标:

- [ ] 了解Linux中的权限

- [ ] 掌握修改权限的基础命令

- [ ] 掌握sudo及其配置文件的使用


一、文件权限管理

在Linux操作系统中文件权限分为读、写、执行权限

1、文件类型

我们在使用 ls -l 命令查看文件属性的时候(ll),展示出来许多文件的属性信息

在这里插入图片描述

字段分别是:文件类型、对不同角色的访问权限、链接次数、属主、属组、文件大小、文件最后修改的时间、文件名称

文件类型的分类:

  • d(directory):文件夹
  • -:普通文件
  • l(link):软链接
  • b(block device):块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

2、访问权限

用户对一个文件的权限有四种:可读r、可写w、可执行x、无权限-

访问权限对文件和文件夹的含义:

  • 文件
    • r(read)读权限:可以读取文件的内容。
    • w(write)写权限:可以在文件中写入或删除内容
    • x(execute)执行权限:可以执行文件
  • 文件夹
    • r(read)读权限:可以查看文件夹的内容。
    • w(write)写权限:可以在文件夹内:创建、删除、修改名称等操作
    • x(execute)执行权限:可以更改工作目录到此文件夹

文件的属性中描述权限的内容有9列,它们分别是对所有者的权限对所属组的权限以及对其他用户的权限。其中对每个角色三种权限的描述分别为可读可写可执行,这些顺序都是固定的
在这里插入图片描述

前三列为对于所有者的权限,为r w -,表示该文件所有者对其可读可写,但是不可执行;
中间三列为所属组,为r w -,表示该文件所属组对其可读可写,但是不可执行;
后三列为其他用户,为r - -,表示其他用户对其可读,不可写不可执行

特殊权限:s

suid(4):任何用户执行程序的时候,都是以文件的属主的身份来运行
sgid(2):任何用户执行程序的时候,都是以文件的属组的身份来运行

s权限: 设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份. 
典型的文件是passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.

ls -al /usr/bin/passwd
-rwsr-xr-x 1 pythontab pythontab 32988 2018-03-16 14:25 /usr/bin/passwd

注意:在设置s权限时文件属主、属组必须先设置相应的x权限,否则s权限并不能正真生效(c h m o d命令不进行必要的完整性检查,即使不设置x权限就设置s权限,chmod也不会报错,当我们ls -l时看到rwS,大写S说明s权限未生效)

3 文件访问者的分类

文件访问者的分类

对于一个文件或者目录,在linux中有三种角色
1.文件的所有者(属主):u(user)
2.文件所有者的所属组(属组):g(group)
3.其他用户:o(other)
4.全部用户:a(all)

软件名:metis
软件版本:5.1.0-12
适用的系统类型:el7,这个表示在centos7可用
适用的cpu架构:x86_64
后缀:rpm

4 文件权限值的表示方法

对于三种权限有其固定的位置,当然可以通过二进制0与1的形式来表示一个角色对某文件的权限

在这里插入图片描述

5 基础命令

chmod:修改文件、文件夹权限
语法:chmod [选项] 用户+/-/=某项权限 文件
options
	-R(recursive):递归的更改文件和目录(如果修改的对象文件夹里面的所有东西都会被修改)
用户:
	代表角色的符号为u(所有者)、g(所属组)、o(其他用户)、a(所有用户);
+/-/=:
 	+:向权限范围增加权限代号所表示的权限(在原来的权限基础上,增加新的权限)
 	-:向权限范围取消权限代号所表示的权限(在原来的权限基础上,减掉某个授权)
 	=:向权限范围赋予权限代号所表示的权限(直接设置最终权限)
某项权限
	代表权限的符号为r(读权限)、w(写权限)、x(执行权限);

文件的初始权限

-rw-r--r-- 1 bob bob 0 May 3 10:59 aaa.txt

案例:

案例1:给属组用户添加上写权限
chmod g+w 1.txt
案例2:给属主用户去掉写权限
chmod u-w 1.txt
案例3:给其他用户添加上读和执行权限
chmod o+rx 2.txt	
案例4:将属主的权限设置为可读可写可执行
chmod u+rwx 2.txt
案例5:将属主的权限设置为可写
chmod u=w 2.txt
案例6:将属组的权限设置为没有任何权限
chmod g= 2.txt
案例7:将所有用户读权限都去掉
chmod a= 4.txt
另一种写法
chmod ugo= 4.txt
案例8:给所有用户都添加上写权限
chmod ugo+w 4.txt
另一种写法
chmod a+w 4.txt
案例9:将所有用户权限都设置为可读可执行
chmod ugo=rx 4.txt
另一种写法
chmod a=rx 4.txt
chown:修改文件、文件夹所有者、所属组
语法:chown [选项] 属主:属组 文件名
options
	-R(recursive):递归的更改文件和目录(如果修改的对象文件夹里面的所有东西都会被修改)

案例:

[root@localhost ~]# ls -l 1.txt
-rw-r--r-- 1 root root 0 3月  19 16:33 1.txt

1、将1.txt的属主改为tom
[root@localhost ~]# chown tom 1.txt
[root@localhost ~]# ls -l 1.txt
-rw-r--r-- 1 tom root 0 3月  19 16:33 1.txt
2、将1.txt的数组改为tom
[root@localhost ~]# chown :tom 1.txt
[root@localhost ~]# ls -l 1.txt
-rw-r--r-- 1 tom tom 0 3月  19 16:33 1.txt
3、将1.txt的数组数组都改为root
[root@localhost ~]# chown root:root 1.txt
[root@localhost ~]# ls -l 1.txt
-rw-r--r-- 1 root root 0 3月  19 16:33 1.txt

二、用户授权 sudo

1、什么是sudo?

sudo(superuser do)是 Linux 系统中一种很常用的权限管理机制,允许非 root 用户以特定的身份执行特定的命令。sudo 命令通过 /etc/sudoers 配置文件实现。

语法:sudo [options] command
[options]
	-l(list):可以列出当前用户的sudo权限
	-k(reset-timestamp) :无效的时间戳

2、visudo命令简介

在linux系统中,visudo是一个用于编辑sudo配置文件的命令。
语法:visodu [options]
[options]
	-c(check):检查sudoers文件的语法错误
	-q(quite):再检查sudoers文件时,只输出错误的信息不进行其他操作
	-s(strict):指定编辑的sudoers文件为模拟模式,不会真正写入sudoers文件中

3、sudo权限配置

sudo是linux系统中一种跟常见的权限管理机制,允许非root用户以特定的身份执行特定的权限。

sudo的配置文件

  • /etc/sudoers
  • /etc/sudoers.d

1、编辑sudo权限命令
在终端输入一下命令进入sudo配置文件:sudo visudo

注:不要直接编辑/etc/sudoers文件,因为可能导致配置文件错误

2、/etc/sudoers配置文件说明
sudoers文件包含sudo命令所需的所有配置信息。默认只有root用户编辑并修改。

sudoers文件的格式:
	root          ALL  =(ALL)           ALL
	用户名     主机   切换的用户   可执行的命令

	用户名:普通用户的名称
	主机:可以再哪个主机上执行特定的命令
		ALL:表示任意主机
		localhost:表示当前主机
		hostname:表示具体的主机名(web)
		x.x.x.x:表示使用IP地址来标识主机
		x.x.x.x/netmask:表示的是一个网段
	切换的用户:以哪个用户的身份来执行命令(默认root)
		(ALL)
		(root)
	可执行的命令(which 命令:查看此命令的绝对路径)
		格式:命令1,命令2
		命令是绝对路径

3、为用户配置sudo权限
默认情况下,sudo只能给单个用户授权,但也可以为用户组或别名组授权。
注意:如果要为用户组授权请在前面加上 %。

配置文件时的扩展写法
	%groupname  ALL=(ALL)  ALL:给一个用户组授权
	username   ALL=(ALL)   NOPASSWD:ALL:用户使用sudo来执行命令是不需要输入密码
案例:	
	1、zz2用户组中所有的用户可以执行/usr/sbin下除usermod以外的所有命令 。
		%zz2  ALL=     /usr/sbin/*,!/usr/sbin/usermod  
    2、zz2用户可以修改其他用户的密码 但是不能修改root用户的密码
		zz2     ALL=(root) NOPASSWD: /usr/bin/passwd,!/usr/bin/passwd root

小结

今天我们聊了linux权限管理这个话题,知道了Linux的基本权限,如何付权限。各种权限作用在文件及文件夹的意义,以及sudo命令的配置。以上就是今天的内容了,希望小伙伴们有什么不懂的点留在评论区,或者博主有什么写错了的东西都欢迎来各个学霸大佬来指出。
😀😊😊😀

  • 27
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海粟石子

生而为人

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值