admin 管理员组

文章数量: 887021

liunx-基本指令集合--2

  • 一:用户
    • 1> useradd 、userdel
    • 2> passwd
      • 1. 修改用户密码
      • 2. 显示账号密码信息
      • 3. 帐户密码状态
      • 4. 锁定、解锁用户
      • 5. 更改用户密码使用情况
      • 6. /etc/shadow各字段含义
    • 3> 用户处理
      • 1. 删除
      • 2. 切换用户
    • 4> 添加批量用户
  • 二: 权限管理
    • 1> 用户组管理
      • 1. 用户账号管理
        • A:useradd
    • 2> 用户口令的管理
    • 3> 用户组的管理
      • 1. 主组和附加组的关系
      • 2. 用户组配置文件/etc/group
      • 3. 新增组命令
      • 4. 删除组命令
      • 5. 修改用户组的属性命令
      • 6. 管理用户入组
      • 7. 组切换
    • 4> ACL权限
    • 5> 文件相关
      • 1. df -h磁盘使用情况统计
      • 2. mount 挂载
  • 三: 其他常用命令一览
    • 1> date 时间
    • 2> ps 显示当前进程的状态
    • 3> top 监控linux的系统状况
    • 4> pidof指定名称进程的进程
    • 5> kill
      • 1. kill 删除执行中的程序
      • 2. killall杀死进程
    • 6> ifconfig显示或配置网络设备的命令
    • 7> uname显示操作系统信息
    • 8> uptime 时间和系统的平均负载
    • 9> free 物理和交换内存总量
    • 10> who&last&history
      • 1. who显示系统使用者正在上面
      • 2. last 显示用户最近登录信息
      • 3. history显示与管理历史记录
    • 11> sosreport 数据收集工具
    • 12> pwd显示工作目录
    • 13> wc 用于计算字数
    • 14> stat 显示 inode 内容
    • 15> cut 显示起 num1-num2 文字
    • 16> diff 比较文件的差异
    • 17> dump 备份文件系统
    • 18> restore 写回
    • 19> cp 制文件和目录
    • 20> mv 移动
    • 21> rm 删除
    • 22> dd 读取、转换并输出数据
    • 23> file 辨识文件类型
    • 24> lsof 列出已经打开的所有文件
      • 1. 基本输出
      • 2. demo
    • 25> vmstat 展现服务器的状态值
      • 1. 介绍
      • 2. demo
    • 26> dmesg 显示开机信息
    • 27> path 环境变量
      • 1. 介绍
      • 2. PATH demo
    • 28> read 从标准输入读取数值
      • 1. 介绍
      • 2. demo
    • 29> rsyslog 系统日志的处理转发
      • 1. 介绍
      • 2. facility:设施、信道
      • 3. 日志级别
      • 4.rsyslog配置
  • 四:Vim 与 Shell 命令

一:用户

1> useradd 、userdel

作用:
命令用于建立用户帐号
useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码
使用 useradd 指令所建立的帐号,实际上是保存在 /etc/passwd 文本文件中。
userdel
删除帐号

格式:
useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ][-u ][用户帐号]

参数说明:

参数 说明
-c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录> 指定用户登入时的起始目录。
-D 变更预设值.
-e<有效期限> 指定帐号的有效期限。
-f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
-g<群组> 指定用户所属的群组。
-G<群组> 指定用户所属的附加群组。
-m 自动建立用户的登入目录。
-M 不要自动建立用户的登入目录。
-n 取消建立以用户名称为名的群组.
-r 建立系统帐号。
-s 指定用户登入后所使用的shell。
-u 指定用户ID

用法:
新添加的用户指定home目录
useradd -d /home/user aa

2> passwd

linux passwd命令用来更改使用者的密码

语法:

passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]

必要参数说明:

参数 说明
-d 删除密码
-f 强迫用户下次登录时必须修改口令
-w 口令要到期提前警告的天数
-k 更新只能发送在过期之后
-l 停止账号使用
-S 显示密码信息
-u 启用已被停止的账户
-x 指定口令最长存活期
-g 修改群组密码
-i 口令过期后多少天停用账户

