【Linux】权限管理

简介: 【Linux】权限管理

简介

多任务系统是同一时间进行多个任务;多用户系统是指多个用户可以在同一时间使用同一台计算机。然而一个典型的计算机可能只有一个键盘和一个监视器,但是它仍然可以被多个用户使用,例如,在工作中,如果一台计算机连接到一个网络或者因特网,那么远程用户通过 ssh(安全 shell) 可以登录并操纵这台电脑,并且远程用户也能运行图形界面应用程序,并且图形化的输出结果会出现在远端的显示器上。


为了使多用户特性付诸实践,那么必须发明一种方法来阻止用户彼此之间受到影响。毕竟, 一个用户的行为不能导致计算机崩溃,也不能乱动属于另一个用户的文件,于是便有了我们说的权限管理。常见的一些命令如下:

  • id:显示用户身份信息。
  • chmod:更改用户权限。
  • su:以另一个用户身份运行 shell。
  • sudo:以另一个用户身份执行命令。
  • chown:更改文件所有者。
  • chgrp:更改文件组所有权。
  • passwd:更改用户密码。

用户身份和权限

使用id命令,可以查看身份信息:


从结果可以看到,当用户创建帐户之后,系统会给用户分配一个号码,叫做用户 ID 或者 uid,然后,为了符合人类的习惯,这个 ID 映射到一个用户名。系统又会给这个用户分 配一个原始的组 ID 或者是 gid,这个 gid 可能属于另外的组当用户创建帐户之后,系统会给用户分配一个号码,叫做用户 ID 或者 uid,然后,为了符合人类的习惯,这个 ID 映射到一个用户名。系统又会给这个用户分 配一个原始的组 ID 或者是 gid,这个 gid 可能属于另外的组。

权限:对于文件和目录的权限是根据读取、写入和执行来定义的。

ls -l foo.txt
# 输出
-rw-rw-r-- 1 me me 0 2008-03-06 14:52 foo.txt

-rw-rw-r-- 这十个字符代表文件的属性,第一个字符-表示文件类型属性,第一个字符常见属性对应的文件类型如下:

  • -:一个普通文件。
  • d:一个目录。
  • l:一个符号链接。
  • c:一个字符设备文件,这种文件类型是指按照字节流来处理 数据的设备。比如说终端机或者调制解调器。
  • b:一个块设备文件,这种文件类型是指按照数据块来处理数 据的设备,例如一个硬盘或者 CD-ROM 盘。


剩下九个字符rw-rw-r-- 代表文件模式,有三个部分分别代表着文件所有者、文件组所有者和其他人的读、写和执行权限。

常见的权限模式有:

  • r:允许列出目录中的内容,前提是目录必须设置了可执行属性(x)。允许打开并读取文件内
    容。
  • w:允许在目录下新建、删除或重命名文件,前提是目录必须设置了可执行属性(x)。允许写入文 件内容或截断文件。但是不允许对文件进行重命名或删除,重命名或删除是由目录的属性决定的。
  • x:允许进入目录。允许将文件作为程序来执行,使用 脚本语言编 写的程序必须设置为可读才能被执行。

权限属性的一些示例:

  • -rw-r--r--:一个普通文件,对文件所有者来说可读可写,文件所有者的组成员可以读该文件,其他所有人都可以读该文件。
  • -rwxr-xr-x:一个普通文件,对文件所有者来说可读、可写、可执行。也可以被其他的所有人读取和执行。
  • -rwx-––-:一个普通文件,对文件所有者来说可读、可写、可执行。其他人无法访问。
  • drwxrwx-–:一个目录,文件所有者以及文件所有者的组成员可以访问该目录,并且可以在该目录下新建、重命名、删除文件
  • drwxr-x-–:一个目录,文件所有者可以访问该目录,并且可以在该目录下新建、重命名、删除文件,文件所有者的组成员可以访问该目录,但是不能新建、重命名、删除文件。

更改权限

使用chmod命令,可以更改文件或目录的权限,但是要注意只有文件的所有者或者超级用户才能更改文件或目录的。chmod命令支持两种不同的方法来改变文件模式:八进制数字表示法或符号表示法。

每个八进制数字代表3个二进制数字,对应的文件模式或权限如下:

Octal Binary File Mode
0 000 -–
1 001 –x
2 010 -w-
3 011 -wx
4 100 r–
5 101 r-x
6 110 rw-
7 111 rwx
# 查看权限
ls -l foo.txt
-rw-rw-r-- 1 me me 0 2008-03-06 14:52 foo.txt
# 更改权限
chmod 600 foo.txt
# 再次查看权限
ls -l foo.txt
-rw------- 1 me me 0 2008-03-06 14:52 foo.txt

通过传递参数“600”,我们能够设置文件所有者的权限为读写权限,而删除用户组和其他人 的所有权限。虽然八进制到二进制的映射看起来不方便,但通常只会用到一些常见的映射关系: 7 (rwx),6 (rw-),5 (r-x),4 (r–),和 0 (-–)。

八进制常用示例有

  • 600:只有所有者有读和写的权限。
  • 644:所有者有读和写的权限,组用户只有读的权限。
  • 666:每个人都有读和写的权限。
  • 700:只有所有者有读、写和执行的权限。

