【Linux】用户组、用户、文件权限(ugo权限),权限掩码,chmod,chown,suid,sgid,sticky,su,sudo

用户组

注意:普通用户只能查看有哪些组,不能创建/修改/删除,会提示:用户名 is not in the sudoers file.This incident will be reported.

groupadd 用户组名新建用户组
cat /etc/group查看有哪些组(普通用户可以操作)
groupmod -n 新组名 旧组名修改组名
groupdel 用户组名删除用户组


用户

创建用户时:

  1. 为用户创建家目录和邮箱文件,家目录名和邮箱文件名都与用户名相同。家目录在/home目录下,若修改用户名,家目录名不会修改。邮箱文件在/var/spool/mail目录下,若修改用户名,邮箱名会自动修改。
  2. 若没有指定组,会创建组,组名与用户名相同。
  3. 将用户名、密码和组,分别记录在/etc/passwd、/etc/shadow、/etc/group中。

删除用户时:

  • 使用-r,则删除用户时,也删除相关联的文件。
  • 若没有使用-r,则只删除/etc/passwd、/etc/shadow里的记录,不会删除家目录、邮箱文件。重新创建该用户,会提示"the home directory already exists,creating mail file:file exists",可以手动删除家目录和邮箱文件,再创建用户。

普通用户只能查看有哪些用户和修改自己的密码,其他操作几乎都没有权限。

useradd 用户名新建用户
useradd -g 组名 用户名新建用户时指定组
passwd 用户名给用户设置密码
passwd用户修改自己的密码(普通用户可以操作)密码限制比较多
id 用户名查看是否有某用户(普通用户可以操作)
cat /etc/passwd查看有哪些用户(普通用户可以操作)
cat /etc/shadow/etc/shadow:存放用户密码的文件
usermod -l 新用户名 用户名修改用户名,-l(小写字母l)
usermod -u 新id 用户名修改用户id
usermod -g 新组名 用户名修改用户所属组
usermod -G 新附加组名 用户名修改用户所属的附加组
usermod -d 目标路径 用户名修改用户登录后的默认目录
usermod -L 用户名锁定某用户密码
usermod -U 用户名解除密码锁定
lchage -l 用户名查看用户状态,-l(小写字母l)
userdel 用户名删除用户
userdel -r 用户名删除用户及其关联文件

 


文件权限(ugo权限)

通过 ls -l 或者 ll 查询到的以详细信息显示的目录下所有文件,最前面信息就是各文件的权限。文件权限,又称为ugo权限。

# 查看当前目录下所有文件的权限
ls -l
ll

从左向右前10个字符依次说明: 

  • 第1个字符是文件类型: - 文件,d 目录,l 软链接(类似Windows中的快捷方式)。
  • 接下来3个字符是文件所属用户的权限,即user,简写u。
  • 再接下来3个字符是文件所属组的权限,即group,简写g。
  • 最后3个字符是其他组用户的权限,即other,简写o。
  • 权限:3个字符,依次为r(读),w(写),x(可执行),若没有某权限,则为 -(没有某权限,取决于字符位置)。
权限说明权限值文件权限说明目录权限说明说明
rread,读4可以读取文件内容可以查看目录下有哪些文件若为-,则没有读权限
wwrite,写2可以往文件写入内容可以在目录下创建/修改/删除文件若为-,则没有写权限
xexecute,可执行1可以执行文件可以使用cd切换到该目录若为-,则没有可执行权限
权限值表
0---
1--x
2-w-
3-wx
4r--
5r-x
6rw-
7rwx

 


 权限掩码:创建文件或目录时,屏蔽的默认权限。是一个3位的八进制数字。

  • root 默认权限掩码是022(即所属组的写权限,其他用户的写权限),即root创建的文件或目录,所属组和其他用户的写权限都被屏蔽了。
  • 普通用户默认权限掩码是002(即其他用户的写权限),即普通用户创建的文件或目录,其他用户的写权限被屏蔽了。

文件的初始权限值=0666-权限掩码值。目录的初始权限值=0777-权限掩码值。

  • root用户,文件的初始权限值是644(即-rw-r--r--),目录的初始权限值是755(即drwxr-xr-x)。
  • 普通用户,文件的初始权限值是664(即-rw-rw-r--),目录的初始权限值是775(即drwxrwxr-x)。
# 查询权限掩码值
umask

可在/etc/profile修改权限掩码,但只有root有权限。 


