【Linux系统创建,修改用户和组和修改目录文件的权限以及实验的心得体会】

news2024/12/24 2:32:23

实验过程

1.创建一个新用户nick,设置其主目录为home/nick。

(1)添加新用户:

sudo useradd -m 用户名
sudo passwd 新用户名

(2)给新用户可以执行的root权限
sudo vi /etc/sudoers

#User privilege specification
root ALL=(ALL:ALL) ALL
加上:
新用户名 ALL=(ALL:ALL) ALL

ESC模式下 :wq!

(3)更改sh为bash

sudo vi /etc/passwd

文件最后一行即为新建立的用户名以及信息,将末尾的**/bin/sh改为/bin/bash**,保存文件。

(4)切换到新的用户

#su means switch user
sudo su 新用户名

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.查看/etc/passwd和/etc/shadow文件的最后一行,看看有什么变化。

在这里插入图片描述

在这里插入图片描述

3.给用户nick设置密码。

Linux passwd 命令让用户可以更改自己的密码,而系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码

-d  删除密码。本参数仅有系统管理者才能使用。
-f  强迫用户下次登录时必须修改口令。
-w 口令要到期提前警告的天数。
-k  设置只有在密码过期失效后,方能更新。
-l  锁住密码,停止账号使用。
-S  列出密码的相关信息。本参数仅有系统管理者才能使用。
-u  解开已上锁的帐号。
-x 指定口令最长存活期。
-g 修改群组密码。
-i 口令过期后多少天停用账户。

在这里插入图片描述

4.再次查看etc/shadow文件的最后一行,看看有什么变化。
在这里插入图片描述
在这里插入图片描述

5.使用nick用户登录系统。
在这里插入图片描述

6.锁定用户nick。

方法1:使用usermod命令:
锁定:$ usermod -l 用户名 (锁定用户账号,重新登陆生效)
解锁:$ usermod -u 用户名
查询状态: $ usermod -S 用户名

方法2:使用passwd命令:
锁定:$ passwd -l 用户名 (锁定用户密码,重新登陆生效)
解锁:$ passwd -u 用户名
查询状态: $ passwd -S 用户名

方法3:使用usermod命令禁用SSH访问Linux中的给定用户帐户
锁定:$ usermod -s /sbin/nologin 用户名
解锁:$ usermod -s /bin/bash 用户名
查询状态:可以 vim /etc/passwd查看每个用户的状态

方法4:禁用所有用户登录(除root用户)
锁定:$ touch /etc/nologin
解锁:$rm -f /etc/nologin(删除掉文件即可)

在这里插入图片描述

7.查看/etc/shadow文件的最后一行,看看有什么变化。

在这里插入图片描述

8.再次使用nick用户登录系统,看能否登录成功。

在这里插入图片描述

在这里插入图片描述

9.解除对用户nick的锁定。

在这里插入图片描述

10.更改用户nick的账户名为juju,创建新用户nick。

在这里插入图片描述

这里需要注意的是,刚刚在创建用户的时候,修改sudoers文件和shadows文件的配置,加上了ALL,和将sh修改为bash,但是这里的用户名还是没有改变,所以在修改用户名的时候,就需要这两个文件涉及到的用户名都需要修改!

11.查看/etc/passwd文件的最后一行,看看有什么变化。

在这里插入图片描述

12.指定用户juju在2023年12月31日过期。

[root@zmedu-17 day05]# chage --help
用法:chage [选项] 登录

选项:
-d, --lastday 最近日期
将最近一次密码设置时间设为“最近日期”
-E, --expiredate 过期日期
将帐户过期时间设为“过期日期” 0表示马上过期,-1表示永不过期
-h, --help
显示此帮助信息并推出
-I, --inactive INACITVE
过期 INACTIVE 天数后,设定密码为失效状态
-l, --list
列出用户以及密码的有效期
-m, --mindays 最小天数
将两次改变密码之间相距的最小天数设为“最小天数”
-M, --maxdays MAX_DAYS
密码保持有效的最大天数
-R, --root CHROOT_DIR
chroot 到的目录
-W, --warndays 警告天数
密码过期前,提前收到警告信息的天数

