首页 > 系统相关 >Linux 权限管理

Linux 权限管理

时间:2024-03-21 12:32:54浏览次数:23  
标签:文件 权限 管理 sudo 用户 Linux txt root

文章目录


学习目标:

- [ ] 了解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命令的配置。以上就是今天的内容了,希望小伙伴们有什么不懂的点留在评论区,或者博主有什么写错了的东西都欢迎来各个学霸大佬来指出。

标签:文件,权限,管理,sudo,用户,Linux,txt,root
From: https://blog.csdn.net/2301_78167940/article/details/136848299

相关文章

  • Linux 网络管理
    在大多数领域与决心相比,天赋被高估了。时间长了决心就是你的天赋。文章目录前言一、关于网络配置的基础知识1.1网络配置文件说明1.2如何查看网卡名1.3网卡配置文件讲解二、VMware的三种网络模式2.1、第一种网络模式:Bridged(桥接模式)配置桥接模式的步骤2.1、第二种......
  • 嵌入式LINUX开发系列
    LINUX系列文章目录第一章ARM板子如何替换debian镜像源文章目录LINUX系列文章目录第一章ARM板子如何替换debian镜像源前言一、镜像源是什么?二、问题复现三、更换镜像源步骤总结前言当你做嵌入式开发过程中拿到一个开发板,遇到aptupdate,发现无法成功,镜像源无法使......
  • 初识 Linux 操作系统_实验案例一
    实验案例一:安装Ubuntu操作系统1、实验环境    BDQN公司部分员工使用的Windows操作系统的笔记本式计算机频繁遭受到病毒.木马的威胁,公司要求管理员小王近期将这些员工的系统更换为Ubuntu操作系统。在进行前期准备工作时,需要公司现有的系统管理员尽快掌握Ubuntu操作......
  • Linux离线安装Docker-Oracle_11g
    拉取oracle11g镜像dockerpullregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g创建11g容器dockerrun-d-p1521:1521--nameoracle11gregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g查看容器是否创建成功dockerps-a导出oracle容器,查看正在运......
  • linux apache 使用记录
    1、安装集成phpyuminstallhttpdyuminstallphpsystemctlrestarthttpd2、开启url重写功能修改/etc/httpd/conf/httpd.conf:A开启重写模块:LoadModulerewrite_modulemodules/mod_rewrite.soIncludeconf.modules.d/*.confB修改参数 AllowOverrideAllC网站根目录添......
  • Linux系统下的文件描述符fd详解
    文章目录文件描述符本作者从代码及源码的角度来总结探究文件描述符fd参考:韦东山Linux嵌入式视频文件描述符Linux系统下一切皆文件。文件描述符是操作系统中用来唯一标识一个已打开文件的整数。本质上来说就是索引,即根据索引值寻找到对应的文件,可对其进行相应......
  • Node+Vue毕设社区居家养老管理系统(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在人口老龄化日益加剧的今天,社区居家养老已成为解决老年人养老问题的重要方式。随着社会经济的发展和科技的进步,老年人对于养老服务的需求不再局限于基本的......
  • Java 8 内存管理原理解析及内存故障排查实践
    作者:vivo互联网服务器团队- ZengZhibin介绍Java8虚拟机的内存区域划分、内存垃圾回收工作原理解析、虚拟机内存分配配置,介绍各垃圾收集器优缺点及场景应用、实践内存故障场景排查诊断,方便读者面临内存故障时有一个明确的思路和方向。一、背景Java是一种流行的编程语言,可......
  • 使用API有效率地管理Dynadot域名,使用API为域名进行续费
    关于DynadotDynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。Dynadot平台操作教程索引(包括域名邮箱,解析,建站,优惠长期更新)Dynadot.com提供的API是专为效率而构建的高级域名管理......
  • [DPDK]Linux平台上DPDK入门指南(一)
    [DPDK]Linux平台上DPDK入门指南(一)1.1简介1.1.1文档地图1.2系统要求1.2.1X86上预先设置BIOS1.2.2编译DPDK1.2.3运行DPDK应用程序系统软件在Linux环境中使用Hugepages预留Hugepages给DPDK使用DPDK使用Hugepages配置内存用于DPDK使用1.3使用源码编译DPDK......