CC00011.LinuxBasic——|Linux&常用命令.V05|——|权限管理|...

一、基本权限管理
### --- 权限的介绍
~~~     权限位的含义
~~~     前面讲解 ls 命令时,我们已经知道长格式显示的第一列就是文件的权限,例如:
~~~     第一列的权限位如果不计算最后的“.”(这个点的含义我们在后面解释),
~~~     则共有 10 位,这 10位权限位的含义如图 4-4 所示。

[root@localhost ~]# ls -l install.log
-rw-r--r--. 1 root root 24772 1 月 14 18:17 install.log
### --- 第 1 位代表文件类型。

~~~     Linux 不像 Windows 使用扩展名表示文件类型,而是使用权限位的第 1位表示文件类型。
~~~     虽然 Linux 文件的种类不像 Windows 中那么多,但是分类也不少,
~~~     详细情况可以使用“info ls”命令查看。超哥在这里只讲一些常见的文件类型。
~~~     # - “-”:普通文件。
~~~     - “b”:块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件/dev/sda1就是这种文件。
~~~     - “c”:字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘等。
~~~     - “d”:目录文件。Linux 中一切皆文件,所以目录也是文件的一种。
~~~     - “l”:软链接文件。
~~~     - “p”:管道符文件。这是一种非常少见的特殊设备文件。
~~~     - “s”:套接字文件。这也是一种特殊设备文件,一些服务支持 Socket 访问,就会产生这样的文件。第 2~4 位代表文件所有者的权限。
~~~     - r:代表 read,是读取权限。
~~~     - w:代表 write,是写权限。
~~~     - x:代表 execute,是执行权限。如果有字母,则代表拥有对应的权限;
~~~     如果是“-”,则代表没有对应的权限。 第 5~7 位代表文件所属组的权限,同样拥有“rwx”权限。
~~~     第 8~10 位代表其他人的权限,同样拥有“rwx”权限。
### --- linux的帮助命令:man:帮助信息,info:更详细的信息中 . 表示受selinux保护的,
~~~     #PHP和MySQL的时候会成.sock文件,谨慎使用,
~~~     删除后拷贝同版本的文件还是会失效,只有重装解决。

[root@server21 ~]# ls -l
total 20
-rw-------. 1 root root 1112 Feb  4 07:46 anaconda-ks.cfg
-rw-r--r--. 1 root root 9615 Feb  4 07:46 install.log
-rw-r--r--. 1 root root 3161 Feb  4 07:45 install.log.syslog
-rw-r--r--  1 root root    0 Feb  4 18:53 yanqi
二、基本权限命令
### --- chmod

~~~     首先来看修改权限的命令 chmod,其基本信息如下。
~~~     命令名称:chmod。
~~~     英文原意:change file mode bits。
~~~     所在路径:/bin/chmod。
~~~     执行权限:所有用户。
~~~     功能描述:修改文件的权限模式。
### --- 命令格式

[root@localhost ~]# chmod [选项] 权限模式 文件名
### --- 选项:
~~~     -R:递归设置权限,也就是给子目录中的所有文件设定权限

### --- 权限模式
~~~     chmod 命令的权限模式的格式是“[ugoa][[+-=][perms]]”,
~~~     也就是“[用户身份][[赋予方式][权限]]”的格式,我们来解释一下。
### --- 用户身份。
~~~     - u:代表所有者(user)。
~~~     - g:代表所属组(group)。
~~~     - o:代表其他人(other)。
~~~     - a:代表全部身份(all)。

### --- 赋予方式。
~~~     - +:加入权限。
~~~     - -:减去权限。
~~~     - =:设置权限。
### --- 权限。
~~~     - r:读取权限(read)。
~~~     - w:写权限(write)。
~~~     - x:执行权限(execute)。

### --- 数字权限
~~~     数字权限的赋予方式是最简单的,但是不如之前的字母权限好记、直观。
~~~     我们来看看这些数字权限的含义。
~~~     4:代表“r”权限。
~~~     2:代表“w”权限。
~~~     1:代表“x”权限。
### --- 常用权限

