Linux - 权限 - 权限设置

一. chmod

语法: chmod [参数] 权限 文件名

功能: 设置文件的访问权限.

提示: 只有文件的拥有者和 root 才可以改变文件的权限.

1. 修改文件访问权限的两种方式

①. 用户表示符 +/-/= 权限字符

用户表示符:

· u:拥有者

· g:所属组

· o:其它用户

· a:所有用户

+: 向权限范围增加权限代号所表示的权限

-: 向权限范围取消权限代号所表示的权限

=: 向权限范围赋予权限代号所表示的权限

权限字符:

· r: 读权限

· w: 写权限

· x: 可执行权限

②. 三位八进制数字

2. Permission denied

当用户不具有某个文件访问权限时, 若以该权限访问文件, 权限会被拒绝, 也就是 Permission denied.

注意: root 可以随意访问文件, 不受权限约束.

此时 other 没有文件 log.txt 的写权限, 但是 root 依然可以向 log.txt 中写入新内容.

3. sudo 命令提权

普通用户会被各种权限约束, 但是 root 却不会. 于是 Linux 就有一种操作, 用于提升普通用户的权限, 即普通用户在任何指令前加上sudo, 就能以 root 的身份去执行指令, 也就是短暂地切换成超级用户.

但是该普通用户必须在 sudoers 信任列表中, 具体操作方法如下.

首先切换到 root 用户.

然后使用 vim 打开 sudoers 文件.

然后我们可以看到进入了 sudoers 这个文件中. vim 打开文件时默认使用 [命令模式] , 此时我们要切换到 [末行模式] (切换方法为 Shift + ;).

接着去查找有 ALL 字眼的行.

按下回车键 (Enter) , 按 J 键向下逐行翻页, 直到找到 ## Allow root to run any commands anywhere 这句话.

可以看到用户 Aurora 已经在信任列表里了.

I 键切换到 [插入模式], 即可插入需要加入的新用户.

然后再按键盘左上角的 Esc 键退回 [命令模式].

再按 Shift + ; 切换回 [末行模式].

然后继续按下Shift + :进入 [末行模式] , 然后输入wq! (强制保存并退出), 因为 sudoers 是写保护文件, 不可随意修改.

再按下回车就回到 root 命令行界面, Ctrl + D 回到普通用户据的命令行界面, 普通用户即被添加到信任列表中去.

二. chown

chmod 用于修改一个文件的访问者权限, 现在我们来尝试修改一下这个文件的访问者, 首先就是修改文件的拥有者 , 使用的是chown.

语法: chown [参数] 用户名 文件名

功能: 修改文件的拥有者.

Operation not permitted

当以普通用户的身份使用 chown 的时候, 我们会发现这样的操作不被允许, 即 Operation not permitted.

所以我们经此可以得知, 给予其他用户某一文件拥有者的身份, 需要经过允许.

但是当以 root 身份允许时, 就不会发生这样的事情.

使用 sudo 命令对该条命令提权.

三. chgrp

可以更改文件的拥有者 , 那对于所属组 来说当然也是可以修改的, 使用指令 chgrp 即可.

语法: chgrp [参数] 用户名 文件名

功能: 修改文件的所属组.

与 chown 一样, 当以普通用户的身份使用 chgrp 的时候, 我们会发现这样的操作不被允许, 即 Operation not permitted.

但是使用 sudo 提权后操作就会被允许.

对于修改 [拥有者][所属组] 是可以一起进行的, 在中间加上冒号:即可.

提示: 文件的拥有者和所属组可以被修改, 目录的拥有者和所属组也可以.

相关推荐
wangjialelele31 分钟前
Linux mmap 机制:从 read/write 底层流程到手写 malloc 内存分配
linux·运维·服务器·mmap
草莓熊Lotso34 分钟前
【Linux网络】UDP Socket 编程全解析:从回显服务到通用字典服务,从零实现工业级代码
linux·运维·服务器·数据库·c++·单片机·udp
一只积极向上的小咸鱼3 小时前
Codex 在 VS Code + ModelArts 场景下的登录与配置总结
linux·运维·windows
Waay7 小时前
Linux Shell 知识点考评(一):grep 文本搜索(附答案)
linux·运维·服务器
jamon_tan7 小时前
Linux下串口RAW模式设置
linux
碧海银沙音频科技研究院7 小时前
基于VMware虚拟机ubuntu开发博通BK7258方法
linux·运维·ubuntu
云边有个稻草人10 小时前
【Linux系统】进程地址空间
linux·虚拟地址空间·进程地址空间·虚拟地址空间是怎么实现的?·为什么要有虚拟地址空间?·怎么理解虚拟地址空间?
想唱rap15 小时前
传输层协议TCP
linux·运维·服务器·网络·c++·tcp/ip
曦夜日长15 小时前
Linux系统篇,权限(二):缺省权限、最终权限的计算、文件隔离的两种方式
linux·运维·服务器
云水一下15 小时前
黑客的“猜密码”游戏:SSH暴力破解实战与Linux安全加固
linux·渗透测试·ssh·暴力破解