在这里插入图片描述

13.创建一个新组,组名为class,指定600为其GID。

Groupadd
(1)作用:
groupadd命令用于将新组加入系统。

(2)格式:
groupadd [-g gid] [-o]] [-r] [-f] groupname

(3)主要参数:

-g gid:指定组ID号。
-o:允许组ID号,不必惟一。
-r:加入组ID号,低于499系统账号。
-f:加入已经有的组时,发展程序退出。

(4)应用实例:
建立一个新组,并设置组ID加入系统:

#groupadd -g 344 cjh
此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。

在这里插入图片描述

14.查看/etc/group文件的最后-行。

在这里插入图片描述

15.将用户juju和nick添加入该组。

(1)新建用户

#检查用户组是否存在,如果组存在则会输出组信息,否则没有任何输出
grep <用户组名称> /etc/group
#如果用户组不存在则使用如下命令新建用户组:
groupadd <用户组名称>

#新建用户并将其加入指定用户组,作为其主用户组(每个用户有且只有一个主用户组)
useradd -g <用户组名称> <用户名称>
#或者 新建用户并将其加入指定附属用户组,附属用户组可以有多个,多个附属组名称用逗号分隔即可
useradd -G <用户组名称> <用户名称>

#设置用户密码
passwd <用户名称>
#查看用户属性,检查是否添加到正确的用户组
id <用户名称>

(2)已有用户

#将已有用户添加到指定用户组,作为其附属用户组
#-a 代表append,和 -G 一起使用,将用户添加到新用户组中而不必来开原有的其他用户组
usermod -a -G <用户组名称> <用户名称>

#将已有用户的主用户组改为新的用户组
usermod -g <新的用户组名称> <用户名称>

在这里插入图片描述

16.查看/etc/group文件中的最后一行,看看有什么变化。

在这里插入图片描述

17.给组class设置组密码。

在这里插入图片描述

18.将nick设为组长(注意用户状态)。

-r 删除组密码
-a 把用户加入组
-d 把用户从组中删除。
-M 可同时添加多个用户
-A 给组指派管理员

//设置一个组用户stu_a UID为1088 注释为laoda 组号为1111
[root@a ~]# useradd stu_a -u 1088 -c laoda -g1111

//设置组密码
[root@a ~]# gpasswd stu_1
Changing the password for group stu_1
New Password:
Re-enter new password:

[root@a ~]# gpasswd stu_2
Changing the password for group stu_2
New Password:
Re-enter new password:

//选出组的组长
[root@a ~]# gpasswd -A stu_a stu_1
[root@a ~]# gpasswd -A stu_d stu_2

在这里插入图片描述

19.从class组中删除用户juju。

在这里插入图片描述

20.再次查看/etc/group文件中的最后一行,看看有什么变化。

在这里插入图片描述

21.尝试删除组class。
在这里插入图片描述

22.查看~/.bashrc文件,并通过echo重定向写入text1.txt文件。

(1)用法:echo [短选项]… [字符串]…
或:echo 长选项

将 STRING 回显到标准输出。

-n 不尾随换行符
-e 启用解释反斜杠的转义功能
-E 禁用解释反斜杠的转义功能(默认)
–help 显示此帮助信息并退出
–version 显示版本信息并退出
若-e 可用,则以下序列即可识别:
\ 反斜杠
\a 响铃声
\b 退格
\c 不再产生新的输出
\e 转义符
\f 换页
\n 新行
\r 回车
\t 水平制表符
\v 竖直制表符
\0NNN 字节数以八进制数 NNN (1至3位)表示
\xHH 字节数以十六进制数 HH (1至2位)表示

(2)覆盖文件内容

