RHCSA(第五天)

目录

tar命令

tar命令的选项

文件上传下载

sftp

scp

rz命令

rz命令选项

sz命令

sz命令选项

变量

变量可分为两类

1、环境变量

显示与取消环境变量

环境变量初始化与对应文件的生效顺序

2、普通变量

命令别名

快捷键的使用

history命令

history命令的选项及参数

通配符

常见通配符具体含义及用法

引号使用

Linux中的用户和组的分类

Linux下的用户可以分为三类

Linux中的组有以下三种

Linux中用户的用户组的配置文件

1)用户帐号文件 --- /etc/passwd

2)用户密码文件 --- /etc/shadow

3)用户组帐号文件 --- /etc/group

用户登录Linux系统的过程

用户管理

useradd命令

useradd命令常用选项

passwd命令

passwd命令的常用选项

usermod命令

usermod命令的常用选项

userdel命令

su命令

su命令和su -命令区别

sudo命令

sudo配置文件/etc/sudoers

用户组管理

groupadd命令

groupadd命令的选项

gpasswd命令

gpasswd命令的选项

groupmod命令

groupmod命令的常用选项

groupdel命令

用户和组账户的信息显示


tar命令

        归档的命令,打包的功能

命令格式: tar [选项] 打包文件名 被打包的文件或目录列表

tar命令的选项

选项功能
c创建.tar格式的包文件
x释放.tar格式的包文件
t查看包中的文件列表
v表示在命令执行时显示详细的提示信息
f 包文件名用于指定包文件名。当与-c选项一起使用时,创建的tar包文件使用该选项指定的文件名;当与-x选项一起使用时,则释放该选项指定的tar包文件。
p打包时保留文件及目录的权限。
z调用gzip程序,以gzip格式压缩或解压缩文件。
j调用bzip2程序,以bzip2格式压缩或解压缩文件。
J使用xz压缩(.tar.xz)。Xz的压缩率通常比bzip2更高。
C 目录路径名释放包时指定释放的目标的位置。

1、创建(非压缩的)包文件
命令:tar cvf 包文件名 要打包的目录或文件名列表
功能:将指定的一个或多个文件或目录备份生成为一个指定的包文件。


2、创建带压缩的包文件
为节省存储空间,通常需要生成压缩格式的tar包文件,tar命令支持三种不同的压缩方式:
命令:tar c[z j|J] f 压缩包文件名 要备份的目录或文件名


3、列出包文件中的文件列表
命令:tar t[v]f 包文件名


4、提取包文件到指定目录
格式:tar x [z j|J] [v]f 包文件名 [ -C 目标位置]
 

tar打包时排除
--exclude=PATTERN         排除以 PATTERN 指定的文件
-X, --exclude-from=FILE         排除 FILE 中列出的模式串

文件上传下载

sftp

        是一个交互式文件传输程式,它类似于ftp传输协议,属于ssh, 但它进行加密传输,相对FTP来讲有更高的安全性
 

sftp用法
如果有服务器的端口不是默认的22,请在sftp后面加-P 端口号即可。

# sftp root@223.6.6.6
The authenticity of host ‘223.6.6.6 (223.6.6.6)’ can’t be established.
ECDSA key fingerprint is SHA256:Hl/dKTFzL4lOlF8DIG5itaV4OAsZunC2AWlFGLjLfsg.
Are you sure you want to continue connecting (yes/no)? yes【输入yes回车】
Warning: Permanently added ‘223.6.6.6’ (ECDSA) to the list of known hosts.
root@223.6.6.6’s password:【输入223.6.6.6的root密码并回车】
Connected to 223.6.6.6.
sftp>

将223.6.6.6服务器文件下载到223.5.5.5的home目录

sftp> get /var/www/renwole.txt /home/

将223.5.5.5服务器文件上传到223.6.6.6服务器的mnt目录

sftp> put /home/renwole.txt /mnt/

你如果不知道远程主机的目录是什么样, ls命令可以列出223.6.6.6服务器的当前目录列表。例如:

sftp> ls //和查看本地操作命令一样
sftp> pwd //查询223.6.6.6的当前工作目录

如果想退出

