一、基本的具体用户认识linux中用户分为两类root用户 超级管理员普通用户 -- 受权限约束的用户root -普通用户 su XXX普通用户 - root su / su -二、权限的概念Linux系统中权限是控制用户对文件或目录访问的核心机制。权限的设置和管理直接影响系统的安全性和灵活性。权限类型权限分为三种类型读r、写w[和执行x]。这些权限可以通过字符表示如rwx或八进制表示如7来定义。八进制表示法中7表示拥有所有权限rwx4表示只读r--2表示只写-w-1表示可执行--x。权限修改权限可以通过chmod命令修改支持字符和八进制两种方式。例如chmod ur file.txt # 给文件拥有者添加读权限chmod gr file.txt # 给文件所属组添加读权限chmod 755 file.txt # 设置文件权限为rwxr-xr-x文件的拥有者可以通过chown命令修改所属组可以通过chgrp命令修改。例如chown user file.txt # 修改文件拥有者为userchgrp group file.txt # 修改文件所属组为group目录权限目录权限的作用与文件不同读权限r允许查看目录中的文件列表。写权限w允许在目录中创建、删除或修改文件。执行权限x允许进入目录。需要注意的是即使目录有读权限但没有执行权限时用户仍无法进入该目录。默认权限与umask新创建的文件和目录的默认权限分别为666和777但实际权限会受到umask掩码的影响。实际权限计算公式为实际权限 默认权限 - umask例如umask为022时文件的实际权限为644目录为755。可以通过umask命令查看和修改掩码值。严格来说umask 不是简单的算术减法而是按位掩码操作清除某些位。umask 指定的是需要关闭的权限位实际权限 默认权限 (~umask)umask 是屏蔽位而不是减数更准确的理解是从默认权限中移除某些位。粘滞位Sticky Bit粘滞位用于防止非拥有者删除共享目录中的文件。设置粘滞位后只有文件的拥有者或root用户可以删除文件。设置方法如下chmod t directory # 为目录设置粘滞位chmod -t directory # 移除粘滞位例如/tmp目录默认启用了粘滞位适合作为共享目录。提权与用户切换普通用户可以通过sudo命令临时获得超级用户权限前提是用户已被授权使用sudo。使用su命令可以切换到其他用户身份切换到root用户需要输入root密码。通过合理配置权限和角色Linux系统可以实现更高的安全性和灵活性。掌握这些权限管理技巧是管理员的必备技能。三、用户和组在Linux系统中用户和组是管理文件权限和系统访问控制的基本单位。它们是多用户操作系统中实现资源共享和安全隔离的关键概念。1. 用户User概念用户是Linux系统中的一个账户代表一个操作者或一个服务进程。每个用户都有一个唯一的用户名和身份标识UID。作用身份认证用户登录系统时需要提供有效的用户名和密码以验证其身份。权限管理用户根据其身份可以访问特定的文件和资源。文件和目录的权限设置决定了哪些用户可以读取、写入或执行它们。资源隔离每个用户都有自己的家目录如/home/username用于存储个人文件和配置。这提供了一定程度的隐私和安全隔离。任务调度系统可以为不同的用户调度和运行不同的任务和进程。2. 组Group概念组是一组用户的集合它允许对多个用户应用相同的权限设置。每个组都有一个唯一的组名和组标识GID。作用权限管理通过将用户添加到组中管理员可以轻松地为组内的所有用户设置相同的文件和目录权限。资源共享组可以用来控制对共享资源的访问如打印机、文件服务器等。简化管理组简化了权限分配和管理的过程。例如通过更改组权限可以一次性更新组内所有用户的权限而不需要单独更改每个用户。安全性组策略可以限制对敏感数据的访问提高系统的安全性。3. 用户和组的管理Linux系统提供了一系列的命令和工具来管理用户和组添加用户useradd命令用于创建新用户。修改用户usermod命令用于修改现有用户的属性如更改密码、UID、家目录等。删除用户userdel命令用于删除用户账户。添加组groupadd命令用于创建新组。修改组groupmod命令用于修改现有组的属性如更改GID。删除组groupdel命令用于删除组。用户和组的权限管理chmod和chown命令用于更改文件和目录的权限和所有权。每一行的第一个字符一般用来区分文件的类型一般取值为d、-、l、b、c、s、p。 具体含义如下。 d表示是一个目录在 ext文件系统 中目录也是一种特殊的文件。 -表示该文件是一个普通的文件。 l: 表示该文件是一个 符号链接文件实际上它指向另一个文件。 b、c分别表示该文件为 区块设备 或其他的外围设备是特殊类型的文件。 s、p这些文件关系到系统的数据结构和 管道通常很少见到4. 结论综上所述用户和组的概念在Linux系统中至关重要它们不仅用于身份验证和权限管理还用于确保系统的安全性和多用户环境下的资源隔离。通过合理地分配用户和组权限可以有效地保护系统免受未授权访问和潜在的安全威胁。同时它们也使得系统管理变得更加高效和有序。四、用户短暂提权sudoSuper User DO用于让授权用户以其他用户通常是root的身份执行命令从而在不直接登录 root 账户的情况下完成高权限操作。其权限由/etc/sudoers文件控制需通过visudo安全编辑。基本语法sudo [选项] 命令常用选项-i模拟初始登录加载目标用户环境-s运行一个 shell-u user以指定用户身份运行-l列出当前用户可执行的 sudo 命令-v验证凭据延长会话-k撤销 sudo 缓存常见用法示例# 以 root 权限执行命令sudo apt updatesudo systemctl restart nginx# 编辑系统文件sudo vim /etc/hostssudo nano /etc/nginx/nginx.conf# 切换到 root shellsudo -i # 登录 shell加载 root 环境sudo -s # 非登录 shell# 以其他用户身份执行sudo -u postgres psql# 查看可用权限sudo -l配置 sudo 权限编辑/etc/sudoers使用sudo visudo通过配置/etc/sudoers 文件可以实现白名单机制限制用户只能执行预先授权的命令避免滥用root权限。 1. 编辑sudoers文件使用visudo 始终使用 visudo 命令编辑sudoers文件它会进行语法检查防止配置错误导致sudo无法使用。 例如 sudo visudo。 2. 配置语法与示例 基本格式 user host (runas) command。# 允许用户免密码执行所有命令username ALL(ALL) NOPASSWD: ALL# 允许用户组执行特定命令%wheel ALL(ALL) /bin/systemctl, /usr/bin/apt将用户加入 sudo 组usermod -aG sudo username # Ubuntu/Debianusermod -aG wheel username # CentOS/RHEL缓存时间调整在/etc/sudoers中设置Defaults timestamp_timeout30 # 单位分钟su 与 sudo 区别su需目标用户密码会话持续到退出sudo用当前用户密码单次命令或短时缓存支持细粒度权限与日志审计在现代系统中sudo更安全且便于管理。
Linux的权限基本概念
发布时间:2026/5/26 16:16:30
一、基本的具体用户认识linux中用户分为两类root用户 超级管理员普通用户 -- 受权限约束的用户root -普通用户 su XXX普通用户 - root su / su -二、权限的概念Linux系统中权限是控制用户对文件或目录访问的核心机制。权限的设置和管理直接影响系统的安全性和灵活性。权限类型权限分为三种类型读r、写w[和执行x]。这些权限可以通过字符表示如rwx或八进制表示如7来定义。八进制表示法中7表示拥有所有权限rwx4表示只读r--2表示只写-w-1表示可执行--x。权限修改权限可以通过chmod命令修改支持字符和八进制两种方式。例如chmod ur file.txt # 给文件拥有者添加读权限chmod gr file.txt # 给文件所属组添加读权限chmod 755 file.txt # 设置文件权限为rwxr-xr-x文件的拥有者可以通过chown命令修改所属组可以通过chgrp命令修改。例如chown user file.txt # 修改文件拥有者为userchgrp group file.txt # 修改文件所属组为group目录权限目录权限的作用与文件不同读权限r允许查看目录中的文件列表。写权限w允许在目录中创建、删除或修改文件。执行权限x允许进入目录。需要注意的是即使目录有读权限但没有执行权限时用户仍无法进入该目录。默认权限与umask新创建的文件和目录的默认权限分别为666和777但实际权限会受到umask掩码的影响。实际权限计算公式为实际权限 默认权限 - umask例如umask为022时文件的实际权限为644目录为755。可以通过umask命令查看和修改掩码值。严格来说umask 不是简单的算术减法而是按位掩码操作清除某些位。umask 指定的是需要关闭的权限位实际权限 默认权限 (~umask)umask 是屏蔽位而不是减数更准确的理解是从默认权限中移除某些位。粘滞位Sticky Bit粘滞位用于防止非拥有者删除共享目录中的文件。设置粘滞位后只有文件的拥有者或root用户可以删除文件。设置方法如下chmod t directory # 为目录设置粘滞位chmod -t directory # 移除粘滞位例如/tmp目录默认启用了粘滞位适合作为共享目录。提权与用户切换普通用户可以通过sudo命令临时获得超级用户权限前提是用户已被授权使用sudo。使用su命令可以切换到其他用户身份切换到root用户需要输入root密码。通过合理配置权限和角色Linux系统可以实现更高的安全性和灵活性。掌握这些权限管理技巧是管理员的必备技能。三、用户和组在Linux系统中用户和组是管理文件权限和系统访问控制的基本单位。它们是多用户操作系统中实现资源共享和安全隔离的关键概念。1. 用户User概念用户是Linux系统中的一个账户代表一个操作者或一个服务进程。每个用户都有一个唯一的用户名和身份标识UID。作用身份认证用户登录系统时需要提供有效的用户名和密码以验证其身份。权限管理用户根据其身份可以访问特定的文件和资源。文件和目录的权限设置决定了哪些用户可以读取、写入或执行它们。资源隔离每个用户都有自己的家目录如/home/username用于存储个人文件和配置。这提供了一定程度的隐私和安全隔离。任务调度系统可以为不同的用户调度和运行不同的任务和进程。2. 组Group概念组是一组用户的集合它允许对多个用户应用相同的权限设置。每个组都有一个唯一的组名和组标识GID。作用权限管理通过将用户添加到组中管理员可以轻松地为组内的所有用户设置相同的文件和目录权限。资源共享组可以用来控制对共享资源的访问如打印机、文件服务器等。简化管理组简化了权限分配和管理的过程。例如通过更改组权限可以一次性更新组内所有用户的权限而不需要单独更改每个用户。安全性组策略可以限制对敏感数据的访问提高系统的安全性。3. 用户和组的管理Linux系统提供了一系列的命令和工具来管理用户和组添加用户useradd命令用于创建新用户。修改用户usermod命令用于修改现有用户的属性如更改密码、UID、家目录等。删除用户userdel命令用于删除用户账户。添加组groupadd命令用于创建新组。修改组groupmod命令用于修改现有组的属性如更改GID。删除组groupdel命令用于删除组。用户和组的权限管理chmod和chown命令用于更改文件和目录的权限和所有权。每一行的第一个字符一般用来区分文件的类型一般取值为d、-、l、b、c、s、p。 具体含义如下。 d表示是一个目录在 ext文件系统 中目录也是一种特殊的文件。 -表示该文件是一个普通的文件。 l: 表示该文件是一个 符号链接文件实际上它指向另一个文件。 b、c分别表示该文件为 区块设备 或其他的外围设备是特殊类型的文件。 s、p这些文件关系到系统的数据结构和 管道通常很少见到4. 结论综上所述用户和组的概念在Linux系统中至关重要它们不仅用于身份验证和权限管理还用于确保系统的安全性和多用户环境下的资源隔离。通过合理地分配用户和组权限可以有效地保护系统免受未授权访问和潜在的安全威胁。同时它们也使得系统管理变得更加高效和有序。四、用户短暂提权sudoSuper User DO用于让授权用户以其他用户通常是root的身份执行命令从而在不直接登录 root 账户的情况下完成高权限操作。其权限由/etc/sudoers文件控制需通过visudo安全编辑。基本语法sudo [选项] 命令常用选项-i模拟初始登录加载目标用户环境-s运行一个 shell-u user以指定用户身份运行-l列出当前用户可执行的 sudo 命令-v验证凭据延长会话-k撤销 sudo 缓存常见用法示例# 以 root 权限执行命令sudo apt updatesudo systemctl restart nginx# 编辑系统文件sudo vim /etc/hostssudo nano /etc/nginx/nginx.conf# 切换到 root shellsudo -i # 登录 shell加载 root 环境sudo -s # 非登录 shell# 以其他用户身份执行sudo -u postgres psql# 查看可用权限sudo -l配置 sudo 权限编辑/etc/sudoers使用sudo visudo通过配置/etc/sudoers 文件可以实现白名单机制限制用户只能执行预先授权的命令避免滥用root权限。 1. 编辑sudoers文件使用visudo 始终使用 visudo 命令编辑sudoers文件它会进行语法检查防止配置错误导致sudo无法使用。 例如 sudo visudo。 2. 配置语法与示例 基本格式 user host (runas) command。# 允许用户免密码执行所有命令username ALL(ALL) NOPASSWD: ALL# 允许用户组执行特定命令%wheel ALL(ALL) /bin/systemctl, /usr/bin/apt将用户加入 sudo 组usermod -aG sudo username # Ubuntu/Debianusermod -aG wheel username # CentOS/RHEL缓存时间调整在/etc/sudoers中设置Defaults timestamp_timeout30 # 单位分钟su 与 sudo 区别su需目标用户密码会话持续到退出sudo用当前用户密码单次命令或短时缓存支持细粒度权限与日志审计在现代系统中sudo更安全且便于管理。