【示例脚本】test.sh
使用>指令覆盖文件原内容并重新输入内容,若文件不存在则创建文件。
#!/bin/bash
echo “Raspberry” > test.txt

【操作过程】
#修改权限,脚本可执行chmod u+x test.sh
./test.sh

【文件内容】
Raspberry

(3)追加文件内容

【示例脚本】test.sh
使用>>指令向文件追加内容,原内容将保存。#!/bin/bash
echo “Raspberry” > test.txt
echo “Intel Galileo” >> test.txt

【操作过程】
#修改权限,脚本可执行
chmod u+x test.sh
./test.sh

【文件内容】
请注意echo指令默认在行尾增加回车(\n),所以此处显示两行。
Raspberry
Intel Galileo

在这里插入图片描述

23.查看text1.txt文件的默认权限

在这里插入图片描述

24.将 text1.txt的权限改为rwxr–r-x,请使用rwx符号方式完成。

在这里插入图片描述

25.查看~/.bash_profile文件,使用cat命令重定向为text2.txt

在这里插入图片描述

26.text2.txt文件的默认权限是 rw-rw-r–, 将 tex21.txt的权限改为rwxr–r-x, 请使用数字符号方式完成。

在这里插入图片描述

27.给text1.txt创建别名,bashrc_config,并测试。

在这里插入图片描述

28.在当前用户下,将文本echo HELLO, this is the phony ls program.重定向到文件sample.sh,并修改权限为全部用户可执行。

在这里插入图片描述

Linux 允许将命令执行结果重定向到一个文件(重定向也可以理解为写入)
将本应显示在终端上的内容 输出/追加到指定文件中

注意: > 表示输出,会覆盖文件原来的内容
​ >> 表示追加,会将内容追加到已有文件的末尾

权限修改:

rwx:r代表可读,w代表可写,x代表该文件是一个可执行文件,如果rwx任意位置变为-则代表不可读或不可写或不可执行文件。

修改方法1:(参数)
命令:chomod
语法:chomod [参数][augo][+ - =][rwx]文件名
例子:
(1)将文件file1.txt增加可读权限
chmod ugo+r file1.txt
(2)将文件file1.txt设为所有人(all)可读
chmod a=r file1.txt
(3)为ex1.py文件拥有者取消可执行权限
chmod u-x ex1.py

修改方法2:(数字)
命令:chmod
语法:chmod abc 文件名
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1, -=0
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。

例子
将文件file1.txt设为可读可写可执行权限
chmod 777 file1.txt 和chmod a=rwx file1.txt 和chmod ugo=rwx file1.txt 效果相同

修改方法3:(递归赋权)
命令:chmod
语法:chmod -R
例子:
将directory1目录及目录里文件设为可读可写可执行权限chmod -R 777 directory1

心得体会

这次的实验报告就是让我们学会如何创建用户和组 ,如何实现重定向,如何修改文件和目录的权限,其实在我完成这个实验报告的时候,创建用户和修改用户,都需要去修改一些文件的配置,并不是简简单单一个指令就可以,通常要注意是否需要修改文件的配置,还有就是明白权限745,他其实是对应着文件的拥有者,文件的使用者以及其他用户,练习这些之后,在我完成项目:我的地盘我做主的时候,就十分简单,能够自己完成,所以让我知道学习是需要积累的,要明白学好Linux不是一件一蹴而就的事 , 一定要能坚持使用它,特别是在学习初期。要增加自己的Linux技能,只有通过实践来实现。只要多动手,就一定会有收获。遇到问题时要自己去寻找答案,在寻找答案的过程中,会学到更多知识。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Security实战(一)——基于内存和数据库模型的认证与授权

目录 简介 一、初识Spring Security&#xff08;入门案例&#xff09; &#xff08;1&#xff09;新建project &#xff08;2&#xff09;选择依赖 &#xff08;3&#xff09;编写一个 HelloController &#xff08;4&#xff09;启动项目&#xff0c;访问localhost:8080…

