linux文件和用户管理

常用快捷键

重新执行命令:
Ctrl + p:历史中的上一条命令
ESC + .:打印之前执行过的命令的最后一部分  以空格为分隔符
​上箭头    历史中的上一条命令
控制命令:
Ctrl + l:清屏
Ctrl + c:终止命令
 Ctrl+A   移动到行首
Ctrl+K   清除光标后面的所有字符。
Ctrl+U   清除光标前面的所有字符。

​
Tab键: 自动补全

查看历史命令记录

语法:history [选项] [命令数]
常用选项:
 -c:清空历史记录
 -w:将当前的历史记录写入历史文件,默认历史文件是~/.bash_history 
#上下箭头翻页查看历史命令
[root@linux-server ~]# history      #查看所有历史命令
[root@linux-server ~]# history 5    #查看最近5条命令历史记录

一、Linux目录结构

在linux系统中一切皆文件

1.1 WINDOWS/LINUX 对比

Windows: 以多根的方式组织文件 C:\ D:\ E:\

Linux: 以单根的方式组织文件"/"

1.2 简介

/目录结构:
FSH (Filesystem Hierarchy Standard):标准的目录结构
[root@linux-server ~]# ls /
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

1.3 图示

1.4 目录功能

目录介绍:
/root        #root用户的家目录
/home        #存储普通用户家目录 
lost+found   #这个目录平时是空的,存储系统非正常关机而留下“无家可归”的文件
/usr         #系统文件,相当于C:\Windows
/usr/local   #软件安装的目录,相当于C:\Program
/usr/bin     #普通用户使用的应用程序
/usr/sbin    #管理员使用的应用程序
/usr/lib     #库文件Glibc 32bit
/usr/lib64   #库文件Glibc 64bit
/run         #存放正在运行的文件产生的文件号
/boot        #存放系统启动的相关文件,例如kernel
/etc         #配置文件(系统相关,如网络、服务器等配置文件)
/tmp         #临时文件(系统:程序产生的临时文件)
/opt         #空目录
/sys         #内核的实时信息和控制文件
/media       #用于挂载u盘,光驱等自动识别的设备
/srv         #存放服务启动后产生的数据目录
/var         #存放临时文件等经常变动的文件,比如数据库,日志,邮件等
/proc        #虚拟文件系统,系统程序文件所处目录 。虚拟文件系统:只要关机就会没有。
/mnt         #系统提供这个目录是让用户临时挂载其他的文件系统

路径详解

所谓路径即目录组成结构
一个linux路径由"/"和目录(文件)名称两部分组成
比如:/etc/passwd
如果"/"出现在路径开头,则其表示根目录,在路径中间出现"/" ,其含义是某一个目录下,那么上面所示路径的意思就是"根目录下的etc目录下的passwd文件";如果路径最后出现"/" ,则表示这是一个目录。

路径分类

绝对路径:从根开始的路径是绝对路径。案例:/home/alice/file1  /etc/grub.conf
相对路径:凡是非根开始的路径         如:etc  var/ftp/pub ./test.sh

使用pwd命令查看当前所在的绝对路径
比如:
[root@qfedu etc]# pwd
/etc
绝对路径实例
[root@linux-server ~]# touch /opt/file1
相对路径示例
[root@linux-server ~]# pwd
/root
[root@linux-server ~]# mkdir abc  #创建目录
[root@linux-server ~]# touch abc/file3

查看历史命令

[root@linux-server ~]# history 

二、文件类型

 -  普通文件(文本文件,二进制文件,压缩文件,图片……)
 d  目录文件(蓝色)
 b  块设备文件[block device],如硬盘,U盘;
 c  字符设备文件,比如我们的终端tty1,打印机。
 l  符号链接文件[symbolic link],又称软链接文件 (浅蓝色)
 s  套接字文件[socket],用于实现两个进程进行通信
 p  管道文件

示例

[root@linux-server ~]# ll -d /etc/hosts /bin/ls /home /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log 

 注意:通过颜色判断文件的类型是不一定正确的!!!