chmod命令支持一种符号表示法,来指定文件模式。符号表示法分为三部分:更改会影响 谁,要执行哪个操作,要设置哪种权限。通过字符“u”、“g”、“o”和“a”的组合来指定要影 响的对象,如下所示:

  • u:”user” 的简写,意思是文件或目录的所有者。
  • g:用户组。
  • o:”others” 的简写,意思是其他所有的人。
  • a:”all” 的简写,是”u”, ”g” 和“o”三者的联合。

如果没有指定字符,则默认使用 “all”。执行的操作可能是一个“+”字符,表示加上一个 权限,一个“-”,表示删掉一个权限,或者是一个“=”,表示只有指定的权限可用,其它所有 的权限被删除。

  • u+x:为文件所有者添加可执行权限。
  • u-x:删除文件所有者的可执行权限。
  • +x:为文件所有者,用户组,和其他所有人添加可执行权限。等价于 a+x。
  • o-rw:除了文件所有者和用户组,删除其他人的读权限和写权限。
  • go=rw:给文件所属的组和文件所属者/组以外的人读写权限。如果 文件所属组或其他人已经拥有执行的权限,执行权限将被移除。
  • u+x,go=rw:给文件拥有者执行权限并给组和其他人读和执行的权限。 多种设定可以用逗号分开。

一些人喜欢使用八进制表示法,而另一些人则非常喜欢符号表示法。符号表示法的优点是, 允许你设置文件模式的某个属性,而不影响其他的属性。

以另一个用户身份执行命令

使用su命令用来以另一个用户的身份来启动 shell,通常会让你输入该用户的密码。

su [-[l]] [user]
# 使用超级用户
su -
# 不启动新的可交互shell,直接执行单个命令
su -c 'ls -l /root/*'

使用sudo命令以另一个用户身份执行命令,相对于su命令不用输入超级用户的密码,使用 sudo命令时,用户 使用他/她自己的密码来认证。susudo之间的一个重要区别是sudo不会重新启动一个 shell,也不会加载另一个用户的 shell 运行环境。因此执行命令不用单号引用起来。

# ls 
sudo ls -l /root/*

更改文件所有者

chown命令被用来更改文件或目录的所有者和用户组。使用这个命令需要超级用户权限。

chown user1 file.txt

更改文件组所有权

chgrp命令可以实现,chown命令只能更改文件所有权,而不是用户组所有权。

chgrp group1 file.txt

更改用户密码

使用passwd命令,来设置或更改用户密码,只要输入passwd命令,就能更改你的密码。shell 会提示你输入你的旧密码和你的新密码。

总结

通过本文中常见的权限控制命令介绍,可以更合理的设置文件和目录的权限,管理员也可以确保系统安全,并根据需要控制用户对不同资源的访问权限。

相关文章
|
21天前
|
算法 Linux 数据安全/隐私保护
【linux】root大王如何制约普通用户——权限管理
【linux】root大王如何制约普通用户——权限管理
|
2月前
|
算法 Linux 数据安全/隐私保护
Linux权限管理:深入理解setuid、setgid、seteuid和setegid
Linux权限管理:深入理解setuid、setgid、seteuid和setegid
209 0
|
2月前
|
Linux 数据安全/隐私保护
Linux权限管理
Linux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:
21 1
|
1月前
|
网络协议 Linux 数据安全/隐私保护
【Linux操作系统】权限管理和粘滞位
【Linux操作系统】权限管理和粘滞位
【Linux操作系统】权限管理和粘滞位
|
2月前
|
运维 安全 Linux
深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】 在 Linux 操作系统中,文件系统权限管理是维护系统安全与数据完整性的基石。本文旨在深入探讨 Linux 权限模型的核心概念、实现机制及其对系统安全性的影响。通过对用户身份、文件权限和访问控制列表(ACL)等关键元素的剖析,揭示权限管理在实际操作中的应用细节。文章还将讨论如何有效配置权限来优化系统性能和提升安全性,以及解决常见的权限问题的策略。
|
2月前
|
Linux PHP 数据安全/隐私保护
深入理解PHP7的返回值类型声明深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】在PHP7中,引入了返回值类型声明的特性。这一特性使得开发者可以在函数定义时指定函数应返回的值的类型。本文将详细解析返回值类型声明的用法,以及它在实际开发中的应用,帮助读者更好地理解和使用这一特性。
|
2月前
|
安全 Linux 数据安全/隐私保护
深入理解Linux文件系统的权限管理
【5月更文挑战第24天】 在Linux操作系统中,文件系统权限管理是维护系统安全和用户数据隔离的关键机制。本文将深入探讨Linux文件系统中的权限模型,包括用户、组和其他类别的读、写、执行权限。我们将分析权限位的具体含义,如何通过命令行工具修改权限,以及权限掩码(umask)的作用。此外,我们还将讨论文件系统权限在实际应用中的常见问题及其解决方案,帮助读者构建更为安全且高效的Linux工作环境。
|
2月前
|
存储 Linux 数据安全/隐私保护
【Linux修行路】权限管理
【Linux修行路】权限管理
|
2月前
|
Linux 数据安全/隐私保护
Linux权限管理
Linux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:
25 4
|
2月前
|
Linux 数据安全/隐私保护
【Linux笔记】用户和权限管理基本命令介绍
【Linux笔记】用户和权限管理基本命令介绍