Linux02
Linux的用户
root用户(超级管理员)
在Linux系统中 最大权限的用户名为root
root用户有最大权限 可以解决普通用户权限不够的问题
普通用户的权限:一般在HOME目录内是不受限的 出了HOME目录 大多数地方 普通用户只有只读和执行权限 没有修改权限
切换用户
- su命令
语法:su [-] [用户名]
Switch User
-符号是可选的 表示切换用户后加载环境变量
用户名不填默认是root用户
切换用户后 可以使用exit退回到上一个用户 也可以使用ctrl + d使用普通用户切换到其他用户需要输入密码 而使用root用户切换其他用户不需要输入密码 - sudo命令
不建议长期使用root用户 可能会给系统带来损坏 因此就可以在其他命令之前加上sudo 临时以root用户执行该命令
语法:sudo 其他命令
需要为普通用户配置sudo认证才可以使用该命令 - 为普通用户配置sudo认证
切换到root用户 执行visudo命令 该命令会通过vi编辑器自动打开/etc/sudoers
在最后一行加上用户名 ALL=(ALL) NOPASSWD:ALL
通过wq保存
切换回普通用户 便有了sudo权限
用户 用户组管理
Linux中有关权限的管控有两个级别 分别是针对用户的权限控制和针对用户组的权限控制
比如针对某文件 可以对该文件设置允许哪个用户访问或者允许哪个用户组访问
用户组管理
下面命令需要用root用户才可以执行
- 创建用户组
语法:groupadd 用户组名
来完成创建用户组 - 删除用户组
语法:groupdel 用户组名
来删除用户组
用户管理
同样需要root用户才可以执行
- 创建用户
语法:useradd [-g -d] 用户名
- -g用于指定用户所在的组 如果不加-g 则会自动创建同名组并自动加入 如果已有同名组 则必须指定-g
- -d用于指定用户的HOME路径 如果不加-d 则会默认该用户的HOME路径在/home/用户名
- 删除用户
语法:userdel [-r] 用户名
- -r删除用户的HOME目录 不加上-r时 默认保存用户的HOME目录
- 查看用户所属组
语法:id [用户名]
- 用户名 表示被查看的用户 如果不提供 则查看自身
- 修改用户所属组
语法:usermod -aG 用户名 用户组
将指定用户加入用户组 - getent
语法:getent passwd
可以查看当前系统中所有的用户
信息包括用户名:密码(X):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
语法:getent group
查看当前系统的所有组
信息包括组名称:组认证(显示为X):组ID
查看权限控制信息
- 认知权限信息
序号1 表示文件 文件夹的权限控制信息
序号2 表示文件 文件夹所属的用户
序号3 表示文件 文件夹所属的用户组
序号1中包含十位信息 第一位是区分文件(-)/文件夹(d)/软连接(l link)
后面九位每三位一组 分别都是rwx 也就是read write execute 如果表示有这个权限 就是rwx 如果没有 就是-
一共三组 分别是所属用户权限 所属用户组权限 其他用户权限
w权限包括创建 删除 改名
x权限的执行意思就是是否有cd的权限进到这个目录作为工作目录
修改权限控制
-
chmod命令
change mode 使用chmod命令来修改文件/文件夹的权限信息
只有该文件/文件夹的所属用户或者root用户才可以修改权限
语法:chmod [-R] 权限 文件/文件夹
- R说明对文件夹内的全部内容应用同样的操作
示例:
chmod u=rwx,g=rx,o=x hello.txt
将hello.txt的权限修改为了rwxr-x--x
u表示user所属用户,g表示group所属用户组,o表示other其他用户
可以把用户权限 用户组权限 其他用户权限每三位一组 看为三个二进制组 然后三个二进制就是最大7最小0 7代表权限全开 0代表权限全关
因此示例可以改成chmod 751 hello.txt
达成同样的效果 -
chown命令
chown命令可以修改所属用户 用户组 change own 改变所属者
需要注意的是 这个命令只有root用户才有权限执行
语法:chown [-R] [用户][:][用户组] 文件/文件夹
- 同上一样 -R可以对文件夹内的文件/文件夹生效
chown命令所管控的就是上图的序号2序号3 可以修改该文件的所属用户和用户组
示例chown root test.txt
将test这个文本文件所属用户修改为root 用户组不修改
chown :root test.txt
将该文件的所属用户组修改为root用户组 用户不修改