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

Linux命令——用户和权限相关

文章目录

  • 1 用户管理
    • 1.1 用户标识符
    • 1.2 用户添加
    • 1.3 用户删除
    • 1.4 用户配置文件
      • 1.4.1 passwd文件
      • 1.4.2 shadow文件
      • 1.4.3 group文件
  • 2 密码管理
  • 3 权限管理

1 用户管理

1.1 用户标识符

用户标识符主要是UID和GID,UID表示用户id,GID表示用户组id。在登录的时候,我们输入的是用户名,但是系统实际并不识别用户名,而是根据用户名查表,查询到UID,作为用户的唯一标识。
在用户登录的时候,每个登录用户最少都会获取到两个ID,一个是UID,一个就是GID。
与UID和GID相关的是权限的管控,每一个文件都有所属的用户和用户组用以控制文件的访问权限,当我们ls -l需要显示用户和用户组的时候,实际是会根据/etc/passwd与/etc/group的内容找到对应的UID和GID对应的名称,再完成显示。

1.2 用户添加

用户添加使用命令useradd

sudo useradd -m tom

ubuntu上添加用户后不会弹出直接添加密码,需要添加用户后再添加密码

sudo passwd tom

至此,添加用户成功,这里的-m是创建用户主目录,如果不加,则没有用户主目录,会进入根目录

su tom
$

切换到新用户,这里可以看到没有前面的主机名,用户名和目录的显示,这是因为在创建用户的使用没有指定shell,默认使用的是/bin/sh,一般指定为bash

sudo useradd -m -s /bin/bash Bob

一般使用这条命令就可以了
其他useradd的一些参数

用法:useradd [选项] 登录名useradd -Duseradd -D [选项]选项:--badnames                do not check for bad names-b, --base-dir BASE_DIR       新账户的主目录的基目录--btrfs-subvolume-home    use BTRFS subvolume for home directory-c, --comment COMMENT         新账户的 GECOS 字段-d, --home-dir HOME_DIR       新账户的主目录-D, --defaults                显示或更改默认的 useradd 配置-e, --expiredate EXPIRE_DATE  新账户的过期日期-f, --inactive INACTIVE       新账户的密码不活动期-g, --gid GROUP               新账户主组的名称或 ID-G, --groups GROUPS           新账户的附加组列表-h, --help                    显示此帮助信息并退出-k, --skel SKEL_DIR           使用此目录作为骨架目录-K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值-l, --no-log-init             不要将此用户添加到最近登录和登录失败数据库-m, --create-home             创建用户的主目录-M, --no-create-home          不创建用户的主目录-N, --no-user-group           不创建同名的组-o, --non-unique              允许使用重复的 UID 创建用户-p, --password PASSWORD       加密后的新账户密码-r, --system                  创建一个系统账户-R, --root CHROOT_DIR         chroot 到的目录-P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files-s, --shell SHELL             新账户的登录 shell-u, --uid UID                 新账户的用户 ID-U, --user-group              创建与用户同名的组-Z, --selinux-user SEUSER     为 SELinux 用户映射使用指定 SEUSER--extrausers              Use the extra users database

1.3 用户删除

sudo userdel tom

这条命令删除用户,保留用户主目录

sudo userdel -r tom

这条命令删除用户,并删除用户主目录和信箱
userdel的其他参数

用法:userdel [选项] 登录名选项:-f, --force                   即使不属于此用户,也强制删除文件-h, --help                    显示此帮助信息并退出-r, --remove                  删除主目录和信件池-R, --root CHROOT_DIR         chroot 到的目录-P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files--extrausers              Use the extra users database-Z, --selinux-user            为用户删除所有的 SELinux 用户映射

1.4 用户配置文件

1.4.1 passwd文件

用户添加后会在/etc/passwd中添加一条用户记录

Bob:x:1002:1002::/home/Bob:/bin/bash

Bob:账号名称
x:密码,保存到了/etc/shadow文件中
1002:UID
1002:GID
:这里有一个空的,是用户信息说明栏
/home/Bob:用户主目录
/bin/bash:shell

1.4.2 shadow文件

Bob:$y$j9T$6YPTqUQb3XlMTD0zcGWFY/$rXyBQ2mQndvEBvOcEUllsyxF1sdOcJxi7Mq2GzBxPB6:19729:0:99999:7:::