手动清除gitlab中prometheus的数据

背景&#xff1a; gitlab服务器上&#xff0c; 磁盘经常爆满。后来通过 du -sh ./* 查出prometheus下的data占了绝大多数磁盘空间。 因此&#xff0c;准备删除prometheus的数据。 思路 由于prometheus的数据占用的空间较大&#xff0c;因此在实际使用时&#xff0c;可以关闭…

【 Spring MVC 核心功能(一) - 使用注解实现 URL 路由映射】

文章目录引言一、RequestMapping 注解介绍1.1 RequestMapping 是 post 还是 get 请求&#xff1f;1.2 RequestMapping 指定一种请求方式二、GetMapping三、PostMapping四、总结引言 前面我们讲到&#xff0c;学习 Spring MVC 需要掌握三个核心功能即连接&#xff0c;获取参数&…

avi文件怎么转成mp4视频,3种方法快速学

avi文件怎么转成mp4视频&#xff1f;前面小编给大家讲了mov格式和webm格式&#xff0c;以及如何将mov和webm格式转换成mp4格式。今天小编给大家说一说另外一种视频格式&#xff0c;就是avi&#xff0c;AVI英文全称为Audio Video Interleaved&#xff0c;即音频视频交错格式&…

SpringBoot中对Bean的处理方法以及第三方Bean处理的方式

我们可以通过Spring当中提供的注解Component以及它的三个衍生注解&#xff08;Controller、Service、Repository&#xff09;来声明IOC容器中的bean对象&#xff0c;为应用程序注入运行时所需要依赖的bean对象&#xff0c;也就是依赖注入DI。 关于IOC容器中Bean的其他使用细节…

矿泉水为什么会溴酸盐超标

矿泉水为什么会溴酸盐超标&#xff1f; 水生产企业多使用臭氧消毒&#xff0c;不过&#xff0c;水生产企业不存在水运输路途遥远的问题&#xff0c;因此可以使用臭氧消毒。同时&#xff0c;也是因为臭氧在消毒后会直接变成氧气&#xff0c;所以不会有使用氯消毒后的那种味道&a…

give_you_flag(GIF原理、二维码定位符)

下载附件是一个GIF 看到最后你会发现它突然漏了一个二维码出来 我们将这个GIF分解成图片&#xff08;动图就是由多张静态图片组合而成&#xff0c;按照一定的顺序和时间播放的&#xff09; https://tu.sioe.cn/gj/fenjie/ 提取出里面包含二维码的那张 但是我们发现这里有一个…

word2vec原理

1.背景 2013年&#xff0c;Google开源了一款用于词向量计算的工具—word2vec&#xff0c;引起了工业界和学术界的关注。首先&#xff0c;word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练&#xff1b;其次&#xff0c;该工具得到的训练结果——词向量(word embed…

GDPU C语言 天码行空7

1. 数组最大值交换 ⭐ 1e9&#xff1a;10的9次方 #include<stdio.h>int main() {int n, i,idx 0;//idx 记录第一个出现的最大值下标scanf("%d", &n);double a[30];double max -1e9;// 1e9 表示10的9次方&#xff0c;十亿&#xff0c;int 的最大范围级别…

使用RT-Thread Studio搭配STM32CubeMX新建RT-Thread项目

STM32CubeMX下载 RT-Thread Studio下载 安装好RT-Thread Studio后&#xff0c;先打开RT-Thread SDK管理器确认有没有自己MCU需要的SDK包&#xff0c;直接安装好之后里面是有STM32F1系列的SDK包&#xff0c;其他的需要自己安装。 之后点击文件→新建→RT-Thread项目&#xff0…

C++ 实现 matlab 的 zp2tf 函数

