目录
Linux下如何创建一个用户
Linux下如何删除一个用户
Linux权限的概念
Linux权限管理
01.文件访问者的分类(人)
02.文件类型和访问权限(事物属性)
a) 文件类型
b)基本权限
03.文件权限值的表示方法
04.文件访问权限的相关设置方法
a)chmod
b)chmod a=x /home/abc.txt
c)chown
d)chgrp
file指令
下面演示创建一个ShaXiang的用户(本操作实在root用户下进行操作)
[root@VM-8-14-centos lesson]# sudo useradd ShaXiang
// 查看是否创建成功用户
[root@VM-8-14-centos home]# ls // ShaXiang就是创建的新用户
lighthouse ShaXiang
[root@VM-8-14-centos home]# pwd // 所在的目录下
/home
给新的用户创建密码
[root@VM-8-14-centos home]# sudo passwd ShaXiang // 创建密码
Changing password for user ShaXiang.
New password: // 第一次密码
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: // 第二次密码
passwd: all authentication tokens updated successfully.
// 切换用户
[root@VM-8-14-centos home]# su ShaXiang
[ShaXiang@VM-8-14-centos home]$ whoami // 查看当前用户
ShaXiang
// 最终ShaXiang用户密码:
// 最终root用户密码:
userdel命令可以用于删除用户帐号及相关档案。
语法:userdel [-r] 用户名 参数:-r 用于彻底删除,用户HOME目录下的档案会被移除,在其他位置上的档案也将一一找出并删除,比如路径/var/mail/用户名 下的邮件。
Linux下有两种用户:超级用户(root)、普通用户 。
超级用户:可以再linux系统下做任何事情,不受限制。
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$” 。
命令: su [用户名] 功能:切换用户。 例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令 。
[root@VM-8-14-centos /]# pwd
/
[root@VM-8-14-centos /]# su - // su - 切换用户,自动移动到家目录下。
Last login: Tue Oct 4 09:07:28 CST 2022 on pts/0
[root@VM-8-14-centos ~]# pwd
/root
[root@VM-8-14-centos /]# pwd
/
[root@VM-8-14-centos /]# su // su 切换用户,不会更改当前所在的目录。
[root@VM-8-14-centos /]# pwd
/root
[root@VM-8-14-centos /]# exit // 退出root用户。
// 不切换用户,让普通用户以root的身份执行命令。
[root@VM-8-14-centos /]# sudo whoami
文件和文件目录的所有者: u---User(中国平民 法律问题)
文件和文件目录的所有者所在的组的用户: g---Group(不多说)
其它用户: o---Others (外国人)
d:文件夹(目录文件) -:普通文件(源代码、库文件、可执行文件、文件压缩包等) l:软链接(类似Windows的快捷方式) b:块设备文件(例如硬盘、光驱等) p:管道文件 c:字符设备文件(例如屏幕等串口设备)(键盘、显示器) s:套接口文件
i.读(r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限 ii.写(w/2): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限 iii.执行(x/1): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限 iv.“—”表示不具有该项权限
举例:
drwxr-xr-x 2 root root 4096 Oct 4 11:29 dir
-rw-r--r-- 1 root root 218967 Oct 1 19:42 file.txt
// 对于当前下:
dir:是一个文件夹(-d) 拥有者(读/写/可执行) 所属组(无读/写/可执行)其他人(无读/可写/无执行)
file:是一个文件(-) 拥有者(读/写/无执行) 所属组(读/无写/无执行) 其他人(读/无写/无执行)
功能: 设置文件的访问权限 格式: chmod [参数] 权限 文件名 常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
chmod 命令权限值的格式:
① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
// 1、将文件的拥有者、所属组、other的权限全部解除
-rwxr--r-- 1 root root 218967 Oct 1 19:42 file.txt
[root@VM-8-14-centos lesson]# chmod u-rwx file.txt // 解除拥有者的权限
[root@VM-8-14-centos lesson]# chmod g-r // 解除所属组的权限
[root@VM-8-14-centos lesson]# chmod o-r file.txt // 解除other的权限
[root@VM-8-14-centos lesson]# ll
---------- 1 root root 218967 Oct 1 19:42 file.txt // 查看结果
// 2、将文件的拥有者、所属组、other的权限全部增加
---------- 1 root root 218967 Oct 1 19:42 file.txt
[root@VM-8-14-centos lesson]# chmod u+rwx,g+rwx,o+rwx file.txt // 增加所有权限。
[root@VM-8-14-centos lesson]# ll
-rwxrwxrwx 1 root root 218967 Oct 1 19:42 file.txt
// 3、all对所有的用户进行增加和删除权限
-rwxrwxrwx 1 root root 218967 Oct 1 19:42 file.txt
[root@VM-8-14-centos lesson]# chmod a-rwx file.txt // 对所有人员删除权限
[root@VM-8-14-centos lesson]# ll
---------- 1 root root 218967 Oct 1 19:42 file.txt
---------- 1 root root 218967 Oct 1 19:42 file.txt
[root@VM-8-14-centos lesson]# chmod a+rw file.txt
[root@VM-8-14-centos lesson]# ll
-rw-rw-rw- 1 root root 218967 Oct 1 19:42 file.txt // 对所有人员增加 读和写权限。
② 三位8进制数字
-rw-rw-rw- 1 root root 218967 Oct 1 19:42 file.txt
[root@VM-8-14-centos lesson]# chmod 000 file.txt // 8进制更改
[root@VM-8-14-centos lesson]# ll
total 216
---------- 1 root root 218967 Oct 1 19:42 file.txt // 所有的权限都没了。
[root@VM-8-14-centos lesson]# chmod 777 file.txt // 8进制更改权限
[root@VM-8-14-centos lesson]# ll
total 216
-rwxrwxrwx 1 root root 218967 Oct 1 19:42 file.txt //恢复所有人的权限
功能:修改文件的拥有者 格式: chown [参数] 用户名 文件名
-rw-rw-r-- 1 ShaXiang ShaXiang 0 Oct 4 12:51 file.txt
[root@VM-8-14-centos lesson]# chown root file.txt // 将拥有者权限给root
[root@VM-8-14-centos lesson]# ll
total 0
-rw-rw-r-- 1 root ShaXiang 0 Oct 4 12:51 file.txt
功能:修改文件或目录的所属组 格式: chgrp [参数] 用户组名 文件名 常用选项: -R 递归修改文件或目录的所属组
[root@VM-8-14-centos lesson]# chgrp root file.txt // 将所属组权限给root
[root@VM-8-14-centos lesson]# ll
total 0
-rw-rw-r-- 1 root root 0 Oct 4 12:51 file.txt
[root@VM-8-14-centos lesson]# chown ShaXiang:ShaXiang file.txt // 在root下退还权限
[root@VM-8-14-centos lesson]# ll
total 0
-rw-rw-r-- 1 ShaXiang ShaXiang 0 Oct 4 12:51 file.txt
功能说明:辨识文件类型。 语法: file [选项] 文件或目录... 常用选项:
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容 。
[ShaXiang@VM-8-14-centos lesson]$ file file.txt // file.txt是一个空文件。
file.txt: empty
我们总结几个问题:
1、为什么系统要有权限呢?
答:权限的存在是便于我们对系统进行安全管理。
2、为什么我们创建的目录或者说普通文件,默认权限是我们所看到的样子呢?
drwxrwxr-x 2 ShaXiang ShaXiang 4096 Oct 4 13:02 dir
-rw-rw-r-- 1 ShaXiang ShaXiang 0 Oct 4 12:51 file.txt
答:
(1)Linux规定 目录的起始权限是从666开始的,文件的起始权限是从777开始的。
(2)系统默认会配置好umask权限掩码:凡是在umask中出现的权限,都必须在起始权限中抹去。
[ShaXiang@VM-8-14-centos lesson]$ umask
0002
// 更改一下umask的值,我们看一下。
[ShaXiang@VM-8-14-centos lesson]$ umask 0111
[ShaXiang@VM-8-14-centos lesson]$ umask
0111
[ShaXiang@VM-8-14-centos lesson]$ touch file.txt
[ShaXiang@VM-8-14-centos lesson]$ ll
-rw-rw-rw- 1 ShaXiang ShaXiang 0 Oct 4 13:12 file.txt
[ShaXiang@VM-8-14-centos lesson]$ mkdir dir
[ShaXiang@VM-8-14-centos lesson]$ ll
drw-rw-rw- 2 ShaXiang ShaXiang 4096 Oct 4 13:12 dir
-rw-rw-rw- 1 ShaXiang ShaXiang 0 Oct 4 13:12 file.txt
// 这样权限就更改了。
目录的权限
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.