Bob:用户名
$y$j9T$6YPTqUQb3XlMTD0zcGWFY/$rXyBQ2mQndvEBvOcEUllsyxF1sdOcJxi7Mq2GzBxPB6:加密后的密码
19729:最近修改密码的日期,从1970年1月1日起的天数
0:密码不可被修改的天数
99999:密码需要重新修改的天数
7:密码需要修改期限前的警告天数
:空的,密码过期后的宽限天数
:空的,账号失效日子
:空的,保留

1.4.3 group文件

该文件中保存了用户组相关信息

Bob:x:1002:

Bob:用户组名称
x:用户组密码
1002:GID
:空的,此用户组支持的账号名称

2 密码管理

密码修改和添加

passwd username

第一次添加就是初始化密码,后续就是修改密码
passwd其他参数

用法:passwd [选项] [登录名]选项:-a, --all                     报告所有帐户的密码状态-d, --delete                  删除指定帐户的密码-e, --expire                  强制使指定帐户的密码过期-h, --help                    显示此帮助信息并退出-k, --keep-tokens             仅在过期后修改密码-i, --inactive INACTIVE       密码过期后设置密码不活动为 INACTIVE-l, --lock                    锁定指定的帐户-n, --mindays MIN_DAYS        设置到下次修改密码所须等待的最短天数为 MIN_DAYS-q, --quiet                   安静模式-r, --repository REPOSITORY   在 REPOSITORY 库中改变密码-R, --root CHROOT_DIR         chroot 到的目录-S, --status                  报告指定帐户密码的状态-u, --unlock                  解锁被指定帐户-w, --warndays WARN_DAYS      设置过期警告天数为 WARN_DAYS-x, --maxdays MAX_DAYS        设置到下次修改密码所须等待的最多天数为 MAX_DAYS

3 权限管理

通常都是通过chmod命令来修改用户和用户组权限
语法

chmod [-cfvR] [--help] [--version] mode file...

mode可以有以下参数

[ugoa...][[+-=][rwxX]...][,...]

u:用户
g:用户组
o:其他用户
a:以上的都包含
+:添加
-:删除
=:赋值
r:读权限
w:写权限
x:可执行权限
X:特殊执行权限
实例:

chmod a+x file
给文件的所有用户添加可执行权限
chmod 777 file
file权限为rwxrwxrwx
chmod -R a+x folder
递归修改文件夹权限
chmod user:group file
修改文件的用户和用户组

chmod其他参数

用法:chmod [选项]... 模式[,模式]... 文件...或:chmod [选项]... 八进制模式 文件...或:chmod [选项]... --reference=参考文件 文件...
将每个 <文件> 的模式变更为指定 <模式>。
使用 --reference 时,把每个 <文件> 的模式设置为与 <参考文件> 相同。-c, --changes          类似 verbose 选项,但仅在做出修改时进行报告-f, --silent, --quiet  不显示大多数错误消息-v, --verbose          为每个处理的文件输出一条诊断信息--no-preserve-root  不特殊对待 "/"(默认行为)--preserve-root    不允许在 "/" 上递归操作--reference=参考文件  使用 <参考文件> 的模式而非给定 <模式> 的值-R, --recursive        递归修改文件和目录--help		显示此帮助信息并退出--version		显示版本信息并退出

相关文章:

Linux命令——用户和权限相关

文章目录 1 用户管理1.1 用户标识符1.2 用户添加1.3 用户删除1.4 用户配置文件1.4.1 passwd文件1.4.2 shadow文件1.4.3 group文件 2 密码管理3 权限管理 1 用户管理 1.1 用户标识符 用户标识符主要是UID和GID&#xff0c;UID表示用户id&#xff0c;GID表示用户组id。在登录的…...

linux反汇编工具: ida pro、rizinorg/cutter; ubuntu 22 flameshot延迟截图 以应对下拉菜单

rizinorg/cutter rizinorg/cutter 是 命令行反汇编工具 rizinorg/rizin 的图形化界面, 这比 ida pro跑在kvm虚拟机中方便多了, ubuntu22.04下直接下载Cutter-v2.3.2-Linux-x86_64.AppImage后即可运行,如下图: 注意 有个同名的报废品: radare2/Cutter 即 radare2的图形化界…...

【INTEL(ALTERA)】使用NiosV/m 处理器,niosv-download 为什么会失败?

