一. 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 提权后操作就会被允许.
对于修改 [拥有者] 和 [所属组] 是可以一起进行的, 在中间加上冒号:
即可.
提示: 文件的拥有者和所属组可以被修改, 目录的拥有者和所属组也可以.