~~~     数字权限的赋予方式更加简单,但是需要用户对这几个数字更加熟悉。其实常用权限也并不多,只有如下几个。
~~~     644:这是文件的基本权限,代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。
~~~     755:这是文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组和其他人拥有读和执行权限。
~~~     777:这是最大权限。在实际的生产服务器中,要尽力避免给文件或目录赋予这样的权限,这会造成一定的安全隐患。
### --- 给所有者添加执行权限

[root@server21 ~]# ll yanqi
-rw-r--r-- 1 root root 0 Feb  4 18:53 yanqi
[root@server21 ~]# chmod u+x yanqi 
[root@server21 ~]# ll yanqi
-rwxr--r-- 1 root root 0 Feb  4 18:53 yanqi
### --- 给所属组合其他人加入写权限,Linux是允许逗号隔开,执行多个参数的
 
[root@server21 ~]# ll yanqi
-rwxr--r-- 1 root root 0 Feb  4 18:53 yanqi
[root@server21 ~]# chmod g+w,o+w yanqi 
[root@server21 ~]# ll yanqi
-rwxrw-rw- 1 root root 0 Feb  4 18:53 yanqi
### --- 减去刚才给yanqi文件赋予的权限

[root@server21 ~]# chmod u-x yanqi 
[root@server21 ~]# chmod g-w,o-w yanqi 
[root@server21 ~]# ll yanqi
-rw-r--r-- 1 root root 0 Feb  4 18:53 yanqi
### --- 也可以使用=号去确定,不用在意之前的权限,直接定义为等号后面的权限
### --- 用数字赋予文件权限
### --- 给文件授予755权限
 
[root@server21 ~]# ll yanqi
-rw-r--r-- 1 root root 0 Feb  4 18:53 yanqi
[root@server21 ~]# chmod 755 yanqi 
[root@server21 ~]# ll yanqi
-rwxr-xr-x 1 root root 0 Feb  4 18:53 yanqi
### --- 给目录授予644权限

[root@server21 ~]# chmod 644 yanqi_mulu/
[root@server21 ~]# ll
-rwxr-xr-x  1 root root    0 Feb  4 18:53 yanqi
drw-r--r--  2 root root 4096 Feb  4 19:14 yanqi_mulu
### --- 创建的权限:
### --- 所有者的权限>=所属组>=其他用户权限

~~~     644:这是文件的基本权限,代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。
~~~     755:这是文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组和其他人拥有读和执行权限。
~~~     777:这是最大权限。在实际的生产服务器中,要尽力避免给文件或目录赋予这样的权限,这会造成一定的安全隐患。
三、基本权限的作用 
### --- 基本权限的作用     
### --- 权限含义的解释

### --- 首先,读、写、执行权限对文件和目录的作用是不同的。
### --- 权限对文件的作用。
~~~     - 读(r):对文件有读(r)权限,代表可以读取文件中的数据。如果把权限对应到命令上,那么一旦对文件有读(r)权限,就可以对文件执行 cat、more、less、head、tail 等文件查看命令。
~~~     - 写(w):对文件有写(w)权限,代表可以修改文件中的数据。如果把权限对应到命令上,那么一旦对文件有写(w)权限,就可以对文件执行 vim、echo 等修改文件数据的命令。注意:对文件有写权限,是不能删除文件本身的,只能修改文件中的数据。如果要想删除文件,则需要对文件的上级目录拥有写权限。
~~~     - 执行(x):对文件有执行(x)权限,代表文件拥有了执行权限,可以运行。在 Linux 中,只要文件有执行(x)权限,这个文件就是执行文件了。只是这个文件到底能不能正确执行,不仅需要执行(x)权限,还要看文件中的代码是不是正确的语言代码。对文件来说,执行(x)权限是最高权限。
### --- 权限对目录的作用。

~~~     - 读(r):对目录有读(r)权限,代表可以查看目录下的内容,也就是可以查看目录下有哪些子文件和子目录。如果把权限对应到命令上,那么一旦对目录拥有了读(r)权限,就可以在目录下执行 ls 命令,查看目录下的内容了。
~~~     - 写(w):对目录有写(r)权限,代表可以修改目录下的数据,也就是可以在目录中新建、删除、复制、剪切子文件或子目录。如果把权限对应到命令上,那么一旦对目录拥有了写(w)权限,就可以在目录下执行 touch、rm、cp、mv 命令。对目录来说,写(w)权限是最高权限。
~~~     - 执行(x):目录是不能运行的,那么对目录拥有执行(x)权限,代表可以进入目录。如果把权限对应到命令上,那么一旦对目录拥有了执行(x)权限,就可以对目录执行 cd 命令,进入
### --- 目录的可用权限