chmod命令(change mode):控制用户对文件的权限。

用户:u 所属用户,g 所属组, o 其他用户,a 或者 ugo 所有用户。

操作:+ 添加权限,- 取消权限。

权限:r 读权限,w 写权限,x 可执行权限。

# 给所属组(g)添加写权限(w)
chmod g+w 文件名或目录名

# 给所属组(g)取消写权限(w)
chmod g-w 文件名或目录名

# 给所属组(g)和其他用户(o)添加可执行权限(x)
chmod g+x,o+x 文件名或目录名

# 给所属组(g)和其他用户(g)取消可执行权限(x)
chmod go-x 文件名或目录名

# 当前目录和子目录下所有文件,给所有用户添加读权限(r)
chmod -R a+r *

也可以使用数字表示权限。

# 755:依次为所属用户权限-所有(rwx),所属组权限-可读可执行(r-x),其他用户权限-可读可执行(r-x)
chmod 755 文件名或目录名


chown命令(change owner):修改文件的用户或组。

注意:chown命令需要root权限才能执行。指定的用户或组可以使用用户名或用户id,组名或组id。

# 修改文件的所属用户(使用 用户名)
chown 新用户名 文件名或目录名

# 修改文件的所属组(使用 组id)
chown :新组名id 文件名或目录名

# 修改文件的所属用户和组
chown 新用户名:新组名 文件名或目录名

# 修改当前目录和子目录下所有文件的所属用户和所属组
chown -R 新用户名:新组名 *


suid(set  owner user id up on execution):特殊的文件权限,暂时给予使用者所属用户的权限。

设置suid,就是在文件执行过程中,将所属用户的权限和id 给予使用者。所有用户都可以暂时以文件所属用户的身份执行文件。

只能二进制文件设置suid,设置在所属用户可执行权限位,一般用于需要root权限的命令

在查看目录下文件详细信息时,文件权限的所属用户可执行权限位一般是x(可执行) 或 - (没有可执行权限),若为s(小写s)则设置了suid,则所有用户都可以暂时以文件所属用户的身份执行文件。若为S(大写s)则权限无效(即所属用户没有执行权限)。

使用chmod命令设置或取消suid(u-s:取消。u+s:添加)。也可以使用数字设置或取消suid(0:取消。4:添加suid),使用数字需小心。

# 设置suid
chmod u+s 文件名

# 取消suid
chmod u-s 文件名

# 设置suid(4:添加suid)
# 755:依次为所属用户权限-所有(rwx),所属组权限-可读可执行(r-x),其他用户权限-可读可执行(r-x)
chmod 4755 文件名

# 取消suid(0:取消suid)
chmod 0755 文件名


sgid(set group id):特殊的文件权限,给予使用者所属组的权限。

目录(文件夹)设置sgid,设置在所属组可执行权限位,一般用于共享目录(文件夹)

在查看目录下文件详细信息时,文件权限中所属组可执行权限位一般是x(可执行) 或 - (没有可执行权限),但若是s(小写s),则该目录下,所有用户创建的文件的所属组都与目录的所属组相同。若为S(大写s),则权限无效(即所属组没有执行权限)。

  使用chmod命令设置或取消sgid(g-s:取消。g+s:添加)。也可以使用数字设置或取消sgid(0:取消。2:添加sgid),使用数字需小心。

注意:若sgid和sticky都设置时,若使用数字取消sgid,可能sgid没取消,反而把sticky取消。

# 添加sgid
chmod g+s 目录名

# 取消sgid
chmod g-s 目录名

# 添加sgid(2:添加)
# 777:依次为所属用户权限-所有(rwx),所属组权限-所有(rwx),其他用户权限-所有(rwx)
chmod 2755 目录名

# 取消sgid(0:取消)
chmod 0755 目录名


sticky(sticky bit):粘滞位。特殊的文件权限,普通用户只能删除自己的文件。

目录(文件夹)设置sticky,设置在其他用户可执行权限位,一般用于公共目录(文件夹)

在查看文件详细信息时,文件权限中其他用户可执行权限位一般是x(可执行) 或 - (没有可执行权限),但若是t,则该目录下,目录所属用户和root可以删除该目录下的文件,普通用户只能删除自己创建的,不能删除其他用户创建的。若是T,则权限无效(即其他用户没有执行权限)。

 使用chmod命令设置或取消sticky(o-t:取消,o+t:添加)。也可以使用数字设置或取消sticky(0:取消,1:添加sticky),使用数字需小心。