# exit //退出机器,返回你原始机器界面。

scp

        scp具有和ssh一样的验证机制,从而可以实现2台机器安全的远程拷贝文件。

scp可以概括为:scp -P 端口 文件路径 用户名@主机地址:远程目录

如果想拷贝本地文件到另外一台ssh终端,可以使用以下命令:

# scp /renwole/mariadb.tar.gz root@223.6.6.6:/renwole123/
root@223.6.6.6’s password:【输入密码回车】
mariadb.tar.gz 8% 37MB 1.3MB/s 05:29 ETA

rz命令

        使用ZMODEM协议,将本地文件批量上传到远程Linux/Unix服务器,注意不能上传文件夹。

当我们使用虚拟终端软件,如Xshell、SecureCRT或PuTTY来连接远程服务器后,使用rz命令可以上传本地文件到远程服务器。输入rz回车后,会出现文件选择对话框,选择需要上传文件,一次可以指定多个文件,上传到服务器的路径为当前执行rz命令的目录。

命令格式:rz [选项]

rz命令选项

-+, --append:将文件内容追加到已存在的同名文件

-a,--ascii:以文本方式传输

-b, --binary:以二进制方式传输,推荐使用

--delay-startup N:等待N秒

-e, --escape:对所有控制字符转义,建议使用

-E, --rename:已存在同名文件则重命名新上传的文件,以点和数字作为后缀

-p, --protect:对ZMODEM协议有效,如果目标文件已存在则跳过 -

-q, --quiet:安静执行,不输出提示信息

-v, --verbose:输出传输过程中的提示信息

-y, --overwrite:存在同名文件则替换

-X, --xmodem:使用XMODEM协议

--ymodem:使用YMODEM协议

-Z, --zmodem:使用ZMODEM协议
 

sz命令

        过ZMODEM协议,可将多个文件从远程服务器下载到本地。注意不能下载文件夹,如果下载文件夹,请先打包再下载。

命令格式:sz [选项] [filelist]

sz命令选项

命令选项基本与rz相同,请参考上文rz的命令选项或者sz的manual,或者运行命令sz -h查看。
 

sz和rz命令在实际应用开发中非常实用,有时候我们会经常跑脚本统计数据,需要上传和下载一些大数据量的数据,这时候这两个命令就非常有用了。

变量

变量可分为两类

环境变量(全局变量)

        可以在创建它们的Shell 及其派生出来的任意子进程 Shell 中使用,环境变量又可分为自定义环境变量和 bash 内置的环境变量。
 

普通变量(局部变量)

        只能在创建它们的Shell函数或Shell脚本中使用,普通变量一般由开发者在开发脚本程序时创建。
 

1、环境变量

        环境变量一般是指用 export 内置命令导出的变量,用于定义 Shell 的运行环境,保证 Shell 命令的正确执行,Shell 通过环境变量来确定登录用户名、命令路径、终端类型、登录目录等,所有的环境变量都是系统全局变量,可用于所有子进程中,这包括编辑器、Shell 脚本和各类应用。

        

        环境变量可以在命令行中设置和创建,但用户退出o命令时这些变量值就会丢失,因此,如果希望永久保存环境变量,可在用户家目录下的 .bash_profile.bashrc (非用户登录模式特有,例如远程SSH)文件中,或者全局配置 /etc/bashrc (非用户登录模式特有,例如远程 SSH)或 /etc/profile文件中定义,在将环境变量放入上述的文件中后,每次用户登录时这些变量都将被初始化。

        按照系统规范,所有环境变量的名字均采用大写形式,在将环境变量应用于用户进程程序之前,都应该用export命令导出定义。

例如:正确的环境变量定义方法为export OLDGTRL=1

(1)设置环境变量

如果想要设置环境变量,就要在给变量赋值之后或在设置变量时使用 export 命令,另外,除了export命令。带 -x 选项的 declare 内置命令也可以完成同样的功能(注意:此处不要再前面加 $)
export 命令和 declare 命令的格式如下:

export 变量名=value
变量名=value ; export 变量名
declare -x 变量名=value

(2)设置环境变量(永久生效)

用户的环境变量配置