~~~     目录的可用权限其实只有以下几个。
~~~     0:任何权限都不赋予。
~~~     5:基本的目录浏览和进入权限。
~~~     7:完全权限。
四、所有者和所属组命令
### --- chown 命令

~~~     chown 是修改文件和目录的所有者和所属组的命令,其基本信息如下。
~~~     命令名称:chown。
~~~     英文原意:change file owner and group。
~~~     所在路径:/bin/chown。
~~~     执行权限:所有用户。
~~~     功能描述:修改文件和目录的所有者和所属组。
### --- 命令格式
### --- 选项: 
~~~     -R递归设置权限,也就是给子目录中的所有文件设置权限普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行。
~~~     普通用户可以修改所有者是自己的文件的权限。

[root@localhost ~]# chown [选项] 所有者:所属组 文件或目录
### --- chgrp 命令

~~~     chgrp 是修改文件和目录的所属组的命令,其基本信息如下。
~~~     命令名称:chgrp。
~~~     英文原意:change group ownership。
~~~     所在路径:/bin/chgrp。
~~~     执行权限:所有用户。
~~~     功能描述:修改文件和目录的所属组。
### --- 需要删除文件,需要对文件的上级目录,要有写权限,才可以删除该文件

~~~     在linux下该文件有执行权限,就可以执行;到底可不可以执行,要看文件代码是否正确;
~~~     对于文件来说:最大权限是执行权限
~~~     执行权限来说,对于目录来说没有什么意义。写权限是最大权限。
~~~     对于目录来说,赋只读是没有意义的
################################################################################
##############################--- 添加yanqi用户 ---##############################
################################################################################

### --- 添加yanqi用户
### --- 若是添加一个用户,会生成一个同名的初始组。
[root@server21 ~]# useradd yanqi
[root@server21 ~]# passwd yanqi
Changing password for user yanqi.
New password: 
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.
### --- 修改文件的所有者和所属组

[root@server21 ~]# ll
total 4
-rwxr-xr-x 1 root root    0 Feb  4 18:53 yanqi
drw-r--r-- 2 root root 4096 Feb  4 19:14 yanqi_mulu
[root@server21 ~]# chown yanqi yanqi
[root@server21 ~]# ll
total 4
-rwxr-xr-x 1 yanqi root    0 Feb  4 18:53 yanqi
drw-r--r-- 2 root  root 4096 Feb  4 19:14 yanqi_mulu
### --- 修改文件的所属组
 
[root@server21 ~]# ll
total 4
-rwxr-xr-x 1 yanqi root    0 Feb  4 18:53 yanqi
drw-r--r-- 2 root  root 4096 Feb  4 19:14 yanqi_mulu
[root@server21 ~]# chgrp yanqi yanqi
[root@server21 ~]# ll
total 4
-rwxr-xr-x 1 yanqi yanqi    0 Feb  4 18:53 yanqi
drw-r--r-- 2 root  root  4096 Feb  4 19:14 yanqi_mulu
### --- chown既可以改所有者和所属组;中间用冒号和.号分割

[root@server21 ~]# ll
total 4
-rwxr-xr-x 1 yanqi yanqi    0 Feb  4 18:53 yanqi
drw-r--r-- 2 root  root  4096 Feb  4 19:14 yanqi_mulu
[root@server21 ~]# chown root:root yanqi
[root@server21 ~]# ll
total 4
-rwxr-xr-x 1 root root    0 Feb  4 18:53 yanqi
drw-r--r-- 2 root root 4096 Feb  4 19:14 yanqi_mulu
### --- 只有超级用户才可以修改文件的所有者和所属组;普通用户可以修改文件的所有者和所属组?
 
