当前位置: 首页 > news >正文

Linux入门2(1/3)

三、用户和权限

1、用户

Linux 是多用户系统,用户分为:

  • 普通用户:日常使用,权限受限(如 zhangsan)。

  • 超级用户(root):拥有最高权限,可管理系统所有文件和服务。

  • 系统用户:供后台服务使用(如 www-datamysql)。

使用普通用户在许多对于home目录(即home/下的目录)之外的文件只有只读和执行的权限,要想获取更多权限,需要我们切换用户,如我们使用普通用户无法在根目录下创建文件夹,会提醒我们权限不足,我们可以通过切换为超级用户root(su - root或su -【默认不写切换的用户名就默认切换到root超级用户】),就可以完成文件夹的创建。

普通用户切换为其他用户需要输入密码,超级用户切换为其他用户不需要输入密码

注意:默认情况下,Ubuntu/WSL 的 root 用户可能未设置密码。我们需要为其初始设置密码才可通过使用su切换用户

1.1、sudo

由于我们需要获得权限操作文件,但是使用su - root 长时间切换为root超级用户,易对系统造成损失破坏,因为root用户具有最高权限,误操作命令不会报错而是直接执行。

为了避免长时间使用root用户,我们使用sudo为某一条命令临时赋予root用户权限,即在当前用户是sudo认证过后的普通用户的前提下,使用sudo临时获取root用户的权限进行操作。

注意:只有进行过sudo认证的用户才可使用sudo

①、配置sudo认证
  • 进入root用户

  • 输入visudo,在打开的文件(直接默认打开/etc/sudoers文件,使用的是nano编辑器)直接在最后一行加上:

    用户名 ALL=(ALL) NOPASSWORD: ALL

  • ctrl+o并按下回车确认文件名——>保存文件,之后ctrl+x退出编辑器

②、取消sudo认证
  • 进入root用户

  • 输入visudo,在打开的文件(直接默认打开/etc/sudoers文件,使用的是nano编辑器)直接删除添加的已配置的sudo认证

  • ctrl+o并按下回车确认文件名——>保存文件,之后ctrl+x退出编辑器

1.2、用户管理命令
命令作用示例
whoami查看当前用户whoamiroot
id查看用户 UID/GIDid zhangsan
useradd创建用户sudo useradd -m zhangsan
passwd设置密码sudo passwd zhangsan
usermod修改用户属性sudo usermod -aG sudo zhangsan(加入 sudo 组)
userdel删除用户sudo userdel -r zhangsan-r 删除家目录)
1.3、用户组(Group)

用户组用于批量管理权限,一个用户可以属于多个组。

①、组管理命令
命令作用示例
groups查看用户所属组groups zhangsan
groupadd创建用户组sudo groupadd dev(需要root权限)
gpasswd管理组成员sudo gpasswd -a zhangsan dev(添加用户到组)
groupdel删除用户组sudo groupdel dev(需要root权限)
②、用户管理命令
  • 创建用户useradd [-g -d] 用户名

    • 选项:-g 指定用户的组,不指定 -g,会创建同名组并自动加入,指定 -g 需要组已经存在,如已存在同名组,必须使用 -g

    • 选项:-d 指定用户 HOME 路径,不指定,HOME 目录默认在:/home/用户名

  • 删除用户userdel [-r] 用户名

    • 选项:-r,删除用户的 HOME 目录,不使用 -r,删除用户时,HOME 目录保留

  • 查看用户所属组id [用户名]

    • 参数:用户名,被查看的用户,如果不提供则查看自身

  • 修改用户所属组usermod -aG 用户组 用户名,将指定用户加入指定用户组

1.4、getent

getent 是 Linux/Unix 系统中的一个命令,用于从系统数据库(如 /etc/passwd/etc/group/etc/hosts 等)获取条目信息。它提供了一种统一的方式来查询不同的名称服务数据库(NSS, Name Service Switch),无论这些数据是存储在本地文件还是通过 LDAP/NIS 等网络服务获取。