选择参数:

参数 说明
–help 显示帮助信息
–version 显示版本信息
使用:

1. 修改用户密码

passwd runoob

2. 显示账号密码信息

passwd -S runoob

3. 帐户密码状态

passwd --status 帐户

LK:密码被锁定
NP:没有设置密码
PS:密码已设置

4. 锁定、解锁用户

passwd -l oldboy  #锁定用户 oldboy 的密码
passwd -u oldboy # 解锁用户 oldboy 的密码

5. 更改用户密码使用情况

chage

参数 含义
-d 设置最近一次更改密码时间,0下次登陆系统强制修改密码
-m 设置用户两次改变密码之间使用“最小天数”
-M 设置用户两次改变密码之前使用“最大天数”
-W 设置密码更改告警时间,将过期警告天数设为“警告天数”
-I 设置密码过期天数后,密码为失效状态
-E 设置用户过去时间,账户失效后无法登陆
-l 显示用户详细信息(各个时间段)
chage -m 2 oldboy
chage -M 10 oldboy
chage -W 5 oldboy

6. /etc/shadow各字段含义

cat /etc/shadow
ceshi1:!!:18183:0:99999:7:::
/etc/shadow 由’:'分割成9个字段,每个字段的具体含义如下

字段名称 含义
用户登陆名 用户的账户名称
加密后的密码 用户密码,这是加密过的口令(未设置密码为!!)
最近一次密码更改时间 从1970年到最近一次更改密码时间之间过了多少天
密码最少使用几天 密码最少使用几天才可以更改密码(0表示无限制)
密码最长使用几天 密码使用多少天需要修改密码(默认99999永不过期)
密码到期前警告期限 密码过期前多少天提醒用户更改密码(默认过期提前7天告警)
密码到期后保持活动的天数 在此期间内,用户依然可以登陆系统并更改密码,指定天数过后,账户被锁定
账户到期时间 从1970年起,账户在这个日期前可使用,到期后失效
标志 保留

3> 用户处理

1. 删除

userdel -r username
-r 选项表示在删除用户的同时删除用户的家目录;在删除用户的同时如果不删除用户的家目录,那么家目录就会变成没有属主和属组的目录,也就是垃圾文件
同时可以手动删除,但一些文件要删除赶紧后才能新建此账户成功;

2. 切换用户

当前用户: who ami
切换用户: su root
查看用户环境信息:env

#代表root用户
   $代表普通用户 

参数

字段名称 含义
  • | 当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户。
    -l | 同 - 的使用类似,也就是在切换用户身份的同时,完整切换工作环境,但后面需要添加欲切换的使用者账号。
    -p | 表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件)。
    -m | 和 -p 一样;
    -c 命令 | 仅切换用户执行一次命令,执行后自动切换回来,该选项后通常会带有要执行的命令。
su -c 'passwd -S u-dev2' root
  • 选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的

who am i与whoami
在未切换用户身份之前,whoami 和 who am i 命令的输出是一样的,但使用 su 命令切换用户身份后,使用 whoami 命令打印的是切换后的用户名,而 who am i 命令打印的仍旧是登陆系统时所用的用户名

4> 添加批量用户

先编辑一个文本用户文件:每一列按照/etc/passwd密码文件的格式书写,要注意每个用户的用户名、UID、宿主目录都不可以相同,其中密码栏可以留做空白或输入x号。一个范例文件user.txt内容如下:

cat user.txt
user01:x:1010:1010:user dec1:/home/user01:/bin/bash
user02:x:1003:1011:user dec2:/home/user02:/bin/bash

以root身份执行命令 /usr/sbin/newusers,从刚创建的用户文件user.txt中导入数据,创建用户

newusers < user.txt

然后可以执行命令 vipw 或 vi /etc/passwd 检查 /etc/passwd 文件是否已经出现这些用户的数据,并且用户的宿主目录是否已经创建

 grep user /etc/passwd  /etc/shadow

执行命令/usr/sbin/pwunconv:将 /etc/shadow 产生的 shadow 密码解码,然后回写到 /etc/passwd 中,并将/etc/shadow的shadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password 功能

