Linux权限管理

  • 权限的概念

  • 权限的表示

  • 设置权限

权限概述

权限的基本概念

定义:Linux权限是操作系统对用户/进程访问资源的精细化管控机制,通过 读(r=4)、写(w=2)、执行(x=1) 三种基础权限组合实现。

运维视角

读(r):查看文件内容(如cat)、列出目录内容(如ls)。 ​ 写(w):修改文件内容、删除/创建目录内文件。 ​ 执行(x):运行脚本/程序(文件)、进入目录(目录必备)。

注:一般给予目录读权限时,也将会给其执行权限,属于“套餐”组合
​
可读权限read=>r(简写),可写权限write=>w(简写),可执行权限excute==>x(简写)

为什么要设置权限

==数据的安全/服务的安全==

典型运维场景:

  • Web服务器安全:Nginx配置目录需755,但敏感文件(如nginx.conf)应设为644防止篡改。

  • 日志管理:日志文件(如/var/log/nginx/access.log)需644,确保日志轮转工具可写入。

  • 自动化脚本:Shell脚本需755(可执行),但避免普通用户修改(chmod u=rwx,go=r)。

  • 数据备份:备份目录权限设为750,仅允许备份用户和组访问。

无权限管理的灾难案例:

# 错误:误设网站目录为777,导致被植入恶意脚本  
chmod -R 777 /var/www/html  
​
# 攻击者可上传webshell,控制服务器  

解析Linux权限标识

权限信息拆解(ls -l输出)

image-20250228174654318

-rwxr-xr-- 1 nginx nginx 1024 Jan 5 09:30 deploy.sh  
drwxr-x--- 2 root  backup 4096 Jan 5 10:00 /backups  

首字符(文件类型):

  • -:普通文件(脚本、配置、日志等)

  • d:目录(运维核心操作对象)

  • l:符号链接(软连接, 硬链接)(如快捷方式/usr/bin/python3 -> python3.9

权限九宫格(rwxr-xr--):

  • 属主(u):文件所有者(如nginx用户对deploy.shrwx权限)

  • 属组(g):同组用户(如nginx组成员可执行deploy.sh

  • 其他用户(o):非所有者且非组成员(仅能读deploy.sh

属主,主人(User):

  • 你亲手创建的文件,默认你就是主人。

  • 就像你的手机,你拥有最高权限(可以随便下载App)。

属组,家人(Group):

  • 你和室友同属一个“合租群”,群成员共享厨房权限。

  • 比如你和同事同属“运维组”,组员能一起修改服务器脚本。

其他用户,陌生人(Others):

  • 既不是主人,也不是群成员的路人。

  • 就像你家Wi-Fi密码,陌生人默认不能连。

查看root文件夹

image-20250319143048386

root用户(属主)应该也不具备w权限?任然可以操作?

特殊用户root

在Linux操作系统中,root拥有最高权限(针对所有文件),所以权限设置对root账号没有效果。

image-20250228174310595

在Linux系统中,三大类用户也可以拥有简写形式
user属主(u)、
group属组(g)、
other其他人(o)
​
a 所有人

权限管理

文件或文件夹权限设置(字母)

基本语法:ch = changemod 简单理解权限

chmod [选项] 权限设置 文件或目录的名称
​
选项说明:
-R :递归设置,针对文件夹(目录)
重点 :字母设置rwx并不难,重点看三方面
​
第一个:确认要给哪个身份设置权限 u、g、o、ugo(a)
第二个:确认是添加权限(+)、删除权限(-)还是赋予权限(=)
第三个:确认给这个用户针对这个文件或文件夹设置什么样的权限,r、W、×

案例:给readme.txt文件的拥有者,增加一个可执行权限

# chmod u+x readme.txt

案例:把readme.txt文件的拥有者的可执行权限去除

# chmod u-x readme.txt

案例:为readme.txt中的所属组内用户赋予rw权限

# chmod g=rw readme.txt

案例:给shop目录及其内部的文件统一添加w可写权限

# chmod -R ugo+w shop
或
#chomd -R a+w shop

案例:给shop目录设置权限,要求拥有者rwx,组内用户r-x,其他用户r-x

# chmod-R u=rwx,g=r-x,o=r-x shop

文件或文件夹权限设置(数字)

经常会在技术网站上看到类似于 chmod 777 a.txt 这样的命令,这种形式称之为数字形式权限。

文件权限与数字的对应关系,我们会发现没有7这个数字

image-20250228175642728

7(属主)7(属组)7(其他人): rwxrwxrwx

第一个数字7,代表文件拥有者权限

第二个数字7,代表文件所属组内用户权限

第三个数字7,代表其他用户权限

rwx=4+2+1=7

rw=4+2=6

rx=4+1=5

案例:给readme.txt设置权限,文件的拥有者rwx,组内用户rw,其他用户r

rwx = 7
rw = 6
r = 4
# chmod 764 readme.txt

案例:给shop文件夹设置777权限

# chmod -R 777 shop

练习题

使用root用户设置文件夹/root/shop的权限为:属主全部权限,属组拥有读和执行权限,其他用户没有权限,请使用数字权限的形式设置

mkdir -p /root/shop
​
chmod 750 /root/shop

请置文件/root/readme.txt的权限,权限要求为:属主拥有全部权限,属组要求可以读写,其他用户只读,要求使用数字形式;

touch /root/readme.txt
​
chmod 764 /root/readme.txt
touch /root/readme.txt
​
chmod u=rwx,g=rw,o=r /root/readme.txt

请设置/root/email.doc权限,权限要求只有属主可以读写,除此之外任何人没有权限;

touch /root/email.doc
​
chmod 500 /root/email.doc
​
chmod u=rw,g-rwx,o-rwx /root/email.doc


场景1:你的个人笔记(隐私保护)

  • 文件:个人日记.txt

  • 权限要求:只有你能看和改,家人和陌生人不能看

chmod 600 个人日记.txt  # 相当于设置保险箱密码  

场景2:团队共享工具箱(协作开发)

  • 目录:/团队工具

  • 权限要求:主人(你)能增删工具,组员(同事)能用工具但不能乱改,陌生人不能用

chmod 750 /团队工具  # 类似给同事配钥匙,但只能开锁不能换锁  

场景3:公共公告栏(网站目录)

  • 目录:/var/www/html

  • 权限要求:主人(管理员)能更新内容,其他人只能看,不能贴小广告

chmod 755 /var/www/html  # 类似公共场所,大家能看但不能乱涂改  

错误1:家门大开(777权限)

chmod 777 重要文件  # 相当于把家门钥匙插在锁上  

风险:黑客能随意植入病毒(像小偷直接进屋)

错误2:锁了门但没关窗(目录无执行权限)

chmod 644 /数据备份  # 虽然能看到文件夹,但打不开  

表现:cd /数据备份 提示 "Permission denied"

修复:给目录加x权限(相当于给门把手装弹簧)

运维日常场景速查表

生活场景对应Linux操作命令示例
私人保险箱保护SSH密钥chmod 600 ~/.ssh/id_rsa
共享会议室团队脚本目录chmod 770 /opt/scripts
小区快递柜网站上传目录chmod 755 /var/www/uploads
带密码的U盘数据库配置文件chmod 640 /etc/mysql/my.cnf

特殊权限说明

Linux中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录

是否有写权限,如果有才可以删除(同时必须具备执行权限)。

/shell/readme.txt
​
我们想删除readme.txt文件,必须要对shell目录具有可写权限,否则文件无法删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值