文章目录1. matlab 的 zp2tf 函数的作用2. matlab 的 zp2tf 函数的使用方法3. C实现3.1 complex.h 文件3.2 zp2tf.h 文件4. 测试结果4.1 测试文件4.2 测试结果1. matlab 的 zp2tf 函数的作用 作用是将极点形式的 H(s) 函数的分母展开 2. matlab 的 zp2tf 函数的使用方法 [z,…

ICASSP2023 | 基于多任务学习的保留背景音的语音转换

在影视、有声书内容中&#xff0c;背景音是一种表现丰富的艺术形式。语音转换&#xff08;Voice Conversion&#xff09;如能将源说话人语音转换成目标说话人语音的同时&#xff0c;保留源语音中的背景音&#xff0c;将会提供更沉浸的语音转换体验。之前的语音转换研究主要关注…

低代码平台很赞,用2个小时,搭出1套应用

最近低代码很火&#xff0c;到处都是低代码的尝试贴&#xff0c;笔者今天也决定深入体验一下&#xff0c;感受它的便捷程度。 在案例开始之前&#xff0c;我们先来聊聊概念。 一、低代码 低代码实质上并不是一个新颖的话题&#xff0c;也不是最近才有的技术突破和创新&#xf…

Python--异常处理机制

Python异常处理机制 1、什么是异常处理&#xff1a; 程序运行时常会碰到一些错误&#xff0c;例如除数为 0、年龄为负数、数组下标越界等&#xff0c;这些错误如果不能发现并加以处理&#xff0c;很可能会导致程序崩溃。 可以简单的理解异常处理机制&#xff0c;就是在程序运…

Nginx生产环境配置、elasticsearch生产环境配置、rocketmq生产环境配置 (史上最全)

Nginx实现10万并发 在优化内核时&#xff0c;可以做的事情很多&#xff0c;不过&#xff0c;我们通常会根据业务特点来进行调整&#xff0c;当Nginx作为静态web内容服务器、反向代理或者提供压缩服务器的服务器时&#xff0c;期内核参数的调整都是不同的&#xff0c; 概述&am…

计算机组成原理——第五章中央处理器

半生风雨半生伤&#xff0c;半醉半醒半心凉 文章目录前言5.1 CPU的功能和基本结构5.2 指令周期的数据流5.3.1 单总线结构5.3.2 专用通路结构前言 之前我们就说过CPU主要包括两个部分&#xff0c;运算器和控制器&#xff0c;运算器主要是实现算数运算.逻辑运算&#xff0c; 运算…

React 搜索时遇到的坑

一、业务场景&#xff1a; 最近在优化React的天枢项目里面&#xff0c;搜索时遇到了一些问题。为了大家后面遇到和我一样的问题&#xff0c;给大家分享一下 二、问题描述&#xff1a; 1.点击搜索按钮&#xff0c;报以下错误。 TypeError: Converting circular structure to J…

全景丨0基础学习VR全景制作,平台篇:如何从素材库发布VR漫游

大家好欢迎观看蛙色平台使用教程 大家可以将创建作品理解成搭建房子&#xff0c;建房子需要基础的砖块、木头、钉子等原材料&#xff0c;房子成品是多种原材料的有机组合&#xff0c;而蛙色VR平台在创建作品前&#xff0c;也需要先准备对应的基础原材料。当前蛙色VR素材上传类型…

C++实现前缀树

文章目录1. 什么是前缀树2. 前缀树的实现2.1 前缀树的基本结构2.2 插入2.3 word出现了几次2.3 word作为前缀出现几次2.4 删除1. 什么是前缀树 假设这里有一个字符串数组&#xff0c;和一个树的根结点&#xff1a; 这个结点的pass意思是&#xff1a;有几个字符通过了这个结点。…

Golang中是否可以无限开辟协程以及如何控制协程的数量?

文章目录1. Golang中是否可以无限开辟协程&#xff1f;2. 不控制goroutine数量引发的问题3. 如何控制goroutine的数量&#xff1f;⭐️3.1 只用有buffer的channel3.2 channel与sync同步组合方式3.3 利用无缓冲channel与任务发送/执行分离方式1. Golang中是否可以无限开辟协程&a…