Linux的root用户
无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理
- 超级管理员: root用户拥有最大的系统操作权限(不建议长期使用root用户,避免带来系统损坏)
- 普通用户的权限: 一般在其HOME目录内是不受限的,在HOME目录外仅有只读和执行权限,无修改权限
su和exit命令
su [-] [用户名]
: su(Switch User)命令用于账户切换的系统命令
-
表示是否在切换用户后加载环境变量(建议带上)- 用户名表示要切换的用户,省略用户名默认切换到root
- 普通用户切换到其它用户需要输入密码,root用户可以直接切换到其它用户
exit
:退回上一个用户(快捷键ctrl + d)
sudo 其他命令
: 为普通的命令授权即临时以root身份执行
普通用户想要使用sudo命令,需要在root用户中为普通用户配置sudo认证
-
第一步: 切换到root用户执行visudo命令会自动通过vi编辑器打开/etc/sudoers文件增加配置
-
第二步: 在文件的最后一行添加: 用户名 ALL=(ALL) NOPASSWD: ALL
-
第三步: 执行:wq命令保存
用户和用户组
Linux系统中可以配置多个用户和用户组,并且一个用户可以加入多个用户组中
- Linux中关于文件/文件夹权限的管控级别有2个级别: 针对用户的权限控制,针对用户组的权限控制
- Linux中创建用户和用户组时需要保证在root用户下
用户、用户组相关管理命令
groupadd 用户组名
: 创建用户组
groupdel 用户组名
: 删除用户组
useradd [-g -d] 用户名
: 创建用户
- -g选项:指定用户所在的组(必须存在),不指定会创建同名组并自动加入该用户
- -d选项:指定用户HOME路径,不指定HOME目录默认在/home/用户名
userdel [-r] 用户名
: 删除用户
- -r选项:删除用户的HOME目录,默认保留用户的HOME目录
id [用户名]
: 查看用户所属组
- 用户名表示被查看的用户,如果不提供用户名表示查看当前用户
usermod -aG 用户组 用户名
: 将指定用户加入指定用户组(增加用户所在的组不是改变用户所在的组)
getent passwd
: 查看当前系统中有哪些用户
- 显示格式: 用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:用户执行的终端(默认bash)
getent group
: 查看当前系统中有哪些用户组
- 显示格式: 组名称:组认证(显示为x):组ID
Linux文件的权限管控信息
通过 ls -l 可以以列表形式查看内容,并显示权限细节
文件、文件夹的权限控制信息
- r表示读权限: 针对文件/文件夹表示可以查看文件/文件夹内容,如ls命令
- w表示写权限: 针对文件表示可以修改此文件,针对文件夹表示可以在文件夹内创建、删除、改名等操作
- x表示执行权限: 针对文件表示可以将文件作为程序执行,针对文件夹表示可以更改工作目录到此文件夹(即cd进入该目录)
修改权限控制
chmod [-R] 权限 文件/文件夹
: 修改文件、文件夹的权限信息(只有文件、文件夹的所属用户或root用户可以修改权限)
- -R选项: 对文件夹内的全部内容应用同样的操作
- 权限: u表示user所属用户权限,g表示group组权限,o表示other其它用户权限
shell
#表示将文件权限修改为rwxr-x--x
chmod u=rwx,g=rx,o=x hello.txt
#文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x
chmod -R u=rwx,g=rx,o=x test
权限可以用3位数字来代表: 第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限
- r记为4,w记为2,x记为1,rwx的相互组合可以得到从0到7的8种权限组合
shell
#751表示rwx(7),r-x(5),--x(1)
chmod 751 hello.txt
#将hello.txt的权限修改为: r-x--xr-x
chmod 515 hello.txt
chown [-R] [用户][:][用户组] 文件/文件夹
: 修改文件、文件夹的所属用户和用户组(只有root用户可以修改)
- -R选项: 对文件夹内全部内容应用相同规则
- 用户表示修改所属用户
- 用户组表示修改所属用户组
- : 用于分隔用户和用户组
shell
#将hello.txt所属用户修改为root
chown root hello.txt
#将hello.txt所属用户组修改为root
chown :root hello.txt
#将hello.txt所属用户修改为root,用户组修改为itheima
chown root:itheima hello.txt
#将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则
chown -R root test