课程回顾
-
vim编辑器
本章重点
-
文件权限
-
用户管理
-
用户组管理
一、文件权限
由于Linux是一个多人多任务的系统,因此经常会出现同一台机器同时有多个人进行操作,为了考虑每个人的隐私权以及每个人喜好的工作环境,所以文件的权限归属就至关重要。
为了保障系统的安全性和文件的隐私性,一个文件针对不同权限的账户有着不同的权限,如下图
如图所示,文件权限是由一个字符串所表示,其所代表的含义为
其中,文档类型有如下表示方法:
-
d :目录,例如上表档名为『.gconf』的那一行;
-
-:文档,例如上表档名为『install.log』那一行;
-
l :连结档(link file);b :装置文件里面的可供储存的接口设备(可随机存取装置);
-
c : 装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
权限由rwx三个字幕表示,分别表示为可读、可写、可执行,如果没有该权限,则用“ - ”表示,对于目录来说,必须有x权限,否则无法读取目录内容
如果文件名前面有“ . ”,则表示这个文档或目录是隐藏的
二、用户和用户组
2.1 分类
超级用户:root
普通用户
2.2 查看用户信息
当前系统中的用户组信息
vim /etc/group 或者 cat /etc/group
注意:
-
当该组内只有一个用户,并且用户名和组名相同时,在组列表中,包含用户一列可以为空
-
系统中root分组的组编号一定为0
-
组号1~499为系统预留的组编号,一般是预留给系统安装的软件或者服务的编号,越早安装的软件或者服务的组编号约早。用户手动创建的用户组编号从500开始
-
组密码占位符,无一例外,全部用x表示
当前系统中用户组的密码信息
vim /etc/gshadow
注意:
-
如果组密码处为“*” “!”或者为空时候,则该组没有密码
-
如果组管理者为空,则表示该组内所有成员都可以管理该组
当前系统中所有的用户信息
/ect/passwd
注意:在linux中,超级管理员root的用户编号一定为0
当前系统中所有用户的密码信息
/ect/shadow
注意:密码是一个单向加密过的字符串
2.3 用户操作
2.3.1 创建用户
命令格式:
useradd [参数] 用户名
参数:
-
-d:设置该用户的home目录,默认在home/用户名
例如:useradd -d /home/helloworld hello //新建hello用户,并且将其home目录设置为/home/helloworld
-
-u:设置其userid,默认自动生成
例如:useradd -u 668 hello //新建一个hello用户,将他的id设置为668
-
-g:设置其主组,默认自动添加一个同名的用户组
例如:useradd -g root hello //新建一个hello用户,并将其假如root组
-
-m:生成home目录的文件夹
useradd zhangsan
注意:
-
会在/etc/passwd文件中添加xxx用户的信息
-
会在/etc/group文件中添加一个名为xxx的用户组信息
-
会在/home路径下创建一个同名的文件夹,作为家目录
2.3.2 修改用户信息
命令格式:
usermod [参数] 用户名
参数:
-
-l :修改新用户名
例如:usermod -l helloworld hello 将hello用户名改为helloworld,但其home目录不改变
-
-u :修改用户的userid
例如:usermod -u 888 hello 将hello的userid改为888
-
-d :修改用户的home目录,不声明,默认在/home/用户名
-
-g :修改用户的主用户组,不声明,创建同名的用户组
-
-L :锁定用户,使其不能登录
-
-U :解除锁定
2.3.3 删除用户
命令格式:
userdel [参数] 用户名
参数:
-
-r 删除用户的同时将其home目录也删掉
2.3.4 设置密码
passwd 用户名
[root@localhost ~]# passwd test1 Changing password for user test1. New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully.
2.3.5 切换用户
[root@localhost ~]# su 用户名
2.4 用户组操作
2.4.1 创建用户组
groupadd 组名
2.4.2 修改用户组
groupmod -n 新组名 旧组名 //修改组名 groupmod -g 新组id 旧组id 修改组ID
2.4.3 删除用户组
groupdel 组名
三、权限管理
root 0:root 0
sn 1000 :sn 1000
test2 1002 : sn 1000
test1 1001 :test1 1001
3.1 chmod命令
修改权限
-
读:r | 4
-
写:w | 2
-
执行:x | 1
-
没有:-
chmod 参数 文件名|文件夹名
可以使用如下方法直接设置文件的权限
使用rwx
用户|用户组|其他用户分别设置权限
chomd 用户+权限 文件
-
所有者(u) ,组(g) ,其他用户(o) ,全部(a)
-
新增(+), 撤销(-)
# 文件所有者新增写的权限 chmod u+w 1.txt # 文件所有者撤销写的权限 chmod u-w 1.txt # 其他用户新增读的权限 chmod o+r 1.txt # 所有都新增读的权限 chmod a+r 1.txt
使用数字
-
读:4
-
写: 2
-
执行: 1
0~7:0(没权限),1(执行),2(写),3(写执行),4(读),5(读执行),6(读写),7(读写执行)
chmod 123 文件
-
1:所有者的权限
-
2:组的权限
-
3:其他用户的权限
# 所有者执行权限,组写权限,其他用户写执行权限 chmod 123 1.txt chmod 755 1.txt chmod 777 1.txt
3.2 chown命令
change owner 的缩写
改变文档所有者,可使用参数 -R使得其子目录也同时修改
chown username 文件名 # 同时修改文档或目录的拥有者和所在组 chown username:group 文件名
3.3 chgrp命令
change group的缩写
改变文档所有组,可使用参数 -R使得其子目录也同时修改
chgrp 组的名字 文件名
修改文件的所属组 以及对应的子目录的所属组
四、sudo命令
4.1 作用
一般用在非root用户下,临时提升非root用户的权限。
sudo 是一个在 Linux 系统中用于执行特权命令的超级用户工具。sudo 命令默认安装在大多数 Linux 发行版中,它可以允许用户以 root 用户权限执行某些命令,只需在 linux 系统/etc/sudoers文件中配置用户和组执行 sudo 命令的权限,root 用户默认配置 sudo 权限。
4.2 sudo 命令的使用
sudo 命令
普通用户使用 sudo 命令需要输入 password 确认是否执行特权命令,而 root 用户使用 sudo 命令不需要输入 password, 因为在 /etc/sudoers 文件中默认配置,允许 root 用户可以在系统任何地方执行任何命令。
# 查看版本信息 sudo -V # 以root身份使用useradd命令创建cat用户 sudo -u root useradd cat # 更改用户密码: sudo passwd user # 更改用户组: sudo usermod -G group user # 更改用户主目录的权限: sudo chown -R user:group /home/document # 更改文件所有者和所属组 sudo chown user:group /home/file # 更改文件权限 sudo chmod -R 755 /home/file
4.3 普通用户
普通用户不能直接使用
# 方法1:使用 root 用户编辑 /etc/sudoers 文件,将用户名添加到 %wheel 组中。 # 例如:%hzk ALL=(ALL) ALL %用户名 ALL=(ALL) ALL # 方法2:使用 root 用户编辑 /etc/sudoers 文件,将用户添加到 %wheel 组中,设置不需要密码。 # 例如:%hzk ALL=(ALL) NOPASSWD: ALL %用户名 ALL=(ALL) NOPASSWD: ALL
让所有的用户都可以使用sudo的命令