[root@server21 ~]# su yanqi
[yanqi@server21 ~]$ ll
total 0
-rw-rw-r-- 1 yanqi yanqi 0 Feb  4 19:26 yanqi
[yanqi@server21 ~]$ chmod 755 yanqi 
[yanqi@server21 ~]$ ll
total 0
-rwxr-xr-x 1 yanqi yanqi 0 Feb  4 19:26 yanqi
### --- 普通用户是可以修改所有和是自己的文件的权限
### --- 普通用户不能修改文件的所有者(哪怕文件是属于这个普通用户的)只有超级用户才能修改所有者和所属组。

[yanqi@server21 ~]$ chown yanqi1 yanqi 
chown: changing ownership of `yanqi': Operation not permitted       // 不允许操作。
################################################################################
##############################--- 普通用户下实验 ---#############################
################################################################################

### --- 普通用户下实验
~~~     用户匹配的是哪个权限,用户匹配是文件的所有者权限
~~~     建个测试目录及文件并把它的权限改为0
~~~     root用户不可以不能做该实验;所有者可以更改所属文件的权限;yanqi用户匹配的是自己的权限
~~~     修改文件的权限所有者权限为0

[yanqi@server21 ~]$ mkdir yanqi_ceshi
[yanqi@server21 ~]$ touch yanqi_ceshi/yanqi
[yanqi@server21 ~]$  chmod 064 yanqi_ceshi/yanqi 
[yanqi@server21 ~]$ ll yanqi_ceshi/yanqi 
----rw-r-- 1 yanqi yanqi 0 Feb  4 10:34 yanqi_ceshi/yanqi
### --- 修改目录的权限所有者为0

[yanqi@server21 ~]$ chmod 075 yanqi_ceshi/
[yanqi@server21 ~]$ ll
total 4
d---rwxr-x 2 yanqi yanqi 4096 Feb  4 10:34 yanqi_ceshi
### --- 所有者没有权限,文件都所有者都是不可以被操作的

[yanqi@server21 ~]$ ls yanqi_ceshi/
ls: cannot open directory yanqi_ceshi/: Permission denied
[yanqi@server21 ~]$ cd yanqi_ceshi/
bash: cd: yanqi_ceshi/: Permission denied
### --- 修改所有者权限为只读

[yanqi@server21 ~]$ chmod 475 yanqi_ceshi/
~~~     可以查看到文件,但是文件内容是不可以查看的,没有任何权限的

[yanqi@server21 ~]$ ll
total 4
dr--rwxr-x 2 yanqi yanqi 4096 Feb  4 10:34 yanqi_ceshi
[yanqi@server21 ~]$ ls yanqi_ceshi/
ls: cannot access yanqi_ceshi/yanqi: Permission denied
yanqi
[yanqi@server21 ~]$ ls -l yanqi_ceshi/
ls: cannot access yanqi_ceshi/yanqi: Permission denied
total 0
-????????? ? ? ? ?            ? yanqi
~~~     赋予575权限,可以正常查看

[yanqi@server21 ~]$ chmod 575 yanqi_ceshi/
[yanqi@server21 ~]$ ll -l yanqi_ceshi/
total 0
----rw-r-- 1 yanqi yanqi 0 Feb  4 10:34 yanqi
### --- 所有者没有任何权限,读写删都不可以执行

[yanqi@server21 yanqi_ceshi]$ ll
total 0
----rw-r-- 1 yanqi yanqi 0 Feb  4 10:34 yanqi
[yanqi@server21 yanqi_ceshi]$ cat yanqi 
cat: yanqi: Permission denied
[yanqi@server21 yanqi_ceshi]$ echo ceshi >> yanqi 
bash: yanqi: Permission denied
[yanqi@server21 yanqi_ceshi]$ rm -rf yanqi 
rm: cannot remove# `yanqi': Permission denied
~~~     赋予464权限

[yanqi@server21 yanqi_ceshi]$ chmod 464 yanqi 
[yanqi@server21 yanqi_ceshi]$ ll
total 0
-r--rw-r-- 1 yanqi yanqi 0 Feb  4 10:34 yanqi
[yanqi@server21 yanqi_ceshi]$ cat yanqi                                     #可以正常读
[yanqi@server21 yanqi_ceshi]$ echo ceshi >> yanqi                           #不可以写
bash: yanqi: Permission denied
~~~     为文件授予写权限

