1 root用户
超级管理员,其他用户操作权限受限
对于普通用户,一般只在自己的家目录下权限不受限制
2 用户与用户组
2.1 用户组管理
创建用户组
格式:groupadd 用户组名
eg:创建一个blue的用户组
[root@node1 ~]# groupadd blue
查看用户组
格式1:cat /etc/group
[root@node1 ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
...
lisi:x:1002:
blue:x:1003:
格式2:getent group
[root@node1 ~]# getent group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
...
lisi:x:1002:
blue:x:1003:
删除用户组
格式:groupdel 用户组名
eg:删除用户组blue
[root@node1 ~]# groupdel blue
[root@node1 ~]#
修改用户组
格式:chgrp 用户组名 指定文件或者目录
[root@node1 ~]# ls
aaa anaconda-ks.cfg a.txt b hello.txt.delete mysql
[root@node1 ~]# pwd
/root
[root@node1 ~]# chgrp blue /root/aaa/
2.2 用户管理
创建用户
格式:useradd [-g -d] 用户名
• 选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
• 选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
eg:创建一个blue的用户
[root@node1 ~]# useradd blue
useradd:blue 组已经存在 - 如果您想将此用户加入到该组,请使用 -g 参数。
[root@node1 ~]# useradd -g blue blue
[root@node1 ~]#
删除用户
格式:userdel [-r] 用户名
• 选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
eg:删除用户blue
[root@node1 ~]# userdel blue
[root@node1 ~]# ls /home/
blue lisi zhangsan
[root@node1 ~]#
[root@node1 ~]# userdel -r blue
[root@node1 ~]# ls /home/
lisi zhangsan
[root@node1 ~]#
查看用户所属组
格式:id [用户名]
• 用户名:被查看的用户,如果不提供则查看自身
eg:查看root用户、查看lisi用户
[root@node1 ~]# id root
uid=0(root) gid=0(root) 组=0(root)
[root@node1 ~]# id lisi
uid=1001(lisi) gid=1002(lisi) 组=1002(lisi)
[root@node1 ~]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@node1 ~]#
添加用户到指定组
格式:usermod -aG 用户组 用户名
• 将指定用户加入指定用户组
eg:添加用户组,将lisi添加到指定用户组
id查看lisi用户所属用户组信息,见lisi 用户同时在用户组1001(lisi),1000(blue)
[root@node1 ~]# groupadd blue
[root@node1 ~]# usermod -aG blue lisi
[root@node1 home]# id lisi
uid=1000(lisi) gid=1001(lisi) 组=1001(lisi),1000(blue)
su和exit命令
su命令就是用于账户切换的系统命令,其来源英文单词:Switch User
格式:su [-] [用户名]
• - 符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上
• 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
切换用户后,可用exit命令退回上一个用户,也可以使用快捷键:ctrl + d
• 使用普通用户,切换到其它用户需要输入密码,如切换到root用户
• 使用root用户切换到其它用户,无需密码,可以直接切换
[root@node1 ~]# ls /home/
lisi zhangsan
[root@node1 ~]# su lisi
[lisi@node1 root]$ exit
[root@node1 ~]#
查看所有用户
格式:getent group
eg:root权限下查看所有用户
[root@node1 ~]# getent group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
...
lisi:x:1002:
blue:x:1003:lisi
为某个用户设置密码
格式:passwd 用户名
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@node1 ~]# passwd blue
更改用户 blue 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
sudo命令
格式:sudo 其他命令
作用:可为普通用户进行授权,让其临时赋予root权限
可使用sudo命令,为普通的命令授权,临时以root身份执行。
• 在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权
• 但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证
如何开启:基于root用户操作
[root@node1 ~]# vim /etc/sudoers
输入i. 进入插入模式: 101行插入
需要插入的内容:zhangsan ALL=(ALL) NOPASSWD:ALL
最后esc退出编辑模式, 输入 :wq! 强制保存退出
配置后, 切换到普通用户, 基于sudo 使用root权限了
[root@node1 ~]# su zhangsan
[zhangsan@node1 /]$ sudo ls /root/
3 查看权限控制
-rw-r–r–. :节点类型+权限信息
第一个root:所属用户
第二个root:所属用户组
[root@node1 /]# ll
总用量 32
-rw-r--r--. 1 root root 4365 4月 25 12:23 1
drwxr-xr-x. 2 root root 19 4月 25 12:32 aa
细化解析: drwxr-xr-x 共计 10位
第一位: 节点的类型
d: 文件夹
-: 文件
l: 软连接
第二位~第四位: rwx 所属用户的权限 简称 U
r: 读取权限
w: 写权限
x: 执行权限
第五位 ~ 第七位: r-x 所属用户组的权限 简称 G
-: 表示没有此权限
第八位 ~ 第十位: r-x 其他用户的权限 简称 O
4 修改权限控制 - chmod
chmod命令: 运行所属用户或者root用户对文件或者文件夹进行修改权限
格式: chmod [-R] 权限 文件或者文件夹
• -R:对文件夹内的全部内容应用同样规则
在设置权限的时候, 一般建议使用纯数字的方式来设置, 数字共计有三位, 第一位表示U的权限 第二位表示G权限 , 第三位表示O的权限,每一位的最小是为 0 , 最大值为7, 数字不同, 表示的权限也是不同的
r代表4,w代表2,x代表1
rwx的相互组合可以得到从0到7的8种权限组合
如7代表:rwx,5代表:r-x,1代表:–x
eg1:修改/root/a.txt,将其权限修改为可执行权限(不管哪个用户)
[root@node1 ~]# chmod 111 a.txt
[root@node1 ~]# ll
总用量 12
drwxr-xr-x. 2 root blue 6 4月 26 19:03 aaa
eg2:对/root/a.txt文件修改权限,当前用户可读可写可执行,其他用户可读可执行
[root@node1 ~]# chmod 755 a.txt
[root@node1 ~]# ll
总用量 12
drwxr-xr-x. 2 root blue 6 4月 26 19:03 aaa
创建文件默认644
创建文件夹默认755
5.修改权限控制 - chown
chown命令: 修改文件/文件夹的所属用户和所属用户组 此命令只能是root用户来操作
格式:chown [-R] [用户][:][用户组] 文件或者文件夹
参数说明:
• -R: 修改文件夹下所有的节点都与文件夹为相同的权限
• 用户: 修改所属用户
• 用户组: 修改所属用户组
• [:]: 分隔用户和用户组
准备工作:
[root@node1 ~]# mkdir -p /data/a
[root@node1 ~]# cd data/a
-bash: cd: data/a: 没有那个文件或目录
[root@node1 ~]# cd /data/a
[root@node1 a]# vim a.txt
123
123
456
456
789
[root@node1 a]# cat a.txt
123
123
456
456
789
eg:切换到lisi用户,尝试进入目录,并且查看文件中的内容,以及尝试修改目录中的内容
[root@node1 ~]# su lisi
[lisi@node1 root]$ cd /data/a
[lisi@node1 a]$ vi /data/a/a.txt
只读文件不可修改
eg:修改a.txt为其他用户可读可写可执行
[lisi@node1 a]$ exit
[root@node1 a]# ll
总用量 4
-rw-r--r--. 1 root root 20 4月 26 19:54 a.txt
[root@node1 a]# chmod 777 a.txt
[root@node1 a]# ll
总用量 4
-rwxrwxrwx. 1 root root 20 4月 26 19:54 a.txt
eg:修改a.txt为当前用户可读可写,其他用户只有可读权限
[root@node1 a]# chmod 644 a.txt
[root@node1 a]# ll
总用量 4
-rw-r--r--. 1 root root 20 4月 26 19:54 a.txt
eg:其他用户删除目录
[root@node1 a]# su lisi
[lisi@node1 a]$ cd ..
[lisi@node1 data]$ ll
总用量 0
drwxr-xr-x. 2 root root 19 4月 26 20:11 a
[lisi@node1 data]$ mv a b
mv: 无法将"a" 移动至"b": 权限不够
方案:chown -R lisi /data
(仅能在root用户中执行)
[lisi@node1 data]$ exit
[root@node1 a]# chown -R lisi /data
执行后, 再次操作: 正常修改了
[root@node1 a]# su lisi
[lisi@node1 a]$ cd ..
[lisi@node1 data]$ mv a b
[lisi@node1 data]$ ls
b
[lisi@node1 data]$