说明 在英特尔 Quartus Prime Pro Edition 软件 23.3 版及更高版本中将 Nios V 处理器软件下载到非流水线Nios V/m 处理器时&#xff0c;可能会出现此问题。 这是由于处理器限制&#xff0c;仅影响非流水线Nios V/m 处理器。 以下其他处理器不受此限制的影响&#xff1a; 管道…...

【无线通信专题】NFC通信模式及可能的应用方式

在文章【无线通信专题】NFC基本原理中我们讲到了NFC工作模式。其中NFC工作模式主要有三种,读写模式、卡模拟模式、点对点模式。 NFC通信模式丰富,NFC Forum定义了三种NFC设备:通用NFCForum设备、读写器设备和标签设备。这些NFC设备可以在三种通信模式下运行,并对应用案例进…...

pyinstaller生成的exe文件启动时间漫长的原因

加-F慢的原因是&#xff0c;pyinstaller把所有资源文件包括python解释器的依赖文件和库都打包到exe一个文件中&#xff0c;用户打开时&#xff0c;pyinstaller需要先执行一边解压操作&#xff0c;把依赖文件全部解压出来。慢就慢在这里。 如果不加-F&#xff0c;你会发现那些文…...

C语言基本语句介绍

c程序的执行部分是由语句组成的。程序的功能也是由执行语句来实现的&#xff0c;c语句分为6类 1表达式语句 表达式语句由表达式加上分号“&#xff1b;”组成 一般形式&#xff1a;表达式&#xff1b; 2函数调用语句 由函数名&#xff0c;实际参数加上分号“&#xff1b;”…...

【QT】QString类型中,Empty和NULL有什么区别在qt里,对比C#

在 Qt 中&#xff0c;QString 类型的字符串使用 isEmpty() 方法来检查字符串是否为空&#xff0c;而不是使用 null。这与 C# 中的 string.IsNullOrEmpty 方法略有不同。 QString::isEmpty()&#xff1a; 用于检查字符串是否为空。一个 QString 对象可能是空字符串&#xff0c;即…...

破壳而出:运维工程师在新科技热潮下的崛起与转型

运维工程师的出路到底在哪里&#xff1f; 在这个飞速发展的数字世界里&#xff0c;运维工程师无疑是IT界冲在最前线的勇士。他们曾是服务器的守护者&#xff0c;他们曾是故障的消灭者&#xff0c;他们曾是性能的推手。然而&#xff0c;随着科技的发展和市场需求的变化&#xf…...

静态网页设计——贵州美食(HTML+CSS+JavaScript)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a; https://www.bilibili.com/video/BV1vC4y1K7de/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术&#xff1a;HTMLCSSJS&#xff08;…...

imgaug库指南(六):从入门到精通的【图像增强】之旅

引言 在深度学习和计算机视觉的世界里&#xff0c;数据是模型训练的基石&#xff0c;其质量与数量直接影响着模型的性能。然而&#xff0c;获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此&#xff0c;数据增强技术应运而生&#xff0c;成为了解决这一问题的…...

stable diffusion 人物高级提示词(五)场景、特效、拍摄手法、风格

一、场景 场景Promptindoor室内outdoor室外cityscape城市景色countryside乡村beach海滩forest森林mountain山脉snowfield雪原skyscraper摩天大楼ancient monument古代遗迹cathedral大教堂library图书馆museum博物馆office building办公大楼restaurant餐厅street market街头市场…...

智能分析网关V4智慧港口码头可视化视频智能监管方案

一、需求背景 近年来&#xff0c;水利港口码头正在进行智能化建设&#xff0c;现场管理已经是重中之重。港口作为货物、集装箱堆放及中转机构&#xff0c;具有昼夜不歇、天气多变、环境恶劣等特性&#xff0c;安全保卫工作显得更加重要。港口码头的巡检现场如何高效、快捷地对…...

docker部署kibana

1&#xff0c;简介 官网 kibana 2&#xff0c;安装docker 参考 linux安装docker 3&#xff0c;准备 Kibana 配置文件 # 进入主节点配置文件目录 cd /export/server/docker/kibana/config # 编辑单机版配置文件 vi kibana.ymlkibana.yml内容 # 主机地址&#xff0c;可以是…...

【AI视野·今日CV 计算机视觉论文速览 第283期】Thu, 4 Jan 2024