# 添加sticky
chmod o+t 目录名

# 取消sticky
chmod o-t 目录名

# 添加sticky(1:添加)
# 777:依次为所属用户权限-所有(rwx),所属组权限-所有(rwx),其他用户权限-所有(rwx)
chmod 1777 目录名

# 取消sticky(0:取消)
chmod 0777 目录名

 


su 命令(switch user): 普通用户和root之间切换。

普通用户和root之间可以进行切换。但普通用户切换到root,需要root密码。而root可以直接切换到普通用户。

普通用户和root之间切换
whoami显示当前用户
su - root

普通用户切换到root用户

(普通用户可以操作,需输入root密码)

效果等同于 su - 
su 普通用户名

root用户切换到普通用户,当前目录也切换到普通用户的家目录

(无需密码)

su 普通用户名

root用户切换到普通用户,当前目录不会切换

(无需密码)

exit返回原用户

 


sudo命令(superuser do):root授权一部分权限给普通用户。 

root授权一部分权限给普通用户,普通用户登录自己的账号通过"sudo 命令"使用root身份执行命令,而不需要root密码。

/etc/sudoers配置文件(记录授权用户和权限),只有root能修改。 使用visudo可直接修改配置文件。

# vi/vim修改配置文件
vi /etc/sudoers

# 直接修改配置文件
visudo

若被授权,普通用户可以登录自己的账号,使用sudo执行命令(需输入自己的密码)。

若没有被授权,则提示用户不在sudoers配置文件中。

# 查看自己的权限(执行sudo的使用者)
sudo -l


Linux中“一切皆文件”,文件权限设置时,需慎重。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/628526.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云原生 初识Kubernetes的理论基础

一、k8s 的由来及其技术运用 1.1 k8s的简介 Kubernetes,词根源于希腊语的 舵手、飞行员。在国内又称k8s(因为k和s之间有8个字母,所以得名。“国内程序员的幽默”)。 作用: 用于自动部署、扩展和管理“容器化&#x…

【JAVA进阶篇教学】第十六篇:Java中AOP使用

博主打算从0-1讲解下java进阶篇教学,今天教学第十五篇:Java中AOP使用。 AOP(Aspect-Oriented Programming)是一种编程范式,它允许开发者在不修改源代码的情况下,对代码进行横切关注点的分离和增强。在 Java…

基于区块链的Web 3.0关键技术研讨会顺利召开

基于区块链的Web3.0关键技术研讨会 2024年4月23日,由国家区块链技术创新中心主办的“基于区块链的web3.0关键技术研讨会”召开。Web3.0被用来描述一个运行在“区块链”技术之上的“去中心化”的互联网,该网络上的主体掌握自己数据所有权和使用权&#xf…

python与anaconda 的对应关系

不能下载好anaconda 后才能知道python吧 python10。2023年3月 python11 2023年7月 具体请看官方说明 Anaconda 2023.09-0 — Anaconda documentation 示例如下,绿色框,有的在包的列表中搜python就可以找到

Qt自定义QpushButton分别在c++/python中实现

//.h文件#ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QPainter> #include<QMouseEvent> #include<QPropertyAnimation> #include<QResizeEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; }class Widget : public QWi…

idea连接远程仓库

git ->克隆。 url为远程仓库的地址&#xff0c;输入好后&#xff0c;选择项目存放目录&#xff0c;再点击克隆 点击新窗口打开。 切换到对应分支

使用 Gin-Docs 自动生成 API 文档

该插件移植自 Python 的 Flask-Docs&#xff0c;可以根据代码注释生成文档页面&#xff0c;支持离线文档下载和生成&#xff0c;支持在线调试&#xff0c;支持密码认证。 Gin-Docs Gin API 文档自动生成插件 特性 根据代码注释自动生成 Markdown 文档支持离线 Markdown 文档下…

VBA 引用从SQL数据库取数据的几个方法

首先&#xff0c;要定义连接的数据集 Set objRec CreateObject("ADODB.Recordset")Set objConn CreateObject("ADODB.Connection")然后在代码中要定义SQL语句&#xff0c;以便获取数据 sqlstr sqlstr " select t1.FBillNo ,t_Item.fname type,t1…

【稀疏三维重建】pixelSplat:仅需两张图像的3D Gaussian Splats重建