三、文件管理命令

3.1 切换目录---cd

# .               #表示当前目录
# cd ..           #回到上一级目录等同于相对路径
# cd 或者 cd ~    #直接回到家目录
# cd /home/alice  #切换目录(绝对路径)
# cd -            #回到原来目录

3.2 创建文件

[root@linux-server ~]# touch file1.txt  #无则创建,如果存在则修改时间
[root@linux-server ~]# touch /home/file10.txt
[root@linux-server ~]# touch /home/{zhuzhu,gougou} #{}表示集合
[root@linux-server ~]# touch /home/file{1..20}     #批量创建

3.3 创建目录 mkdir 

语法:mkdir -v 详细 -p 递归 目录名
# mkdir dir1
# mkdir /home/dir2 /home/dir3  #创建两个目录
# mkdir /home/{dir4,dir5}      #创建两个目录
# mkdir -v /home/{dir6,dir7}   #-v [verbose 冗长的]显示创建时的详细信息
# mkdir -p /home/dir8/111/222  #-p 创建连级目录,一级一级的创建

3.4.复制 cp

复制 cp -r 目录 -v 详细 -f 强制 -n 静默
Usage: cp [OPTION]... [-T] SOURCE DEST
# mkdir /home/dir{1,2}               #创建目录
# cp -v anaconda-ks.cfg /home/dir1/  #-v 显示详细信息
# cp anaconda-ks.cfg /home/dir1/test.txt  #复制并改文件名
# cp -r /etc /home/dir1        #-r 拷贝目录使用,连同目录里面的文件一块拷贝
​
语法: cp  -r  源文件1 源文件2 源文件N  目标目录   #将多个文件拷贝到同一个目录
# cp  /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/passwd /etc/hosts .
        #将三个文件拷贝到家目录

3.5 移动和重命名 mv

[root@linux-server ~]# touch /root/file1        #创建一个新文件file1
[root@linux-server ~]# mv /root/file1 /tmp/     #把file1文件移动到/tmp目录中。
[root@linux-server ~]# ls /tmp/file1 /tmp/file1
[root@linux-server ~]# mv /tmp/file1 /tmp/file2 #把file1文件更名为file2
[root@linux-server ~]# cd /tmp/ 
[root@linux-server tmp]# ls file2               #观察file1文件已经更名为file2

3.6 删除 rm 

语法: rm [参数] file

参数:
-r          递归,删除目录时
-f          force强制,直接删除,不需要确认
-i          删除前逐一确认
-v          详细过程
-d          只删除空目录
* 通配符
rm -f .*          # 删除隐藏文件
rm -f *.txt       # 删除以 txt 结尾的文件
rm -f a*          # 删除以 a 开头的文件
rm -df *          # 只删除空目录

示例1

# cd /home/
# rm -rf dir1/      # 删除/home/dir1

示例2:

[root@linux-server ~]# mkdir /home/dir10
[root@linux-server ~]# touch /home/dir10/{file2,file3,file4}
[root@linux-server ~]# rm -rf /home/dir10/*  #不包括隐藏文件
[root@linux-server ~]# ls /home/dir10/ -a 
.  ..  .file4

示例3:

[root@linux-server ~]# touch {1..10}.txt
[root@linux-server ~]# touch file{1..20}.txt  #创建20个txt文件
[root@linux-server ~]# rm -rf file1*

3.7 查看文件内容