AI视野今日CS.CV 计算机视觉论文速览 Thu, 4 Jan 2024 Totally 85 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers LEAP-VO: Long-term Effective Any Point Tracking for Visual Odometry Authors Weirong Chen, Le Chen, Rui Wang, Marc P…...

sort实现自定义排序方法详解

使用 sort 实现自定义排序 目录 使用 sort 实现自定义排序1.sort 的基本用法2.sort 实现自定义排序3.结构体重载进行比较 1.sort 的基本用法 sort 库函数需要引入头文件algorithm,是一种排序算法&#xff0c;使用的排序逻辑可以看成是效率很高的快速排序或其的改进版本。平均时…...

【攻防世界】Reverse——secret-galaxy-300 writeup

由main函数查看相关代码&#xff0c;但是代码中并没有直接的关于flag的信息&#xff1a; int __cdecl main(int argc, const char **argv, const char **envp) {__main();fill_starbase(&starbase);print_starbase((int)&starbase);return 0; } void __cdecl fill_sta…...

Github Copilot 快速入门

GitHub Copilot 是一个由 GitHub 推出的人工智能编程助手&#xff0c;旨在帮助开发者通过自动代码建议和补全来提高编程效率和质量。作为一个人工智能配对程序员&#xff0c;它能够理解你的代码意图&#xff0c;并提供相关的代码片段&#xff0c;以帮助你更快地编写代码。这种技…...

c# wpf 的触发器,触发器Trigger种类,每个触发器的使用说明

触发器是一种强大的声明性机制&#xff0c;用于根据指定条件更改控件的外观或行为。触发器主要分为以下几种类型&#xff1a; Property Trigger 说明&#xff1a;当绑定到控件某个依赖属性的值发生改变时&#xff0c;Property Trigger会执行预定义的一组设置。例如&#xff0c;…...

计算机毕业设计 SpringBoot的乡村养老服务管理系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

AMP 通讯RPMsg

参考 RPMsg&#xff1a;协议简介_rpmsg协议-CSDN博客 【软件架构】【通信】S32G IPCF - 知乎 openamp https://www.cnblogs.com/sky-heaven/p/14085800.html virtualIO 虚拟化技术 — VirtIO 虚拟设备接口标准 - 知乎 Virtio-fs介绍与性能优化_guest docker Docker Docs 扫…...

【ECMAScript】WebSocket模拟HTTP功能的实践:Promise+WebSocket+EventEmitter+Queue

1. 前言 本篇将结合Promise、WebSocket、EventEmitter和Queue&#xff0c;做一次实践&#xff1a;用WebSocket来模拟HTTP的功能。先不用关心它的用处&#xff0c;就当一次对知识点的整合吧。 2. MockHTTP 方法说明request(params, callback?) 功能&#xff1a;发起请求&…...

Linux 软raid - - Barrier

什么是Barriers 在linux软raid中&#xff0c;用来处理正常IO和同步IO的并发问题&#xff0c;可以简单理解为专用于软raid的锁。 软raid在做resync/recovery&#xff0c;或者配置操作时需要raise 屏障&#xff0c;于此同时必须暂停正常IO。 barrier是可以被多次raise的一个计数…...

航空公司管理系统(迷你版12306)

要求 今天分享一个之前辅导留学生的作业&#xff0c;作业要求如下&#xff1a; Project E: Airways Management System Overall description: Your team is employed by an Airways company for the implementation of a computer system responsible for a large part of th…...

嵌入式硬件电路原理图之跟随电路

描述 电压跟随电路 电压跟随器是共集电极电路&#xff0c;信号从基极输入&#xff0c;射极输出&#xff0c;故又称射极输出器。基极电压与集电极电压相位相同&#xff0c;即输入电压与输出电压同相。这一电路的主要特点是&#xff1a;高输入电阻、低输出电阻、电压增益近似为…...

学习录

概述 这几年在迷茫中看了不少资料&#xff0c;有觉得写得很棒的&#xff0c;也有写的很糟糕的。所以一直想写这块的总结来进行归纳&#xff0c;同时也希望能给其他处于迷茫中的朋友提供一份高质量的资料列表(也许一个读者也没有)&#xff0c;以下清单个人觉得值得反复看以及思…...

MongoDB索引详解