[root@www ~]$ ls /root/.bashrc         # 推荐在此文件中优先设置
/root/.bashrc
[root@www ~]$ ls /root/.bash_profile
/root/.bash_profile

全局的环境变量配置

[root@www ~]$ /etc/profile
[root@www ~]$ /etc/bashrc
[root@www ~]$ /etc/profile.d/

若要在登陆后初始化或显示加载内容,则把脚本文件放在 /etc/profile.d/ 下即可(无需加载执行权
限)

生产场景下(在Java环境中),自定义环境变量的示例。

export JAVA_HOME=/application/jdk
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
export RESIN=/applaction/resin

显示与取消环境变量

(1)通过 echo 或 printf 打印环境变量

[root@www ~]$ echo $HOME
/root
[root@www ~]$ echo $UID
0 [
root@www ~]$ echo $PWD
/root
[root@www ~]$ echo $SHELL
/bin/bash
[root@www ~]$ echo $USER
root
[root@www ~]$ printf "$HOME\n"
/root

(2)用env或set显示默认的环境变量

[root@www ~]$ env
XDG_SESSION_ID=17
HOSTNAME=www.oliven.com
TERM=xterm
...
[root@www ~]$ set
BASH=/bin/bash
...
[root@www ~]$ declare | head
BASH=/bin/bash
...

(3)用 unset 消除本地变量和环境变量

[root@www ~]$ echo $USER
root
[root@www ~]$ unset USER
[root@www ~]$ echo $USER
[root@www ~]$

环境变量初始化与对应文件的生效顺序

        在登录Linux系统并启动一个 bash shell 时,默认情况下 bash 会在若干个文件中查找环境变量的设置,这些文件可统称为系统环境文件,bash 检查的环境变量文件的情况取决于系统运行Shell 的方式,系统运行 Shell 的方式有 3 种。

(1) 通过系统用户登录后默认运行的 Shell

(2) 非登录交互式运行 Shell

(3) 执行脚本运行非交互式 Shell

source .bashrc         # 可以认为去执行.bashrc,使定义生效

2、普通变量

        定义本地变量

变量的赋值,一般有五种写法:

name=value
name1='value'
name_2="value"
_name_3=`cmd`
_na_me_4=$(cmd)

变量名一般是由字母、数字、下划线组成的,可以以字母或下划线开始。
 

命令别名

        别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。

命令格式:alias 别名=’原命令 -选项/参数

查看设置的别名:alias

删除别名:unalias 别名

别名永久化(强烈推荐):
alias的作用仅在该次登入的操作,即输入一次alias后,这个修改只在当前的Shell生效。如果重新开启一个 Shell,或者重新登录,则这些alias将无法使用。好在linux中提供alias永久化的方法:
<1>.若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。然后# source~/.bashrc
<2>.若要让每一位用户都生效别名,则把别名加在/etc/bashrc最后面,然后# source /etc/bashrc
 

快捷键的使用

history命令

        查阅命令历史记录

查询执行过的历史命令:

1、利用向上或向下光标键来进行查询。

2、第二种办法是执行“history [n]” 命令来查询。

命令格式:history (选项) (参数)

history命令的选项及参数

选项功能
-N显示历史记录中最近的N个记录
-c清空当前历史命令
-a将历史命令缓冲区中命令写入历史命令文件中
-r将历史命令文件中的命令读入当前历史命令缓冲区
-w将当前历史命令缓冲区命令写入历史命令文件中
-d删除历史记录中第offset个命令
-n读取指定文件
参数功能
n打印最近的n条历史命令

注意:如想查询某个用户在系统上执行了什么命令,可以使用root用户身份登录系统,检查Home目录下的用户主目录下的“.bash_history”文件,该文件记录了用户所使用的命令和历史信息。
 

断开长命令行
        对于符号比较多的长命令,尽管系统在到达行尾时会自动将长命令行换到下一行,但也可以使用反斜杠“\”再加回车,将一个较长的命令分成多行表达,增强命令的可读性,换行后系统自动显示提示符“>”,表示正在输入一个长命令,此时可继续在新行上输入命令的后续部分。

