Linux权限管理——umask,sudo,粘滞位

本文介绍了umask在文件和目录权限设置中的作用,sudo如何提供受控的管理权限,以及粘滞位如何确保公共目录安全。讲解了如何配置umask、添加sudo用户和设置粘滞位以控制文件操作权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.umask

2.sudo

3.粘滞位


1.umask

为什么一开始创建了一个文件或目录后默认权限是这个样子呢?

 首先我们引入一个umask的概念:

umask被叫做权限掩码,对于我们创建的一个目录,它的起始权限是从777(8进制),对于我们创建的一个文件,它的起始权限是从666(8进制),但是当我们以起始权限为出发点去看待创建的文件(目录)的权限时会发现是存在差异的,产生这样的情况原因是因为:

我们创建了一个内容后,显示的权限其实是最终权限,

而 最终权限 = 起始权限& ~umask,我们举一个例子:

补充:(关于更改umask的值)

umask 4位的8进制
(这4位的8进制是你想设置的umask的值)

可是为什么要有umask呢?

通过自己去设置一个合理的 umask值,来确保你创建的文件(目录)具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限,可以更好的保护创建的文件(目录)的安全

2.sudo

sudo的作用是什么?

sudo 命令提供了一种机制,它可以在不用分享 root 用户的密码的前提下,为信任的用户提供系统的管理权限

如何把一个用户给添加到信任列表?

默认已经安装了sudo

第一步:

假如普通用户在命令行使用了sudo命令后弹出了

等提示,说明这个HM用户没有被添加到信任列表

此时还可以在命令行输入

sudo -l

它可以查看哪些用户可以使用sudo权限

第二步:

 这是在/etc路径下的sudoers文件,此时这个文件,假如此时你通过

vim /etc/sudoers

 去打开,然后想去编辑里面的内容,你要给sudoers给赋予写权限,即:
 

chmod u+w /etc/sudoers

此时才可以去编辑其中的内容

不修改权限,直接使用

visudo /etc/sudoers

去打开,此时进入后就可以直接去编辑内容

第三步:

当把sudoers用vim编辑器打开后

按照上面的格式去输入你想添加进信任列表的用户,然后保存退出

此时你想添加进信任列表的用户已经被添加进信任列表了,此时就可以在这个Chen的用户下去使用sudo这个命令了

3.粘滞位

假如other对应的u(文件所有者的权限)中没有w(写)权限,此时当你以文件所有者的身份进入这个other目录后想去删除这个other下的文件权限是不够的

在这个other的目录下以目录的所有者去访问这个文件的内容,此时我去删除这个other目录下其他用户创建的文件,此时是可以删除的,因为一个文件可以被删除根本不是这个文件本身的属性,而是与这个文件所在的目录该用户是否具有写权限,即删除一个文件是由这个文件所属的这个目录说的算的

要知道在实际的工作中我们会面临一个场景:
假如我们和其他的用户要在同一个目录下去完成某个项目,这个公共的目录对所有人都具有rwx权限,如果此时我不想让别人看我写的文件的内容此时是可以设置权限的,但是假如别人想删除我写的文件时,我是无法阻止别人去删除的,因为删除一个文件是由这个文件所属的目录说的算的,假如我想在保证所有人对这个公共目录都具有rwx权限的同时又可以使这个公共目录下的文件无法被非文件的拥有者删除,此时就可以给这个目录添加粘滞位

(这个other此时就是一个公共的目录,对所有人都具有rwx权限)

通过root用户(普通用户)去使用命令

chmod +t 目录名

此时就给这个目录添加了粘滞位。

当一个目录被设置为“粘滞位”,则该目录下的文件只能由:
一   超级管理员删除

二   该目录的所有者删除

三   该文件的所有者删除 

注意:

1.粘滞位只可以给目录设置

2.想删除粘滞位时只能是谁添加的谁才可以删除,对于root用户可以无视这一点,root用户可以直接去删除而不用管到底是谁设置的粘滞位(对于这种多人工作的公共目录,一般由root用户去设置粘滞位)

