目录
chmod命令 ( 只有文件、文件夹的所属用户或root用户可以修改。 )
chown命令(普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行)
认知root用户
root用户(超级管理员)
无论是在Windows,MacOS,Linux中均采用多用户的管理模式进行权限管理
- 在Linux系统中,拥有最大权限的账户为:root,即超级管理员
root用户拥有最大的喜用操作权限,而普通用户在许多地方的权限是受限的。
例如:
- 普通用户无法在根目录下创建文件夹
- root用户可以在根目录下创建文件夹
通常来说,普通用户的权限一般在home目录内是不受限的,一旦出了home目录,普通用户只有阅读和执行权限,没有修改权限。
su和exit命令
su [-] [用户名]
su命令就是用于账户切换的系统命令
- - 符号是可选的,表示是否在切换用户时加载环境变量
- 参数:用户名,表示要切换的用户,用户名可以省略,默认切换到root
- 使用普通用户切换到其他用户时需要输入密码,但是从root切换到其他用户时则无需密码
切换用户后,可以通过exit命令登出返回至上一个账号,或者也可以使用快捷键Ctrl+d
sudo命令
sudo 其他命令
由于root用户具有最高权限,因此不建议登录root用户长期使用。我们可以通过sudo函数来为普通命令授权,使它暂时以root的身份执行。
- 在使用其他命令之前添加sudo,即可为这一条命令赋予root身份
- 在使用sudo命令之前需要为普通用户配置sudo认证
为普通用户配置sudo认证
- 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
- 在文件的末尾添加
centos(用户名) ALL=(ALL) NOPASSWD: ALL(这里表示使用sudo命令时无需输入密码) - 最后通过:wq保存
- 切换回普通用户
用户,用户组管理
用户,用户组
Linux最优秀的地方之一就在于它的多人多任务环境。而为了让各个用户具有保密的文件数据,因此文件权限管理就变得很重要了。Linux一般将文件可读写的身份分为三个类别,分别是 拥有者(owner),所属群组(group),其他人(others)。而且这三种身份各有 读(read),写(write),执行(execute)等权限。
在Linux系统中你可以:
- 配置多个用户
- 配置多个用户组
- 用户加入多个不同的用户组中
Linux关于权限的管控有两个级别:
- 针对用户的权限控制
- 针对用户组的权限控制
用户组管理
需要在root权限下执行
- 创建用户组
groupadd 用户组名
- 删除用户组
groupdel 用户组名
用户管理
需要在root权限下执行
- 创建用户
useradd [-g -d] 用户名
选项:-g指定用户的组。如果不指定-g,会创建同名组并自动加入。指定-g需要指定的组已存在,如果存在同名的组,则必须使用-g。
- 删除用户
userdel [-r] 用户名
选项:-r,删除用户的home目录,不使用-r时,删除用户会保留home目录。
- 查看用户所属组
id [用户名]
参数:用户名,被查看的用户。空白默认查看自身。
- 修改用户所属组
usermod -aG 用户组 用户名
将指定的用户加入指定的用户组中
getent命令
getent passwd
使用getent命令可以查看系统中有哪些用户
信息格式为 :用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
getent group
使用getent命令,同样可以查看有哪些用户组
信息格式为: 组名称:组认证(显示为x):组ID
查看权限控制
文件权限的概念
通过 ls -l可以以列表的形式查看文件
- 序号1:表示文件,文件夹权限控制信息
- 序号2:表示文件,文件夹的所属用户
- 序号3:表示文件,文件夹的所属用户组
第一个字符代表这个文件时目录,文件或链接文件等
- 当为d代表目录
- 当为-则为目录
- 当为l则为链接文件
- 当为b则表示设备文件里的可供存储的周边设备
- 若是c则表示为设备文件里面的串行端口设备
r w x分别代表读,写,执行权限。没有对应的权限就用-表示
- 第一组为文件拥有者可具备的权限
- 第二组为加入此用户组中账号的权限
- 第三组为非本人并且没有加入本地用户组的其他用户的权限
修改权限控制
chmod命令 ( 只有文件、文件夹的所属用户或root用户可以修改。 )
chmod [-R] 权限 文件或文件夹
- 选项:-R,对文件夹内的全部内容应用相同的操作
chmod -R u=rwx,g=rx,o=x test ,表示将文件夹和其中文件权限修改为:rwxr-x--x。
其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限
此外还有类似于:chmod 751 text.txt的写法
权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。
数字的细节如下:r记为4,w记为2,x记为1,可以有:
- 0:无任何权限,即---
- 1:仅有x权限,即--x
- 2:仅有w权限,即-w-
- 3:仅有w和x权限,即-wx
- 4:仅有r权限,即r--
- 5:仅有r和x权限,即r-x
- 6:仅有r和w权限,即rw-
- 7:含有全部权限,即rwx
所以751表示: rwx(7) r-x(5) --x(1)
chown命令(普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行)
chown [-R] [用户] [:] [用户组] 文件或文件夹
- 选项,-R,同chmod,对文件夹内全部文件应用相同的规则
- 选项,用户,修改所属用户
- 选项,用户组,修改所属的用户组
- :用于分割用户和用户组
实例:
-
chown root hello.txt,将hello.txt所属用户修改为root
-
chown :root hello.txt,将hello.txt所属用户组修改为root
-
chown root:centos hello.txt,将hello.txt所属用户修改为root,用户组修改为centos
-
chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则
chgrp 命令
chgrp [-R] 用户组 文件/文件夹名称
利用chgrp可以修改文件的所属用户组
- 选项,-R,同chmod和chown,对文件夹内全部文件应用相同的规则
也可以使用chown命令更改文件的组,但通过chown命令仅更改组不是标准的。