[root]# pwunconv
[root]# grep user /etc/passwd /etc/shadow
/etc/passwd:user01:$6$4nRCI2BqG8/$MUVJvj4AUHvCigCJa209ALwmtlqqb7x89/akPLQV4C5tvtxQSSyGF.N74HQimPyAezJl9riS.Q/0vHCJ1u1Nm1:1010:1010:user dec1:/home/user01:/bin/bash

文件-格式

用户名:密码
实例文件 passwd.txt 内容如下:

user01:123456
user02:123456

以 root 身份执行命令 /usr/sbin/chpasswd:创建用户密码,chpasswd 会将经过 /usr/bin/passwd 命令编码过的密码写入 /etc/passwd 的密码栏

vi passwd.txt
chpasswd < passwd.txt
rep user /etc/passwd /etc/shadow
打印:/etc/passwd:user01:$6$eFL/r/bByqMA$U1RmOwaGvKnR6eYc3LrWLij2r6xoSvVMZQq/COOgMKDkkkas8JdjOHZzmxPq07vqk/s2lkYYwyZbLyjWGrBv21:1010:1010:user dec1:/home/user01:/bin/bash
#密码和初始密码不一样了,说明passwd.txt中的密码已经被转码到/etc/passwd文件中

确定密码经编码写入/etc/passwd的密码栏后:执行命令 /usr/sbin/pwconv 将密码编码为 shadow password,并将结果写入 /etc/shadow

pwconv
grep user /etc/passwd /etc/shadow

就完成了大量用户的创建了,之后可以到/home下检查这些用户宿主目录的权限设置是否都正确,并登录验证用户密码是否正确

su - user01  下面输入密码

二: 权限管理

1> 用户组管理

Linux中管理用户一般需要完成以下三个方面的工作:

用户账号的添加、删除和修改
用户口令的管理
用户组的管理

1. 用户账号管理

在Linux中,用户的账号类型大体可以分为两种,一种是超级管理员用户 root,root用户拥有对系统的全部权限,另外一种是普通用户
用户账号配置文件/etc/passwd
在Linux当中,一切皆为文件,不管你做什么操作实际上都是操作系统上的一个又一个的文件;通过/etc/passwd这个文件来管理用户的账号信息

