常用Linux命令 - 权限管理的基本命令

简介: 第一列的权限位如果不计算最后的“.”(这个点的含义为seLinux 保护),则共有 10 位,这 10位权限位的含义如图

权限管理的基本命令


权限的介绍


权限位的含义 前面讲解 ls 命令时,我们已经知道长格式显示的第一列就是文件的权限,例如:


[root@localhost ~]# ls -l install.log
-rw-r--r--. 1 root root 24772 1 月 14 18:17 install.log


第一列的权限位如果不计算最后的“.”(这个点的含义为seLinux 保护),则共有 10 位,这 10位权限位的含义如图


  • 第 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”权限。


基本权限命令


chmod 命令


首先来看修改权限的命令 chmod,其基本信息如下。


  • 命令名称:chmod。
  • 英文原意:change file mode bits。
  • 所在路径:/bin/chmod。
  • 执行权限:所有用户。
  • 功能描述:修改文件的权限模式。
  • 示例


zxd@izwz99gyct1a1rh6iblyucz testLinux]$ chmod u-x,g-x,o+wrx 111 
[zxd@izwz99gyct1a1rh6iblyucz testLinux]$ ll
总用量 12
-rw-r--rwx 2 zxd zxd 49 3月  31 17:16 111
-rw-rw-r-- 1 zxd zxd 49 3月  31 19:27 120
lrwxrwxrwx 1 zxd zxd  3 3月  31 17:04 ddd -> 111
lrwxrwxrwx 1 zxd zxd  3 3月  31 17:04 sss -> 111
-rw-r--rwx 2 zxd zxd 49 3月  31 17:16 test111


chown 命令


chown 是修改文件和目录的所有者和所属组的命令,其基本信息如下。


  • 命令名称:chown。
  • 英文原意:change file owner and group。
  • 所在路径:/bin/chown。
  • 执行权限:所有用户。
  • 功能描述:修改文件和目录的所有者和所属组。


命令格式


[root@localhost ~]# chown [选项] 所有者:所属组 文件或目录
选项:
-R: 递归设置权限,也就是给子目录中的所有文件设置权限


普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行。普通用户可以修改所有者是自己的文件的权限。


普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行。 普通用户可以修改所有者是自己的文件的权限。


chgrp 命令


chgrp 是修改文件和目录的所属组的命令,其基本信息如下。


  • 命令名称:chgrp。
  • 英文原意:change group ownership。
  • 所在路径:/bin/chgrp。
  • 执行权限:所有用户。
  • 功能描述:修改文件和目录的所属组。


数字权限


数字权限的赋予方式是最简单的,但是不如之前的字母权限好记、直观。我们来看看这些数字权 限的含义。


  • 4:代表“r”权限。
  • 2:代表“w”权限。
  • 1:代表“x”权限。


常用权限


数字权限的赋予方式更加简单,但是需要用户对这几个数字更加熟悉。其实常用权限也并不多, 只有如下几个。


  • 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 :完全权限。


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 ?


在一般的情况之下,使用 umask xxx 这种形式是临时生效


而想要永久生效要使用下列的形式:


vim /etc/profile  *注意只能是root权限才允许修改


会看到如下内容


# By default, we want umask to get set. This sets it for login shell
#Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "/usr/bin/id -gn" = "/usr/bin/id -un" ]; thenumask 002elseumask 022fi


解释:


如果用户的id大于199

相关文章
|
4天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
1天前
|
监控 Linux Windows
50个必知的Linux命令技巧,你都掌握了吗?(下)
50个必知的Linux命令技巧,你都掌握了吗?(下)
|
1天前
|
Linux Shell Windows
Linux 常用基本命令
Linux 常用基本命令
|
2天前
|
Ubuntu Linux Shell
linux免交互登陆远程主机并执行命令(密钥对和Expect)
linux免交互登陆远程主机并执行命令(密钥对和Expect)
|
2天前
|
Linux
【Linux】常用命令
【Linux】常用命令
21 0
|
2天前
|
安全 Ubuntu Linux
Linux 网络操作命令Telnet
Linux 网络操作命令Telnet
16 0
Linux 网络操作命令Telnet
|
3天前
|
Linux 数据安全/隐私保护
Linux权限管理
Linux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:
7 0
|
3天前
|
Linux 数据安全/隐私保护
Linux常用命令实例带注释
Linux常用命令实例带注释
30 0
|
3天前
|
Linux 开发工具 数据安全/隐私保护
Linux(19)常用解压命令记录
Linux(19)常用解压命令记录
9 0
|
5天前
|
Linux Perl
Linux系统替换字符串常用命令
请注意,`sed`命令可以非常强大,可以根据不同的需求使用不同的选项和正则表达式来进行更复杂的字符串替换操作。
17 0