在一行输入多个命令
        若要在一行上输入和执行多条较短的命令,可使用分号来分隔命令

快捷方式

Ctrl+a         移动到当前行的开头
Ctrl+e         移动到当前行的结尾
Ctrl+l          清屏
Ctrl+u         剪切命令行中光标所在处之前的所有字符(不包括自身)
Ctrl+k         剪切命令行中光标所在处之后的所有字符(包括自身)
Ctrl+R         可以使用该快捷键来搜索历史命令

引用上一条命令的最后一个参数
方法1:!$
方法2:Alt+.
方法3:Esc,.

生产环境中,history命令记录操作时间、操作用户、操作IP

1、/etc/profile文件中加入以下内容


USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
export HISTTIMEFORMAT="[%F %T][`whoami`][${USER_IP}] "

2、执行:source /etc/profile

(效果)

[root@VM-8-15-centos ~]# history
1 [2020-12-25 18:10:27][root][111.18.44.17]
2 [2020-12-20 10:35:16][root][111.18.44.17] cat /etc/redhat-release
3 [2020-12-20 14:02:20][root][111.18.44.17] exit
4 [2020-12-24 09:39:17][root][111.18.44.17] cat /etc/redhat-release
5 [2020-12-24 10:06:17][root][111.18.44.17] awk 'NR==5' /etc/passwd
6 [2020-12-24 10:08:31][root][111.18.44.17] whereis ifconfig

通配符

        通配符是一种特殊语句,主要有星号(*)、问号(?)等表示,用来模糊搜索文件,当查找目录或文件时,可以使用通配符来代替一个或多个真正字符。

作用范围:目录和文件名

常见通配符具体含义及用法

字符含义
*匹符配任意字
匹配单个字符
[]匹配方括号中的任意一个,不能用于创建目录和文件
[^]匹配方括号中的任意一个字符或数字后进行取反,等同于[!],表示范围可以用".."或"—",用于查找和删除目录和文件,不用于创建目录和文件
[!]匹配方括号中的任意一个字符或数字后进行取反,等同于[^],表示范围可以用".."或"—",用于查找和删除目录和文件,不用于创建目录和文件
[? - ?]匹配方括号范围内任意一个,用于查询、删除,但不能用于创建目录和文件
{string,string}匹配括号中的任意一个字符串,表示一个范围时,字符串之间用".."


引号使用

符号作用
无引号
单引号,输出时,将单引号内的所有内容都原样输出,这称为强引用
双引号,输出双引号内的所有内容,如果内容中有变量,特殊转义符等,会先把变量,转移符等解析出结果,然后再输出最终内容,这成为强引用
`反引号,一般用于引用命令,执行的时候命令会被执行,与$()作用相同
$()与`作用相同

Linux中的用户和组的分类

Linux下的用户可以分为三类

1、超级用户 --- 用户名为root,它具有一切权限,只有进行系统维护(例如:建立用户等)或其他必要情形下才用超级用户登录,以避免系统出现安全问题。

2、系统用户 --- 是Linux系统正常工作所必需的内建的用户。

        主要是为了满足相应的系统进程对文件属主的要求而建立的,例如:bin、daemon、adm、lp等用户。系统用户不能用来登录。

3、普通用户 --- 是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。

Linux中的组有以下三种

1、基本组(私有组) --- 建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是基本组,基本组只容纳一个用户。当把其他用户加入到该组中,则基本组就变成了附加组。

2、附加组(共有组) --- 可以容纳多个用户,组中的用户都具有组所拥有的权利。。

3、系统组 --- 一般加入一些系统用户。

Linux中用户的用户组的配置文件

每个用户都有一个UID数值:

        超级用户的UID --- 0

        系统用户的UID --- 1 ~ 999

        普通用户的UID --- ≥ 1000

在Linux中,用户账号、密码、用户组信息和用户组密码均是存放在不同的配置文件中的。

文件功能文件名称
用户账号文件/etc/passwd
用户密码文件/etc/shadow
用户组账号文件/etc/group
用户组密码文件/etc/gshadow

1)用户帐号文件 --- /etc/passwd

        passwd 是一个文本文件,用于定义系统的用户账号,由于所有用户都对passwd有读权限,所以该文件中只定义用户账号,而不保存口令。