[yanqi@server21 yanqi_ceshi]$ echo ceshi >> yanqi 
bash: yanqi: Permission denied
[yanqi@server21 yanqi_ceshi]$ chmod 664 yanqi 
[yanqi@server21 yanqi_ceshi]$ echo ceshi >> yanqi 
[yanqi@server21 yanqi_ceshi]$ cat yanqi 
ceshi
### --- 为文件授予删除权限;需要给上级目录授予写权限,才可以执行删除权限

[yanqi@server21 ~]$ ll
total 4
dr-xrwxr-x 2 yanqi yanqi 4096 Feb  4 10:34 yanqi_ceshi
[yanqi@server21 ~]$ rm -rf yanqi_ceshi/yanqi                                #上级目录没有写权限,执行删除文件报错
rm: cannot remove# `yanqi_ceshi/yanqi': Permission denied   
[yanqi@server21 ~]$ chmod 775 yanqi_ceshi/                                  #为上级目录授予写权限,执行目录下的删除文件
[yanqi@server21 ~]$ rm -rf yanqi_ceshi/yanqi 
[yanqi@server21 ~]$ ll yanqi_ceshi/
total 0
五、umask 默认权限
### --- 查看系统的 umask 权限

[root@localhost ~]# umask
0022
~~~     用八进制数值显示 umask 权限

[root@localhost ~]# umask -S
u=rwx,g=rx,o=rx
### --- umask 权限的计算方法
~~~     用字母表示文件和目录的初始权限

~~~     我们需要先了解一下新建文件和目录的默认最大权限。
~~~     对文件来讲,新建文件的默认最大权限是 666,没有执行(x)权限。这是因为执行权限对文件来讲比较危险,不能在新建文件的时候默认赋予,而必须通过用户手工赋予。
~~~     对目录来讲,新建目录的默认最大权限是 777。这是因为对目录而言,执行(x)权限仅仅代表进入目录,所以即使建立新文件时直接默认赋予,也没有什么危险。按照官方的标准算法,umask 默认权限需要使用二进制进行逻辑与和逻辑非联合运算才可以得到正确的新建文件和目录的默认权限。这种方法既不好计算,也不好理解,超哥并不推荐。我们在这里还是按照权限字母来讲解 umask 权限的计算方法。我们就按照默认的 umask 值是 022来分别计算一下新建文件和目录的默认权限吧。
~~~     文件的默认权限最大只能是 666,而 umask 的值是 022 “-rw-rw-rw-”减去 “-----w--w-”等于“-rw-r--r—”
~~~     目录的默认权限最大可以是 777,而 umask 的值是 022 “drwxrwxrwx”减去“d----w--w-”等于“drwx-r-xr-x”
~~~     注意:umask 默认权限的计算绝不是数字直接相减。
~~~     例如 umask 是 033 呢?
~~~     文件的默认权限最大只能是 666,而 umask 的值是 033 “-rw-rw-rw-”减去“-----wx-wx”等于“-rw-r--r—”
### --- umask查看系统权限;查看当前系统的默认权限的

[root@server21 ~]# umask
0022                                                        // 第二个0
[root@server21 ~]# umask -S
u=rwx,g=rx,o=rx
### --- 新建文件,查看默认权限

[yanqi@server21 ~]$ touch yanqi_umask
[yanqi@server21 ~]$ ll
total 0
-rw-rw-r-- 1 yanqi yanqi 0 Feb  4 10:51 yanqi_umask
### --- umask基本上不会去更改
### --- linux是修改umask值;证明umask值不是644-022的方式

[yanqi@server21 ~]$ umask 033
[yanqi@server21 ~]$ touch yanqi_umask_xin
[yanqi@server21 ~]$ ll
total 0
-rw-rw-r-- 1 yanqi yanqi 0 Feb  4 10:51 yanqi_umask
-rw-r--r-- 1 yanqi yanqi 0 Feb  4 11:07 yanqi_umask_xin 
[yanqi@server21 ~]$ umask
0033
~~~     linux的umask值是通过二进制进行逻辑运算再进行逻辑位运算,对于计算机上,基本上不消耗任何资源
~~~     官方建议使用rwx字母来定义
~~~     减完如果是负,只是空权限;没有空权限

[yanqi@server21 ~]$ umask 022
~~~     永久修改系统umask值,环境变量配置文件

[yanqi@server21 ~]$ vim /etc/profile
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值