<think>好的,我现在需要帮助用户找到关于Linux系统中多个管理领域的常用命令。用户明确提到了用户管理、文件权限管理、软件包管理、系统管理、服务管理和磁盘管理。首先,我需要回忆每个类别下的常用命令,并确保这些命令适用于大多数Linux发行版,尤其是Debian和基于RPM的系统,比如Red Hat或CentOS,因为用户提到了yum.repos.d,这可能涉及Red Hat系的软件包管理。 首先,用户管理方面,常用的命令包括useradd、usermod、userdel,以及密码管理passwd。还有组管理的groupadd等。需要确认这些命令的常用选项,比如创建用户时指定家目录或者shell类型。可能还需要提到/etc/passwd和/etc/group文件的作用,但用户可能更关注命令而不是配置文件。 接下来是文件权限管理。chmod、chown、chgrp是基础命令。需要说明数字模式和符号模式修改权限,比如chmod 755或u+x。还要提到特殊权限如SUID、SGID和粘滞,但用户可能只需要基础命令umask设置默认权限可能也相关。 软件包管理部分,Debian使用apt(apt-get、apt-cache),而Red Hat系使用yum或dnf。需要分开说明,因为用户引用了两个不同的引用,其中一个是Debian,另一个是yum.repos.d。需要明确区分两种包管理系统的命令,比如apt install和yum install,以及更新软件源的操作。 系统管理可能涉及进程管理(ps、top、kill)、系统信息(uname、uptime、free)、关机重启(shutdown、reboot)以及定时任务crontab。这部分需要涵盖监控和管理系统资源的基本命令。 服务管理方面,systemctl是systemd系统的核心命令,用于启动、停止、启用服务。可能需要提到service命令作为旧系统的替代,但现在大多数主流发行版都使用systemd。 磁盘管理涉及挂载(mount、umount)、查看磁盘使用情况(df、du)、分区工具(fdisk、parted)、文件系统检查(fsck),以及LVM相关命令(pvcreate、vgcreate、lvcreate)。需要确保这些命令的常见用法被覆盖,比如df -h显示人类可读的磁盘空间。 现在需要检查是否有遗漏的领域或常用命令。比如,用户可能还需要知道网络管理命令,但用户的问题中没有明确提到,不过引用[2]提到了网络管理,所以可能应该包含。不过用户的问题列表里没有网络管理,所以可能不需要,但需要按用户要求来。用户明确列出了六个方面,所以需要专注这些。 需要考虑每个命令的常用示例,比如具体的参数,这样用户能直接应用。同时,需要确保格式正确,行内数学表达式用$...$,但这里可能不涉及数学公式,但如果有代码块或命令示例,需要用正确的格式。根据系统级指令,独立代码块需要用```包裹,而用户的问题中的示例Python代码也是如此。但当前用户的问题是关于Linux命令,所以需要用代码块展示命令示例,比如: ```bash sudo apt update ``` 此外,需要生成相关问题,可能包括如何添加用户、修改权限、安装软件包、管理系统服务、扩展磁盘分区等。 需要确保引用正确,用户提供的引用[1]和[2]需要适当引用。例如,引用[1]提到Debian的常用命令是基础,而引用[2]涉及软件包和网络管理。在回答中,当提到软件包管理时,可以引用[1]和[2],比如Debian使用apt,而Red Hat使用yum,引用[2]提到yum的配置。 最后,确保回答结构清晰,分点列出每个管理类别,每个类别下列出常用命令及简要说明,并附上示例代码块。然后生成相关问题,帮助用户进一步学习。</think>### Linux 常用命令分类整理 #### 1. **用户管理** - **添加用户** ```bash sudo useradd -m 用户名 # 创建用户并生成家目录 ``` - **修改用户属性** ```bash sudo usermod -s /bin/bash 用户名 # 修改用户默认 shell ``` - **删除用户** ```bash sudo userdel -r 用户名 # 删除用户及家目录 ``` - **密码管理** ```bash sudo passwd 用户名 # 设置或修改密码 ``` - **用户组管理** ```bash sudo groupadd 组名 # 创建用户组 sudo usermod -aG 组名 用户名 # 将用户加入组 ``` 引用[1]提到用户管理是系统管理的基础,需通过命令实现高效操作[^1]。 --- #### 2. **文件权限管理** - **修改权限** ```bash chmod 755 文件名 # 数字模式(所有者:rwx,其他用户:rx) chmod u+x 文件名 # 符号模式(为所有者添加执行权限) ``` - **修改所有者/组** ```bash sudo chown 用户:组 文件名 # 修改文件所有者和组 sudo chgrp 组名 文件名 # 修改文件所属组 ``` - **特殊权限** ```bash chmod +s 文件名 # 设置 SUID/SGID(用于可执行文件) chmod +t 目录名 # 设置粘滞(如 /tmp 目录) ``` --- #### 3. **软件包管理** - **Debian/Ubuntu(APT)** ```bash sudo apt update # 更新软件源 sudo apt install 包名 # 安装软件包 sudo apt remove 包名 # 卸载软件包 ``` - **Red Hat/CentOS(YUM/DNF)** ```bash sudo yum install 包名 # 安装软件包 sudo yum update # 更新所有软件包 ``` 引用[2]提到 YUM 的配置依赖于 `/etc/yum.repos.d/*.repo` 文件[^2]。 --- #### 4. **系统管理** - **进程管理** ```bash ps aux # 查看所有进程 kill -9 进程ID # 强制终止进程 ``` - **系统信息** ```bash uname -a # 查看内核版本 free -h # 显示内存使用情况 ``` - **定时任务** ```bash crontab -e # 编辑定时任务 ``` --- #### 5. **服务管理(systemd)** - **启动/停止服务** ```bash sudo systemctl start 服务名 # 启动服务 sudo systemctl enable 服务名 # 设置开机自启 ``` - **查看服务状态** ```bash systemctl status 服务名 ``` --- #### 6. **磁盘管理** - **挂载与卸载** ```bash sudo mount /dev/sda1 /mnt # 挂载分区 sudo umount /mnt # 卸载分区 ``` - **磁盘空间检查** ```bash df -h # 查看磁盘使用情况 du -sh 目录名 # 统计目录大小 ``` - **分区工具** ```bash sudo fdisk -l # 列出磁盘分区 sudo parted # 交互式分区工具 ``` --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值