passwd文件中:

        每行定义一个用户账号

每行由7个字段组成,字段之间用":"分割,其格式如下:

账号名称:密码:UID:GID:个人资料:主目录:Shell

字段说明:

账号名称:用户Linux系统使用时的名称。

密码:以前是以加密格式保存密码的位置,现在密码保存在/etc/shadow文件中,此处只是密码占位符“x”或“*”。若为“x”,说明密码经过了shadow的保护。

UID:用户的标识,是一个数值,用它来区分不同的用户

GID:用户所在基本组的标识,是一个数值,用它来区分不同的组,相同的组具有相同的GID。

个人资料:可以记录用户的完整姓名、地址、办公室电话、家庭电话等个人信息。

主目录:类似Windows 的个人目录,通常是/home/username,这里username是用户名,用户执行“cd~”命令时当前目录会切换到个人主目录。

Shell:定义用户登录后激活的Shell,默认是Bash Shell
 

2)用户密码文件 --- /etc/shadow

每行定义了一个用户信息,行中各字段用“:”隔开,其格式如下:

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

        为提高安全性,用户真实的密码采用MD5加密算法加密后,保存在配置文件中。只有root用户可以读取。

/etc/shadow文件中的每行9个字段的含义分别为:

字段含义
登录名登录名
加密口令使用SHA-512/SHA-256/MD5算法加密后的密码,若为空,表示该用户无需密码即可登录,若为"*"表示该账号不能用于登录系统若为"! !"表示该账号密码已被锁定
最后一次修改时间最近一次更改密码的日期,以距离1970年1月1日的天数表示
最小时间间隔密码在多少天内不能被修改。默认值为0,表示不限制
最大时间间隔密码在多少天后必须被修改。默认值为99999,表示不进行限制
警告时间提前多少天警告用户密码将过期,默认值为7天,0表示不提供警告
不活动时间密码过期多少天后禁用此用户
失效时间密码失效日期,以距离1970年1月1日的天数表示,默认为空,表示永久可用
标志保留未用,以便以后发展之用

Linux 查看用户上次修改密码的日期

# date -u -d "1970-01-01 UTC $((18256 * 86400 )) seconds"
2019年 12月 26日 星期四 00:00:00 UTC

3)用户组帐号文件 --- /etc/group

系统中的每一个文件都有一个用户和一个组的属主。使用“ls –l”命令可以看到每一个文件的属主和组。
系统中的每个组,在/etc/group文件中有一行记录
任何用户均可以读取用户组账户信息配置文件。
用户组的真实密码保存在/etc/gshadow配置文件中

group文件字段说明

字段

说明

Groupname组的名字
Passwd组的加密口令
GID是系统区分不同组的ID,在/etc/passwd域中的GID字段是用这个数来指定用户的基本组
Userlist是用","分开的用户组,列出的是附加组的成员


用户登录Linux系统的过程

Linux系统采用纯文本文件来保存账号的各种信息,其中最重要的文件有:
/etc/passwd、 /etc/shadow、/etc/group

Linux用户登入系统过程实质是系统读取、核对这几个文件的过程,其过程如下:
出现登录系统的画面提示输入账号,输入账号与密码;

Linux先寻找/etc/passwd里面是否有该账号名,若没有则退出登录,若有则将该账号对应的UID(User ID)与GID(Group ID)、用户主目录、shell设定一并读出;

Linux 进入/etc/shadow 里面找出登录账号与UID相对应的记录,然后核对一下刚刚输入的密码与此文件的密码是否符合;以上核定没有问题,用户正式进入系统。
 

用户管理

useradd命令

        添加新用户

命令格式:useradd [选项]

useradd命令常用选项