cat---查看一个文件的全部内容
[root@linux-server ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
...
参数:
-n 显示行号
-A 显示控制字符(换行符/制表符)

head头部
[root@linux-server ~]# head /etc/passwd     #默查看前十行
[root@linux-server ~]# head -2 /etc/passwd  #查看前两行
参数

tail尾部
[root@linux-server ~]# tail /etc/passwd         #默认查看文件的后十行
[root@linux-server ~]# tail -1 /etc/passwd      #查看文件最后一行
[root@linux-server ~]# tail -f /var/log/secure  #-f 动态查看文件的尾部
[root@linux-server ~]# tailf /var/log/secure    #功能同上

grep 过滤关键字 ,针对文件内容进行过滤
过滤文件中带有root的行:
[root@linux-server ~]# grep 'root' /etc/passwd  #显示包含root的行
[root@linux-server ~]# grep '^root' /etc/passwd #显示以root开头的行: ^ --以什么开头
[root@linux-server ~]# grep 'bash$' /etc/passwd #过滤以bash结尾的行: $ --以什么结尾

less --分页显示
[root@linux-server ~]# less /etc/makedumpfile.conf.sample
1.空格键是翻页  回车键是翻行
2.上下箭头来回翻行,左右箭头来回翻页
3. /关键字     #搜索 
4.快捷键:q -quit 退出

文件管理实战

在服务器上进行文件的基本管理操作

touch
mkdir
cp
rm
mv
cat
head
tail
less

练习

1.在/opt/test/dir1/test/目录下面创建20个test.txt文件
[root@localhost ~]# mkdir  /opt/test/dir1/test
[root@localhost ~]# touch  /opt/test/dir1/test/test{1..20}.txt
2.在/mnt/目录中创建dir2目录
[root@localhost ~]# mkdir /mnt/dir2
3.将/opt/test/dir1/test/目录拷贝到/mnt/dir2目录中
[root@localhost ~]# cp -r /opt/test/dir1/test/ /mnt/dir2
4.将/mnt/dir2/test/目录中的test2.txt 改名为file300
[root@localhost ~]# mv /mnt/dir2/test/test2.txt /mnt/dir2/test/file300
5.将/mnt/dir2/test/目录中以txt结尾的文件删除。查看留下的文件
[root@localhost ~]# rm -rf /mnt/dir2/test/*.txt
[root@localhost ~]# ls /mnt/dir2/test

四、文件编辑

1、打开文件 vi/vim

[root@linux-sever ~]# vim  文件名
[root@linux-sever ~]# vi  文件名

工作模式

vi与vim的三个模式

(1)命令模式(Normal Mode)

光标定位键盘:
kjhl         #上下左右
0 或 $       #行首 行尾
gg           #页首--文本顶端
G(shift+g)   #页尾--文本底部
3G           #进入第三行
/string      #查找字符,n下一个,N上一个    (n N 可以循环的)

 (2)编辑模式(Insert Mode)

i    #在光标所在处进入编辑模式
a    #在当前光标后面进入编辑模式
o    #在光标的下一行进入编辑模式
大O  #在光标的上一行进入编辑模式
ESC  #退出编辑模式进入命令模式
文本编辑
 y       #将框定范围内的文本复制
 yy      #复制光标所在行 
 3yy     #从光标开始复制3行内容
 ygg     #从当前光标复制到页首
 yG      #从光标开始复制到页尾
 p       #粘贴到本行的下一行
 3p      #粘贴3遍
 P       #粘贴到本行的上一行
 d       #将框定范围内的文本删除
 dd      #删除一行
 3dd     #从光标开始删除3行
 dgg     #从光标开始删除到页首 
 dG      #从光标开始删除到页尾
 d^      #删除当前光标之前的内容
 x       #删除光标所在的字符
 D       #从光标处删除到行尾
 u       #undo 撤销
 r       #可以用来修改一个字符

(3)尾行模式(扩展命令模式)(Command-line Mode)

  :         #进入尾行模式(扩展命令模式)
 :10        #进入第10行 
 :w         #保存 
 :q         #退出 
 :wq        #保存并退出 
 :q!        #不保存并退出 
 :wq!       #强制保存退出
查找替换和另存为 
语法:范围 s/old/new/选项 

:s/world/nice/         #替换当前光标所在行
:3s/sbin/nice/         #替换指定行
:1,5 s/nologin/soso/   #从1-5行的nologin 替换为soso
:%s/bin/soso/          #替换所有行
:%s/sbin/nice/g        #替换行内所有关键字
注释:%表示替换所有行  g表示行内所有关键字
​
将文件另存(另存为)
语法:w 存储到当前文件
:w /tmp/aaa.txt    #另存为/tmp/aaa.txt 
:1,3 w /tmp/2.txt  #从1-3行的内容另存为/tmp/2.txt

取消高亮的颜色标记
:noh
:nohl
:nohlsearch
替换之后自动取消高亮,可以在 :s/// 命令中加入 \|noh
:s/pattern/replacement/g\|noh
查找
查找文本:
在命令模式下,输入 /(斜杠),然后输入你要查找的单词或短语。
例如,如果你要查找单词 "example",则输入 /example,然后按 Enter 键开始搜索。
查找下一个匹配项:
要找到下一个匹配项,只需按下 n 键。Vim 会将光标移动到下一个匹配的位置。
如果你想反向查找(即向上查找),可以使用 N 键(大写的 N)。
 
设置环境 
:set nu       #设置行号 
:set list     #显示控制字符
:set nonu     #取消设置行号 
:set nolist   #取消显示控制字符

 可视模式

v          #进入可视模式
ctrl+v     #进入可视块模式
shift+v    #进入可视行模式

使用命令块模式(Visual Block Mode)来快速地在多行的前面加上 # 符号以实现注释。

进入 Vim 编辑器并打开文件。
将光标移动到第一行。
按 Ctrl+V 进入命令块模式。
使用 j 键选择接下来的三行。
按 shift+i 或者大写 I 进入插入模式。
输入 #。
按 Esc 键退出插入模式。
再次按 Esc 键退出命令块模式。

使用命令块模式(Visual Block Mode)来快速地在多行的前面删除# 符号以取消注释。
进入 Vim 编辑器并打开文件。
将光标移动到第一行。
按 Ctrl+V 进入命令块模式。
使用 j 键选择接下来的三行。
按d删除

2.9 文件基本信息

一个文件由两部分组成:文件的内容和文件的属性

文件属性:文件的名字、大小、权限、时间、存到磁盘的位置。文件属性保存到inode号里面,

查看文件inode号:
stat file_name 或 ls -i file_name

时间类型

访问时间(Access):atime,查看内容 
修改时间(Modify):mtime,修改内容
改变时间(Change):ctime,文件属性,比如权限,mv改名

查询示例

[root@linux-server ~]# ls -l passwd 
-rw-r--r--. 1 root root 839 Oct 31 21:29 passwd
​
[root@linux-server ~]# stat passwd 
  File: ‘passwd’
  Size: 839         Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 33583688    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2019-10-31 21:29:40.750993492 +0800
Modify: 2019-10-31 21:29:36.449993550 +0800
Change: 2019-10-31 21:29:36.452993550 +0800
 Birth: -

ls -l 文件名 仅看的是文件的修改时间

Linux用户管理

理解用户和组的意义

Linux的一大特性:

​ 多用户、多任务。

所谓多用户多任务就是指可以在同一时间,有多个用户登录同一个系统执行不同的任务而互不影响。

假设现在有三个用户:root、lbb、mvv,三个用户同一时间登录了同一个系统,root去修改配置文件了,lbb去创建目录了,mvv去访问数据库了,每个用户互不干扰的独立执行自己的任务,并且每个用户不能够越线去访问其他用户正在操作的目录或执行其他用户下的任务,由此可见,不同的用户是拥有各自不同的权限的,Linux通过权限的划分和管理来实现多用户、多任务的运行机制。

Linux中的用户及其角色划分

账户为分三类:
超级用户(管理员):享有最高权限,具备系统中的所有权限(一般为root),UID为0
系统用户 :别称“伪用户”,无法登录系统,其主要作用是支撑系统运行,方便系统管理。uid号码小于1000.
普通用户:有权限限制,只能对自己目录下的文件进行操作,可以登录系统。uid 大于1000,登陆shell是bin/bash。
任何一个账户在创建的同时都会在系统里面创建一个同名的组。

1 用户概览

用户/组基本概念

系统上的每个进程(运行的程序)都是作为特定用户运行的;每个文件是由一个特定的用户拥有 ;访问文件和目录受到用户的限制

====================================================

2 用户组管理

2.1创建组

语法:groupadd [选项] 组名
[选项]
    -g GID:指定新组的组ID,如果不指定则系统会自动分配一个未使用的ID。
    -r:创建系统组。
    -f:强制创建组,若组名已经存在,则会删除已存在的组,并创建一个新的组。
[root@linux-server ~]# groupadd testgroup        #创建一个用户组叫testgroup
[root@linux-server ~]# groupadd -r sgroup        #创建一个系统组叫sgroup
[root@linux-server ~]# groupadd -f testgroup     #强制创建一个用户组叫testgroup
[root@linux-server ~]# groupadd -g 2000 group1   #创建组叫group1,并指定gid为2000

2.2查看组 

(1)以文本形式显示系统上所有组的信息,包括组名、组ID、组成员等。
[root@linux-server ~]# cat /etc/group        #查看/etc/group中所有组的信息(以下截取一部分)
root:x:0:
mail:x:12:postfix
systemd-journal:x:190:
tom:x:1001:zhuzhuxia
# 组名:组密码:gid:组员
#组密码栏中的 "x" 表示该组的密码信息存在于 /etc/gshadow 文件中,只有特定的系统管理员可以访问该文件,并且只有在通过授权验证后才能查看或修改其中的密码信息。

(2)查看指定组名的组信息
[root@linux-server ~]# grep 'group1' /etc/group   #查看/etc/group中组net01信息

(3)以格式化的方式显示所有组的信息,包括组名、组密码、组ID、组成员等。
[root@linux-server ~]# getent group

2.3删除组

删除组————注意:用户的主属组不能删除
语法:groupdel <组名>
[root@linux-server ~]# groupdel group1           #删除组group1

当删除一个组时,系统会将组的所有权和文件关联从文件系统中删除。但是,如果有用户仍然属于该组,删除组可能会会出现以下问题:

  1. 文件和目录权限问题:如果某些文件或目录的所有者是该组或组中的用户,并且没有其他用户属于该组,那么删除该组可能会导致文件和目录的权限问题。这可能会导致对这些文件和目录的访问权限受到限制。

  2. 用户归属问题:如果删除一个组,组中的用户将不再属于任何组。这可能会导致用户在访问某些资源或执行某些操作时出现问题。

  3. 进程运行问题:如果删除一个组,仍然运行着属于该组的某些进程,则这些进程的组归属将变得无效。这可能会导致进程无法正常运行或访问某些资源。

因此,在删除组之前,需确保没有用户属于该组,或在删除组之前,将这些用户移动到其他组。

2.4用户组密码管理

gpasswd 管理组密码,主要用于设置和修改组密码,以及给组添加或移除成员。只针对已存在的用户。

语法:gpasswd [选项] 组名
[选项]
    -a 用户名    ---将指定的用户添加到组中。
    -d 用户名    ---从组中移除指定的用户。
    -M 用户列表  ---设置组的成员列表,该选项会替换原有成员列表。
    -r           ---移除组的密码。
[root@linux-server ~]# gpasswd testgroup              #更改grp组密码
[root@linux-server ~]# gpasswd -r testgroup           #移除组密码
[root@linux-server ~]# gpasswd -a u3 testgroup        #给组添加用户
[root@linux-server ~]# gpasswd -M u1,u2 testgroup     #给组设置用户
[root@linux-server ~]# gpasswd -d u4 testgroup        #删除组用户

3.用户管理

3.1创建用户 useradd

语法:   useradd  [参数] 用户名

【参数】
-c    --comment "备注":为用户添加备注信息。保存到/etc/passwd文件中。
-d    --home 目录:指定用户的家目录。
-e    --expiredate 日期:设置用户的过期日期(有效期),用于创建临时账户
-f    --inactive 天数:指定用户在密码过期后的天数,默认将密码过期值设置为-1永不过期。
-g    --gid 组名/组ID:指定用户所属的主组。
-G    --groups 组名/组ID:指定用户所属的附加组,每个组名由逗号分隔,中间没有空格。
-m    --create-home:创建用户时同时创建用户的家目录(登录目录)(不指定系统默认创建)。
-M    --创建没有主目录的用户目录 
-p    --password 密码:为用户设置密码。
-n    --取消建立以用户名称为名称的群组
-s    --指定用户默认的登录shell
-u    --uid 用户ID:指定用户的UID。(不指定系统默认分配)

[root@linux-server ~]# useradd user01           #创建用户
[root@linux-server ~]# useradd user02 -u 503            #指定uid为503
[root@linux-server ~]# useradd user05 -s /sbin/nologin  #创建用户并指定shell
[root@linux-server ~]# useradd user06 -g it     #创建用户并指定用户所属的起始群组
[root@linux-server ~]# useradd user07 -G it,fd  #创建用户并将用户添加到其他组
[root@linux-server ~]# useradd user8 -u 4000 -s /sbin/nologin 

3.2查看用户 

# cat /etc/passwd  ---->查看账户是否存在的文件
# ls /home/        ---->查看用户的家目录,每创建一个用户会在/home目录下面创建对应的家目录
# cat /etc/shadow  ---->用户的密码文件

临时禁止 user02 用户登录系统的办法
文件/etc/passwd 中用户名 user02 的一行前加#

/etc/passwd文件详解:此文件里面除了密码字段能删除不能直接修改之外,其他字段全部都能直接修改。

[root@linux-server ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
分隔符::
第一列:用户名
第二列:密码
第三列:用户标识号--->(uid)是一个整数,系统内部用它来标识用户。
        通常用户标识号的取值范围是0~65535。0是超级用户root的标识号
第四列:gid
第五列:描述信息。
第六列:家目录
第七列:是用户登陆到界面的第一个命令,开启一个shell。登陆shell
bash-分配命令解释器,可登录
nologin-不能登录

 (1)判断用户是否存在

方法一:使用命令行,判断用户是否存在。如果返回用户信息,则表示用户存在,否则表示用户不存在。
# id 用户名              ##仅适用于本地用户
# getent passwd 用户名   ##用于查询 /etc/passwd 文件中的用户信息不仅可以用于查询本地用户信息,
                         还可以查询其他支持的用户数据库

方法二:查看系统文件:可以在 /etc/passwd 文件中查找用户行。
#cat /etc/passwd | grep 用户名

[root@linux-server ~]# id user01   #查看用户的uid、gid、和所在组
uid=503(user01) gid=1000(user01) groups=1000(user01)

[root@linux-server ~]# getent passwd user01   #查看/etc/passwd 文件指定用户的信息
user01:x:503:1000::/home/user01:/sbin/nologin

[root@linux-server ~]# cat /etc/passwd | grep user01 #查看/etc/passwd 文件指定用户的信息
user01:x:503:1000::/home/user01:/sbin/nologin

 (2)查看正在使用的用户

[root@linux-server ~]# whoami #查看当前登录的用户名称
[root@localhost ~]# w         #查看系统所有的登录账户
    #会显示每个用户的用户名、登录时间、运行时间以及他们当前所在的终端
 10:54:21 up  3:53,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      Tue19   15:27m  0.01s  0.01s -bash
root     pts/0    192.168.226.1    08:51    6.00s  0.29s  0.03s w
用户     开启终端编号  ip           登录时间                      执行命令  

3.3删除用户

userdel 

语法:userdel [选项] 用户名
[选项]
    -r:同时删除用户的家目录及其内容。
    -f:强制删除用户,即使用户目前已登录。
    -Z:指定要删除用户的安全上下文。
[root@linux-server ~]# userdel -r user02  # -r 删除用户user2,同时删除用户家目录

3.4用户密码设置

设置密码:passwd

语法:passwd [选项] 用户名
[选项]
    -l:锁定用户密码,使其无法登录。
    -u:解锁用户密码,允许其登录。
    -d:将用户密码设置为空,即无密码登录。
    -e:强制用户在下次登录时修改密码。
[root@linux-server ~]# passwd alice  #root用户可以给任何用户设置密码
[root@linux-server ~]# passwd        #root用户给自己设置密码
[root@linux-server ~]# su - alice    #切换普通用户alice
[alice@linux-server ~]$ passwd       #普通用户只能给自己修改密码,而且必须提供原密码

3.5用户属性设置

usermod 

语法:usermod [选项] 用户名
[选项]
    -c:修改用户的备注信息。
    -d:修改用户的家目录路径。
    -e:修改用户的账号有效期。
    -g:修改用户所属的主要用户组。
    -G:修改用户所属的附加用户组。
    -l:修改用户的登录名。
    -p:修改用户的密码。
    -s:修改用户的默认登录shell。
    -u:修改用户的UID。

[root@linux-server ~]# usermod -u new_id jack        #修改UID  
[root@linux-server ~]# id jack   #用于显示用户的用户ID、组ID以及所属的附加用户组。
uid=1005(jack) gid=1004(jack) groups=1004(jack)
[root@linux-server ~]# usermod -s /sbin/nologin user07   #修改用户的登录shell

练习

目的:修改一些重要文件前一定要先备份,文件结尾用.bak .back
1.将/etc/sysconfig/network-scripts/ifcfg-ens33 复制
到/tmp下并且重新命名为ifcfg-ens33.bak
[root@localhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33  /tmp/ifcfg-ens33.bak
2 在/opt/目录下创建yumlist的目录。并且在此目录下创建yum.repo文件
[root@localhost tmp]# mkdir /opt/yumlist
[root@localhost tmp]# touch /opt/yumlist/yum.repo
3 进入yum.repo文件编辑文件内容 hello world
[root@localhost opt]# vim yumlist/yum.repo
4 将hello world复制10行后保存文件。
 esc yy10p :w 
5 将hello全部替换为 welcome
 :%s/hello/welcome
6 快捷键删除第二行到页尾的文件内容,操作后不要保存,请直接退出
光标移至第二行,dG   :q!
7 将yum.repo文件 移动到/tmp下
[root@localhost opt]# mv yumlist/yum.repo /tmp
8 在/tmp/yum.repo里显示行号
[root@localhost opt]# vim /tmp/yum.repo
:set nu                                                                           
9./etc/passwd文件中第二段是干什么的?以什么分割?
bin:x:1:1:bin:/bin:/sbin/nologin
bin: 用户名,代表二进制文件的所有者。
x: 密码占位符,实际的密码已经被加密并存储在 /etc/shadow 文件中。
1: 用户ID(UID),是一个数字,1 表示 bin 用户。
1: 组ID(GID),也是一个数字,1 表示 bin 用户组。
bin: 用户全名或注释,表示二进制文件的所有者。
/bin: 用户的主目录路径,这里是二进制文件的存放目录。
/sbin/nologin: 用户的默认shell程序,这里是禁止登录的特殊shell
以:分割
10.给服务器添加3个账号xiaozhang、xiaoli、xiaowang
[root@localhost opt]# useradd xiaozhang
[root@localhost opt]# useradd xiaoli
[root@localhost opt]# useradd xiaoming
11.修改普通用户xiaowang和root的密码
[root@localhost opt]# passwd xiaoming
[root@localhost /]# passwd root
12.创建用户jack和tom分别属于hr,wc组
[root@localhost /]# useradd jack -g hr
[root@localhost /]# useradd tom -g wc
13.创建用户tony,属于hr,不属于wc组,并且将3个人的密码修改为qianfeng
[root@localhost /]# useradd tony -g hr
[root@localhost /]# gpasswd -d tom wc
[root@localhost /]# passwd jack
[root@localhost /]# passwd tom
[root@localhost /]# passwd tony
14.将/etc/passwd前10行内容另存到/tmp/passwd下。然后将4-6行的root换成haha
:1,10 w /etc/passwd
:4,6 s/root/haha

  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值