①、基本语法
  getent database [key ...]
  • database:要查询的数据库名称(如 passwdgrouphosts 等)。

  • key:可选,指定要查找的具体条目(如用户名、组名、主机名等)。如果省略,则显示所有条目。

②、常用数据库类型
数据库描述示例命令
passwd用户账户信息(等效于 /etc/passwdgetent passwd zhangsan
group用户组信息(等效于 /etc/groupgetent group dev
hosts主机名/IP 映射(等效于 /etc/hostsgetent hosts example.com
services网络服务定义(如端口号)getent services ssh
shadow用户密码哈希(需 root 权限)sudo getent shadow zhangsan
protocols网络协议(如 tcpudpgetent protocols tcp
③、常见用法示例
  # 查询用户信息getent passwd zhangsan# 输出格式:zhangsan:x:1001:1001:Zhang San:/home/zhangsan:/bin/bash# 字段含义:用户名:密码占位符:UID:GID:描述:家目录:默认 Shell。​# 查询组信息getent group dev# 输出示例: dev:x:1002:zhangsan,lisi# 字段含义: 组名:密码占位符:GID:组成员列表。​# 查询主机名/IPgetent hosts example.com# 输出示例: 93.184.216.34  example.com​# 显示所有用户或组getent passwd      # 列出所有用户getent group       # 列出所有组​# 检查服务端口getent services ssh

2、权限

2.1、三种权限
①、r(读权限)
  • 文件:可查看内容(如 catless)。

  • 目录:可列出目录内文件(如 ls)。

②、w(写权限)
  • 文件:可修改内容(如 vim 编辑、echo 覆盖)。

  • 目录:可增删目录内文件/子目录(如 touchrmmkdir)。

③、x(执行权限)
  • 文件:可运行(如 ./script.sh,脚本需 x 权限)。

  • 目录:可进入目录(如 cd dir),无 x 权限时无法访问目录内任何内容(即使有 r 权限)。

2.2、目录权限槽位结构

以根目录下的文件为例

第①行是权限槽位

第②行是文件所属用户

第③行是文件所属用户组

可见根目录下的第①行共10个槽位

如果以其他用户登录,那么我们所属的用户所拥有的权限由第①行的后三位决定,如根目录下的Docker文件,根据最后三位可见是:r-x,即我们只有读和执行的权限,并没有写权限,无法对其进行修改

2.3、修改权限控制
①、chmod

chmod(change mode)是 Linux/Unix 系统中用于修改文件或目录权限的命令,通过调整所有者(User)、所属组(Group)和其他用户(Others)的读(r)、写(w)、执行(x)权限,实现对文件访问控制的管理。

Ⅰ、基本语法
  chmod [选项] 权限模式 文件/目录

权限模式:可以是符号模式(如 u+rwx)或数字模式(如 755,最常用)。

选项:

  • -R:递归修改目录及其子目录下所有文件的权限(危险!慎用)。

  • -v:显示修改过程(verbose)。

Ⅱ、权限模式的两种表示方法
  • 数字模式(八进制数字,推荐)

r/w/x 权限对应为数字,每组权限(所有者、所属组、其他用户)用一个数字表示,共3位数字(0-7)。

权限符号含义数字值组合示例数字总和
r读权限4r4
w写权限2w2
x执行权限1x1
-无权限0rwx(4+2+1)7
rw-(4+2)6
r-x(4+1)5
r--(4)4
-wx(2+1)3
-w-(2)2
--x(1)1
---(0)0

数字模式格式

[所有者权限][所属组权限][其他用户权限](3位数字,如 755)。

  • 符号模式(更直观,适合局部调整)

通过符号指定用户类别操作权限,格式:

  chmod [用户类别][操作][权限] 文件/目录

用户类别(u/g/o/a)

符号含义
u所有者(User)
g所属组(Group)
o其他用户(Others)
a所有用户(All,默认)

操作(+/-/=)

符号含义
+添加权限
-移除权限
=覆盖设置权限(清除未指定权限)

权限(r/w/x)

即读(r)、写(w)、执行(x)。

Ⅲ、示例
  # 将 file.txt 权限设为:所有者可读可写可执行,组和其他用户可读可执行chmod 755 file.txt  # 对应权限字符串:-rwx(111--7)r-x(101--5)r-x(101--5)​# 将 dir 权限设为:所有者可读可写可执行,组可读可执行,其他用户无权限chmod 750 dir       # 对应权限字符串:drwxr-x---​# 给文件所有者添加执行权限chmod u+x script.sh  # 原权限 -rw-r--r-- → -rwxr--r--​# 移除所属组的写权限chmod g-w data.txt   # 原权限 -rw-rw-r-- → -rw-r--r--​# 给所有用户设置读权限(覆盖其他权限)chmod a=r file.txt   # 权限变为 -r--r--r--​# 给所有者和组添加读写执行权限,其他用户无权限(等效于 770)chmod ug=rwx,o= file.txt  # 权限 -rwxrwx---​# 修改文件 file.txt 权限为 -r--r-xrwxchmod u=r g=rx o=rwx file.txt   
②、chown

chown(change owner)是 Linux/Unix 系统中用于修改文件/目录所有者(Owner)和所属组(Group)的命令。通过调整归属关系,可以控制哪些用户或组对文件拥有管理权限。

Ⅰ、基本语法
  chown [选项] [所有者][:组] 文件/目录

所有者:新的用户名(如 rootzhangsan

:新的组名(如 admindev),需在所有者后加 :. 指定。

选项:

  • -R:递归修改目录及其子目录下所有文件的归属(慎用)。

  • -v:显示修改详情(verbose)。

  • --from=原所有者:原组:仅当文件当前归属匹配时才修改(安全操作)。

Ⅱ、示例
  # 注意:普通用户无法修改他人文件的所有权,需用 sudo 提权。# 修改所属用户sudo chown zhangsan file.txt  # 将 file.txt 的所有者改为 zhangsan​# 修改所属用户组sudo chown :dev file.txt      # 将 file.txt 的所属组改为 dev​# 同时修改所有者和组sudo chown zhangsan:dev file.txt  # 所有者=zhangsan,组=dev​# 递归修改目录归属sudo chown -R zhangsan:dev /project  # 修改 /project 下所有内容的归属

http://www.dtcms.com/a/541848.html

相关文章:

  • 哪个网站可以做条形码毛坯房最便宜装修方法
  • 北京塞车网站建设wordpress安装到万网
  • 包头企业做网站能免费建网站吗
  • C++ 字符串型
  • ELK运维之路(定时清理索引)
  • 行业协会网站模板网站按天扣费优化推广
  • 网站开发提高加载速度网站备案服务内容
  • 硬件电路RS485通信EMC 设计
  • Visual Basic 随机文件
  • 选服务好的网站建设公司网易企业邮箱app叫什么名字
  • 比百度更好的网站网站后台怎么做友情链接
  • 网站建站侵权怎么办推荐一下做图文的网站
  • Java 多线程:从单体到分布式的演进与陷阱
  • JAVA中的注解是什么玩意
  • 能不能上传网站再备案陕西西安网站设计公司
  • 各大网站注册记录商城建站报价方案
  • 注入漏洞网站源码程序开发的基本步骤是什么?
  • 超硬核c语言编程随想笔记:深挖cint**二级指针-核心多级指针的内存陷阱,彻底终结多级指针恐惧症
  • 邯郸建立网站费用乐清网站开发
  • JAVA面试入职笔记 | linux常用基本指令快速查看
  • 网站设计公司苏州erp系统的功能包括哪些
  • 【2025-系统规划与管理师】第16章:资源与工具管理
  • 天津网站建设案例wordpress怎么导入自己的php
  • 东莞网站优化方法有哪些哈尔滨大型网站设计公司
  • 模板的网站都有哪些公司网站建设公
  • 避免踩坑!三星打印机SCX3401驱动安装详细步骤解析
  • 有哪些网站开发技术甘肃省建设工程造价信息网站
  • 建网站 选安全网页设计代码单元格内容怎么居中
  • 双牌网站建设app网站样式
  • 模型参数大小计算