概述 索引是一种用来快速查询数据的数据结构。BTree 就是一种常用的数据库索引数据结构&#xff0c;MongoDB 采用 BTree 做索引&#xff0c;索引创建 colletions 上。MongoDB 不使用索引的查询&#xff0c;先扫描所有的文档&#xff0c;再匹配符合条件的文档。使用索引的查询&…...

一文搞定JVM内存模型

鲁大猿&#xff0c;寻精品资料&#xff0c;帮你构建Java全栈知识体系 www.jiagoujishu.cn 运行时数据区 内存是非常重要的系统资源&#xff0c;是硬盘和 CPU 的中间仓库及桥梁&#xff0c;承载着操作系统和应用程序的实时运行。JVM 内存布局规定了 Java 在运行过程中内存申请、…...

月报总结|Moonbeam 12月份大事一览

一转眼已经到年底啦。本月&#xff0c;Moonbeam基金会发布四个最新战略重点&#xff1a;跨链解决方案、游戏、真实世界资产&#xff08;RWA&#xff09;、新兴市场。其中在新兴市场方面&#xff0c;紧锣密鼓地推出与巴西公司Grupo RO的战略合作。 用户教育方面&#xff0c;为了…...

现有网络模型的使用及修改(VGG16为例)

VGG16 修改默认路径 import os os.environ[TORCH_HOME] rD:\Pytorch\pythonProject\vgg16 # 下载位置太大了&#xff08;140多G&#xff09;不提供直接下载 train_set torchvision.datasets.ImageNet(root./data_image_net, splittrain, downloadTrue, transformtorchvis…...

MacOS M1/M2 Go Debug 配置

前言 换电脑&#xff0c;Go 环境带来一些麻烦&#xff0c;耽误很多时间&#xff0c;稍作记录。 原始电脑是 Mac 旧款&#xff0c;CPU x86 构型&#xff0c;新电脑 M2&#xff0c;因为旧电脑里本地文件很多&#xff0c;为了简化搬迁&#xff0c;还是用了 Mac 自带的迁移&#x…...

东莞购物网站/长沙建设网站制作

1&#xff0c;加入线程, join(), 当前线程暂停, 等待指定的线程执行结束后, 当前线程再继续 join(int), 可以等待指定的毫秒之后继续 public class Demo5_Join {/*** param args* join(), 当前线程暂停, 等待指定的线程执行结束后, 当前线程再继续*/public static void main(…...

学网站开发/关键词优化公司

百兆带宽&#xff0c;首先我们要注意一个问题&#xff0c;那就是100M独享带宽和100M共享带宽的区别。 100M独享带宽&#xff0c;即用户独自享用100M机房带宽资源&#xff1b;而100M带宽共享&#xff0c;就是用户与其他用户共享100M机房带宽资源。把带宽比喻成一条马路&#xff…...

深圳小程序制作/西安网站seo推广

在ILOM中&#xff0c;root用户的缺省密码是changeme. 为了系统的安全性&#xff0c;通常情况下需要修改root密码. 如果忘了密码&#xff0c;可以参考以下步骤重置root密码。 用串口线连接Oracle服务器ILOM口 以default用户登录 SUNSP-0000000000 login: default Press and r…...

wordpress javascript/自媒体平台排名前十

1.shell简介Shell本身是一个用C语言编写的程序&#xff0c;它是用户使用Linux的桥梁。Shell既是一种命令语言&#xff0c;又是一种程序设计语言。作为命令语言&#xff0c;它交互式地解释和执行用户输入的命令&#xff1b;作为程序设计语言&#xff0c;它定义了各种变量和参数&…...

使用php的大型网站/怎样优化网站排名

同源策略&#xff08;Same origin policy&#xff09;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能. 就浏览器而言的, http://127.0.0.1:8000 协议 域名 端口 跨域 问题//简单请求跨域 S1项目 127.0.0.1:8000 from django.shortcuts import render from…...

易龙天做的网站怎么样/网页友情链接

php5怎么下载&#xff1f;1.从网站下载WINDOWS版本的php压缩包或安装包(如果是安装包&#xff0c;可以直接安装&#xff0c;则以下操作基本上可以忽略。但为了更好的安全性&#xff0c;建议采用压缩包自己安装配置有关参数)2. 将下载的php5.0压缩包解压到指定位置&#xff0c;如…...