[root@Server01 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
………………………中间部分省略……………………………
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
gnome-initial-setup:x:977:975::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
rngd:x:976:974:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin


UID和GID:普通的用户可以通过用户名和组名去识别相关信息,但是Linux中它并不会识别用户名,它只认识ID,因为计算机只识别二进制数,所以对于数字更加敏感。管理员用户的UID为0,普通用户的UID是从1000起。
查看用户的UID和GID

id user01
uid=1000(user01) gid=1000(user01) 组=1000(user01)

按照UID进行分类的话可以将Linux的用户分为三类

分类 UID
root 用户 UID:0
伪(系统)用户 UID:1-999(其中1-200为系统保留账号,系统自动创建的,201-999是预留给用户创建系统账号的。)
普通用户 UID:1000-60000

伪用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。简单来说伪用户就是用来方便运行系统或服务使用的

比如以下这些伪用户

bin 拥有可执行的用户命令文件 
sys 拥有系统文件 
adm 拥有帐户文件 
uucp UUCP使用 
lp lp或lpd子系统使用 
nobody NFS使用
A:useradd

useradd 【选项】 用户名

选项类型 含义
-c comment 指定一段注释性描述;useradd -c test-user user1(对照/etc/passwd文件 user1❌1001:1001:test-user:/home/user1:/bin/bash)
-d 目录 指定用户主目录;useradd -d /home/user10 user02 (/etc/passwd对照 user02❌1002:1002::/home/user10:/bin/bash)
-g 用户组 指定用户所属的用户组。//所属组一般是用户初始组,只能是一个,建议不要修改,默认组名和用户名同名 //此例在后续用户组管理的时候进行演示
-G 用户组,用户组 指定用户所属的附加组。 //此例在后续用户组管理的时候进行演示
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
删除用户
userdel 【选项】 用户名
选项类型
-r,它的作用是把用户的主目录、自动创建的邮件目录一起删除

2> 用户口令的管理

删除用户
修改用户密码
usermod 【选项】 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
在上面有部分介绍

3> 用户组的管理

将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。一般情况下,用户的主组和用户同名

1. 主组和附加组的关系

用户的主组是用户一登录的时候就会有该用户组的权限。当有一个用户属于该主组的时候,这个主组不可被删除。例如user01的主组为user01,此时使用删除组的命令groupdel user01会失败
但是可以修改用户的主组,之后再删除

usermod -g user02 user01
cat /etc/passwd # 查看权限
groupdel user01 

2. 用户组配置文件/etc/group

[root@Server01 ~]# cat /etc/group
root:x:0:
……以下省略

用户的组配置文件的含义一般如下:组名:口令:组标识号:组内用户列表

参数 含义
组名 用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
口令 字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。
组标识号 与用户标识号类似,也是一个整数,被系统内部用来标识组。
组内用户列表 是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

3. 新增组命令

groupadd 【选项】 用户组

参数 含义
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同

4. 删除组命令

groupdel 用户组

5. 修改用户组的属性命令

参数 含义
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n 新用户组 将用户组的名字改为新名字

6. 管理用户入组

gpasswd 【选项】 组名 (这里的组是指的是附加组)

参数 含义
-a用户名 把用户加入组
-d 用户名 把用户从组中删除

7. 组切换

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:

newgrp root
这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。​​​​​​​

4> ACL权限

ACL和UGO的区别

类型 区别
UGO基本权限 只能一个用户、一个组合、其他人这三个对象进行授权
ACL文件权限管理 设置不同用户,不同的基本权限(r、w、x),对象数量不同

UGO是针对用户、组、其他人三个对象的文件授权,ACL是可以针对指定用户指定组和其他人的文件授权。

查看权限

getfacl  /test/t1    
============
# file: test/t1                                           //文件的位置
# owner: root                                        //文件拥有者
# group: root                                          //文件所属组
user::rw-                                          //用户的权限
group::r--                                  //组的权限
other::rw-                                             //其他人的权限

设置用户zhangsan、lisi权限

setfacl -m u:zhangsan:rwx  /test/t1        //给zhangsan授予可以对文件读写执行的权利
setfacl -m u:lisi:rwx /test/t1        //给lisi授予可以对文件读写执行的权利
getfacl /test/t1                  //查看t1的ACL权限

查看权限

 ll /test/t1
-rw-rwxrw-+ 1 root root 0 9月  27 14:46 /test/t1
============================
用ls命令查看后会发发现权限字段上多了一个+号,这个加号代表着有ACL权限,不止有显示的这些权限,具体权限用getfacl命令查看

对组S1进行ACL授权

setfacl -m g:S1:rw /test/t1              //给S1组授予对文件t1读写权限
getfacl /test/t1    
...
group:S1:rw-                         //授权成功
.......

对其他人授权

setfacl -m o::rwx /test/t1  //给其他人授予对文件t1的读写执行的权限
getfacl /test/t1           //查看t1ACL权限
.....
other::rwx                  //成功
.......

删除ACL权限

命令setfacl  -x   对象:名称      文件

删除用户的权限

setfacl   -x u:zhangsan   /test/t1        //删除用户张三对文件的权限
getfacl /test/t1          //查看t1的ACL权限
.....
user:lisi:rwx          //只有lisi的权限在,张三的权限已经移除
.........

删除组的权限

setfacl -x g:S1  /test/t1              //删除组S1的权限
 getfacl /test/t1                 //查看问价t1的ACL权限

清空所有设置的ACL权限(将文件的ACL权限恢复到默认)

命令:setfacl -b 文件

setfacl   -b   /test/t1         //清空ACL的所有扩展权限
getfacl  /test/t1       //查看t1的ACL权限
ll /test/t1                                        //查看t1文件信息
-rw-r--rwx. 1 root root 0 9月  27 14:46 /test/t1             //原本的

本文标签: 指令 Liunx