文章目录 一.摘要二、相关工作 , 背景(gs)三、基于图像的三维高斯预测3.1 双视图图像编码器&#xff08;解决尺度模糊性&#xff09;3.2 &#xff08;像素对齐的&#xff09;高斯参数预测 四、实验效果 论文&#xff1a;《pixelSplat: 3D Gaussian Splats from Image Pairs for…

新串口通道打通纪实

在计算机系统中&#xff0c;串口是“古老”的通信方式&#xff0c;和它同时代的“并口”通信方式已经消失了。但它仍然顽强的存活着&#xff0c;主要原因是在开发和调试底层软件时还经常用到串口。 正因为有这样的需求&#xff0c;幽兰代码本是支持串口的&#xff0c;而且有两种…

玩转Matlab-Simscape(初级)- 06 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真(理论部分2)

** 玩转Matlab-Simscape&#xff08;初级&#xff09;- 06 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真&#xff08;理论部分2&#xff09; ** 目录 玩转Matlab-Simscape&#xff08;初级&#xff09;- 06 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真&am…

Python项目——基于回合制的RPG游戏设计与实现

基于回合制的RPG游戏设计与实现 项目概述 《魔法冒险》是一款基于回合制战斗的角色扮演游戏。玩家将创建一个角色&#xff0c;探索世界&#xff0c;战斗敌人&#xff0c;收集物品并提升等级。 项目设计报告 一、引言 本项目的目标是实现一个基于回合制战斗的 RPG 游戏&…

6---Linux下版本控制器Git的知识点

一、Linux之父与Git的故事&#xff1a; Linux之父叫做“Linus Torvalds”&#xff0c;我们简称为雷纳斯。Linux是开源项目&#xff0c;所以在Linux的早期开发中&#xff0c;许多世界各地的能力各异的程序员都参与到Linux的项目开发中。那时&#xff0c;雷纳斯每天都会收到许许…

1-4 GPIO输入模式(ARM-GD32)

输入结构 浮空输入模式&#xff1a; 上拉输入&#xff1a; 上面的电路浮空输入的状态是不确定的故需要通过设置上拉电阻的方式将电平设置为高电平&#xff0c;也就是确定的状态&#xff0c;此时下拉电阻处于关闭的状态&#xff0c;当按键没有按下的时候&#xff0c;处于浮空的状…

the7主题下载,探索WordPress主题的无限可能

在数字时代&#xff0c;一个出色的网站是任何企业或个人品牌的必备。但在这个竞争激烈的网络世界中&#xff0c;如何让您的网站脱颖而出&#xff1f;答案就是 the7 —— 一款专为创造独特和视觉冲击力强的网站而设计的 WordPress 主题。 1. 无限设计可能性 the7 以其独特的设…

Mini Cheetah 代码分析(八)基于零空间的任务分级

一、主要公式 二、源代码注释 三、相关原理解释 一、主要公式 二、源代码注释 该功能的实现在文件KinWBC.cpp中的FindConfiguration函数&#xff0c;主要看注释&#xff0c;与公式是能够对应起来的&#xff0c;由第0个任务&#xff0c;也就是接触任务开始进行迭代&#xff0…

【MATLAB】Enigma机加密原理与自实现

文章目录 什么是EnigmaEnigma机加密通信流程Enigma的物理构造Enigma的加密设置Enigma加密通信密码重新设置Enigma加密消息拼接注意 Enigma的解密分解设置Enigma解密通信密码重新设置Enigma解密消息 Enigma的弱点MATLAB自实现Enigma加密与解密Enigma_functionRotate_functiontes…

Scrapy爬虫:利用代理服务器爬取热门网站数据

在当今数字化时代&#xff0c;互联网上充斥着大量宝贵的数据资源&#xff0c;而爬虫技术作为一种高效获取网络数据的方式&#xff0c;受到了广泛的关注和应用。本文将介绍如何使用Scrapy爬虫框架&#xff0c;结合代理服务器&#xff0c;实现对热门网站数据的高效爬取&#xff0…

金价又双叒涨了!现货黄金什么比较好

虽然近期有新闻显示&#xff0c;国内的实物黄金价格出现大幅的下跌&#xff0c;但是从整体看&#xff0c;多个黄金投资品种的长期上升趋势还是比较稳定的&#xff0c;因此我们会看到&#xff0c;很多投资者会趁现在这波下跌重新入场做多。那么投资黄金买什么比较好呢&#xff1…