选项功能
-c(注释信息)设定与用户相关的说明信息(如,真实姓名、邮箱地址等)。
-d(目录)设定用户的家目录(默认为/home/用户名)。
-e(YYYY-MM-DD)设置用户的失效日期,此日期后将不能使用该账号。
-f(天数)指定密码到期后多少天账号被禁用,若指定为0,则表示账号到期后被立即禁用;若指定为-1,则表示账号过期后不被禁用(即密码永不过期)
-g(组名或GID号)为用户指定所属的基本组,该组在指定时必须已存在。
-G(组名或GID号列表)为用户指定所属的附加组,各组在指定时已存在,附加组可以有多个,组之间用","分隔。
-M不创建用户家目录
-N不创建与用户名同名的基本组
-p(密码)指定用户的登录密码
-s(shell名)指定用户登录后使用的Shell,默认是bash。
-u(用户号)设置账号的UID,默认是已有用户的最大UID加1。如果同时有-o选项,则可以重复使用其他用户的标识号。

示例1、新建一个用户zhang3,查看passwd、shadow文件中的变化,并确认该用户的家目录中的初始配置文件。

[root@localhost ~]# useradd zhang3
[root@localhost ~]# tail -1 /etc/passwd
zhang3:x:1001:1001: :/home/zhang3:/bin/bash
[root@localhost ~]# tail -1 /etc/shadow
zhang3: ! ! :16925:0:99999:7: : :        //注意密码字段的内容为"! !",表示密码尚未设置
[root@localhost ~]# ls -ld /home/zhang3
drwx------.  3 zhang3 zhang3 74 11月 4 15:58 /home/zhang3
[root@localhost ~]# ls -A /home/zhang3
bash_logout         .bash_profile     .bashrc        .mozilla

useradd命令做了下面几件事

在 /etc/passwd 和/etc/group文件中增添了一行记录;
为新用户创建家目录(默认是“/home/用户名”,除非特别设置),并从 /etc/skel中将.bash_logout,
.bash_profile、.bashrc和.mozilla等4个隐藏文件复制到用户家目录,以便为用户的会话提供环境变量;
为新用户添加一个邮件池目录;
创建一个和用户名同名的基本组(除非特别指定其他组名)
 

示例2:新建一个用户li4,并指定用户家目录为/usr/li4

示例3:新建一个用户wang5,指定其UID为1005、登录Shell为/bin/bash、密码为123.com,账号永不过期。

示例4:新建一个辅助管理员用户admin,将其用户家目录指定为/admin,基本组指定为wheel,附加组同时属于adm组和root组。

示例5:新建一个用于访问FTP的zhao6用户,禁止其登录且不创建家目录。

#useradd -d /usr/li4 li4
#useradd -u 1005 -s /bin/bash -p $(openssl passwd -1 -salt $(openssl rand - base64 10) '123.com') -f -1 wang5
#useradd -d /admin -g wheel -G adm,root admin st3
#useradd -M -s /sbin/nologin zhao6

passwd命令

        为用户账号设置密码

命令格式:passwd [账户名]

passwd命令的常用选项

选项功能
-d清空指定用户的口令。这与未设置口令的账户不同,未设置口令的账户无法登录系统,而口令为空的账户可以。
-e强迫用户下次登录时必须修改口令。
-i口令过期后多少天停用账户。
-l锁定(停用)用户账户。
-n密码的最小生存时间。
-S显示账户口令的简短状态信息(是否被锁定)。
-u解锁用户账户。

usermod命令

        修改用户属性

命令格式:usermod [选项] username

usermod命令的常用选项

常用的选项包括-c,-d,-m,-g,-G,-s,-u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,还可以使用如下选项:

选项功能
-l(新用户名)更改账户的名称,必须在该用户未登录的情况下才能使用。
-L锁定(暂停)用户账户,使其不能登录使用。
-U解锁用户账户。


userdel命令

        删除用户账号

命令格式:userdel [-r] 账户名

命令选项:

-r --- 在删除该账户的同时,一并删除该账户对应的主目录。
 

su命令

        用户间切换

命令格式:su [用户名]

        从root用户切换到任何用户不需要密码验证,而从普通用户到root或其他普通用户均需要输入目标用户的密码且验证成功后才可切换。

su命令和su -命令区别

        su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root身份了。

sudo命令

        控制用户对系统命令的使用权限

        sudo:控制用户对系统命令的使用权限,root允许的操作。通过sudo可以提高普通用户的操作权限,不过这个权限是需要进行配置才可使用。

配置sudo的两种方式:

        1、visudo         建议使用,会做语法检查。

        2、vi /etc/sudoer

sudo配置文件/etc/sudoers

        (1)命令别名

        别名规则的定义格式:
        Alias_Type NAME=item1,item2,...
        或者
        Alias_Type NAME=item1,item2,item3:NAME item4,item5
        其中:
        Alias_Type是指别名类型,包括四种:Host_Alias、User_Alias、Runas Aliasi和Cmnd_Alias.
NAME就是别名。

        NAME的命名是包含大写字母、下划线以及数字,但必须以一个大写字母开头,比如ADMIN、SYS1和NETWORKING都是合法的,而sYS和6 ADMIN是非法的。

        ① Host_Alias
                定义主机别名的例子如下:
                Host_Alias HT1=localhost,ztg,192.168.0.0/24
                主机别名是HT1,“=”号右边是成员。
                Host_Alias HT1= localhost,ztguang,192.168.10.0/24:HT2=ztg2,ztg3
                定义了两个主机别名HT1和HT2,别名之间用“:”号隔开。

        ② User_Alias
                用户别名,别名成员可以是用户,用户组(前面要加%号)。
                User_Alias ADMIN=ztg,ztguang
                定义用户别名ADMIN,有两个成员ztg和ztguang,这两个成员要在系统中确实存在。
                User_Alias PROCESSES= ztg1
                定义用户别名PROCESSES,有一个成员ztg1,这个成员要在系统中确实存在。

        ③ Runas_Alias
                用来定义runas别名,这个别名是指sudo允许切换到的用户;
                Runas_Alias RUN_AS = root
                定义runas别名RUN_AS,有一个成员root。

        ④ Cmnd_Alias
                定义命令的别名,这些命令必须是系统存在的文件,要用绝对路径,文件名可以用通配符表示。
                Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig
                Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

        (2)授权规则

        授权规则的定义格式:

        授权用户 主机=命令动作

或者

        授权用户 主机=[(切换到哪些用户或用户组)] [是否需要密码验证] 命令1,[(切换到哪些用户或用户组)] [是否需要密码验证] [命令2],[(切换到哪些用户或用户组)] [是否需要密码验证] [命令3] …

        这三个要素缺一不可,但在动作之前也可以指定切换到特定用户下,在这里指定切换的用户要用( )号括起来,如果不需要密码直接运行命令的,应该加NOPASSWD:参数,但这些可以省略。

sudo的客户端应用

        sudo -l:列出当前用户可以执行的命令。只有在sudoers里的用户才能使用该选项。
        sudo -u 用户名 命令:以指定用户的身份执行命令。后面的用户是除root以外的,可以是用户
名,也可以是UID。
        sudo -k:清除存活期时间,下次再使用sudo时要再输入密码。
        sudo -b 命令:在后台执行指定的命令。
        sudo -p 提示语 <操作选项>:可以更改询问密码的提示语,其中%u会代换为使用者账号名称。
%h会显示主机名称

用户组管理

groupadd命令

        创建用户组

命令格式: groupadd [-r] 用户组名称

groupadd命令的选项

-g (GID) --- 指定新用户组的组标识号(GID),默认值是已有的最大的GID加1。
-r --- 建立一个系统组账号,与-g不同时使用时,则分配一个1~999的GID。
 

gpasswd命令

        添加/删除组成员

只有root用户和组管理员才能够使用这个。

命令格式: gpasswd [选项] [用户] [组]

gpasswd命令的选项

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

groupmod命令

        修改用户组属性

命令格式: groupmod 选项 用户组

groupmod命令的常用选项

-g (GID) --- 为用户组指定新的组标识号。
-n (新用户组) --- 将用户组的名字改为新名字修改用户组的名称和用户组的GID值
 

groupdel命令

        删除组账户

命令格式: groupdel 用户组名

用户和组账户的信息显示

命令格式作用
users|w|who显示当前用户信息(三条命令)
id [用户名]显示当前用户或指定用户的ID,以及所属组的ID
groups [用户名]显示当前用户或指定用户所属组账号的信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学IT的小徐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值