Linux用户管理

Linux用户管理

用户管理篇

Root用户登录系统后可以做很多事

  • 写文档
  • 听音乐
  • 聊QQ
  • 聊微信
  • 写代码
  • 上班五分钟,闲聊俩小时
  • 打卡下班
  • ...

当然了,完全可以坐在办公室,远程连接服务器工作

多用户多任务

多个用户使用同一个操作系统,每个人做自己的事。

每个人都有自己的账号密码,权限也不一样,好比老板权限最大,员工权限较低

多用户大多都是远程登录去控制服务器

Linux的用户管理

Linux系统不同用户权限不一样,好比小张想用我的服务器,我为了保护隐私与资料安全,开通普通用户(useradd xiaozhang),普通用户权限较低,随便他折腾了。

还有计算机程序默认创建的用户,如ftp,nobody等等

用户信息存放在/etc/passwd文件中

用户角色划分

  • root
  • 普通用户
  • 虚拟用户

现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源。

普通用户在所分配到的资源内进行各自的操作,相互之间不受影响。但是这些普通用户的权限是有限制的,且用户太多的话,管理就不便,从而引入root用户。

此用户是唯一的,且拥有系统的所有权限。root用户所在的组称为root组。

“组”是具有相似权限的多个用户的集合。

root的权利

Linux系统的特性就是可以满足多个用户,同时工作,因此Linux系统必须具备很好的安全性。

在安装RHEL7时设置的root管理员密码,这个root管理员就是所有UNIX系统中的超级用户,它拥有最高的系统所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭进程,开启/禁用硬件设备等等。

因此“能力越大,责任越大”,root权限必须很好的掌握,否则一个错误的命令可能会摧毁整个系统。

root为什么叫root?

  • UID,user Identify,好比身份证号
  • GID,group Identify,好比户口本的家庭编号

  • 在Linux系统中,用户也有自己的UID身份账号且唯一

  • 在Linux中UID为0,就是超级用户,如要设置管理员用户,可以改UID为0,建议用sudo
  • 系统用户UID为1~999 Linux安装的服务程序都会创建独有的用户负责运行。
  • 普通用户UID从1000开始:由管理员创建(centos7),最大值1000~60000范围
  • centos6创建普通用户是500开始
UID 用户id号,身份证号
GID 用户组id号,部门编号
root 用户、组、id都为0,属于老板

用户组group

为了方便管理属于同一组的用户,Linux 系统中还引入了用户组的概念。通过使用用 户组号码(GID,Group IDentification),我们可以把多个用户加入到同一个组中,从而方 便为组中的用户统一规划权限或指定任务。

假设有一个公司中有多个部门,每个部门中又 有很多员工。

如果只想让员工访问本部门内的资源,则可以针对部门而非具体的员工来设 置权限。

例如,可以通过对技术部门设置权限,使得只有技术部门的员工可以访问公司的 数据库信息等。

Linux管理员在创建用户时,将自动创建一个与其同名的用户组,这个用户组只有该用户一个人,

windows下的管理员

Linux/unix是一个多用户、多任务的操作系统。

root:默认在Unix/linux操作系统中拥有最高的管理权限。可以理解为qq群的群主⬇️⬇️⬇️

普通用户:是管理员或者具备管理权限的用户所创建的,只能读、看,不能增、删、改。

用户和组的关系

  • 一对一,一个用户可以存在一个组里,组里就一个成员
  • 一对多,一个用户呆在多个组里面
  • 多对一,多个用户在一个组里,这些用户和组有相同的权限
  • 多对多,多个用户存在多个组里

常用命令解释器

/bin/sh 默认 
/bin/bash 默认
/sbin/nologin 虚拟用户
/dash ubuntu 
csh unix
tsh unix

用户信息配置文件

/etc/passwd文件内容

/etc/passwd 用户信息
/etc/shadow  用户密码信息
/etc/group 用户组信息
/etc/gshadow 用户组密码信息
/etc/skel

/etc/passwd字段信息解释

字段名 解释
用户名 对应UID,是用户登录系统的名字,系统中唯一不得重复
用户密码 存放在/etc/shadow文件中进行保护密码
用户UID 用户ID号,由一个整数表示
用户组GID 范围、最大值和UID一样,默认创建用户会创建用户组
用户说明 对此用户描述
用户家目录 用户登录后默认进去的家目录,一般是【/home/用户名】
shell解释器 当前登录用户使用的解释器。centos/redhat系统中,默认的都是bash。若是禁止此用户登录机器,改为/sbin/nologin即可

用户/密码文件权限

#用户信息文件,权限是644,所有人可读,有一定安全隐患
[root@pylinux ~]# ll /etc/passwd
-rw-r--r-- 1 root root 1698 10月 13 2019 /etc/passwd

#用户密码文件,除了root用户,其他用户默认是没有任何权限,
[root@pylinux ~]# ll /etc/shadow
---------- 1 root root 892 10月 20 2019 /etc/shadow

#用户密码文件
[root@pylinux ~]# tail -5 /etc/shadow
mysql:!!:17980::::::
yu:$1$Kx9cz6sK$GE3jiHtjJikn9Ai4ECINn/:18031:0:99999:7:::
epmd:!!:18074::::::
rabbitmq:!!:18074::::::
py:!!:18182:0:99999:7:::

用户组/组密码文件

#用户组信息文件
/etc/group

#用户组密码文件
/etc/gshadow

对于大型服务器,用户和用户组数量较多,需要定制复杂的权限控制,会用到组密码

用户管理的命令

命令 作用
useradd 创建用户
usermod 修改用户信息
userdel 删除用户及配置文件
passwd 更改用户密码
chpasswd 批量更新用户密码
chage 修改用户密码属性
   
id 查看用户UID、GID、组信息
su 切换用户
sudo 用root身份执行命令
visudo 编辑sudoers配置文件

用户创建家目录过程

1.命令创建
useradd chaoge

2.系统把/etc/skel目录下的内容复制到创建的用户家目录
[root@luffycity skel]# pwd
/etc/skel
[root@luffycity skel]# ls -la
total 24
drwxr-xr-x.  3 root root   78 Oct 17 13:59 .
drwxr-xr-x. 85 root root 8192 Oct 17 14:03 ..
-rw-r--r--.  1 root root   18 Apr 11  2018 .bash_logout
-rw-r--r--.  1 root root  193 Apr 11  2018 .bash_profile
-rw-r--r--.  1 root root  231 Apr 11  2018 .bashrc
drwxr-xr-x.  4 root root   39 Oct 13 17:42 .mozilla

3.修改权限拥有者
[root@luffycity skel]# ls /home/yu/ -la
total 16
drwx------. 3 yu   yu    99 Oct 16 18:36 .
drwxr-xr-x. 4 root root  28 Oct 16 18:35 ..
-rw-------. 1 yu   yu    77 Oct 16 18:36 .bash_history
-rw-r--r--. 1 yu   yu    18 Apr 11  2018 .bash_logout
-rw-r--r--. 1 yu   yu   193 Apr 11  2018 .bash_profile
-rw-r--r--. 1 yu   yu   231 Apr 11  2018 .bashrc
drwxr-xr-x. 4 yu   yu    39 Oct 13 17:42 .mozilla

useradd命令

useradd命令用于Linux中创建的新的系统用户。

useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码,而可用userdel删除帐号。

使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

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

创建用户流程

  • 1.useradd haoge
  • 2.系统读取/etc/login.defs(用户定义文件),和/etc/default/useradd(用户默认配置文件)俩文件中定义的规则创建新用户
  • 3.向/etc/passwd和/etc/group文件中添加用户和组信息,向/etc/shadow和/etc/gshadow中添加密码信息
  • 4.根据/etc/default/useradd文件中配置的信息创建用户家目录
  • 5.把/etc/skel中所有的文件复制到新用户家目录中

文件/etc/login.defs

[root@pylinux ~]# grep -v "^#" /etc/login.defs |grep -v "^$"
MAIL_DIR    /var/spool/mail        #用户的邮件存放位置
PASS_MAX_DAYS    99999                    #密码最长使用天数
PASS_MIN_DAYS    0                            #更换密码最短时间
PASS_MIN_LEN    8                        #密码最小长度
PASS_WARN_AGE    7                            #密码失效前几天开始报警
UID_MIN                  1000        #UID开始位置
UID_MAX                 60000        #UID结束位置
SYS_UID_MIN               201        
SYS_UID_MAX               999
GID_MIN                  1000
GID_MAX                 60000
SYS_GID_MIN               201
SYS_GID_MAX               999
CREATE_HOME    yes                    #是否创建家目录
UMASK           077            #家目录的umask值
USERGROUPS_ENAB yes
ENCRYPT_METHOD MD5            #密码加密算法
MD5_CRYPT_ENAB yes

文件/etc/default/useradd

[root@pylinux ~]# grep -v "^#" /etc/default/useradd | grep -v "^$"
GROUP=100        
HOME=/home                    #在/home目录下创建家目录
INACTIVE=-1                    #开启用户过期
EXPIRE=                            #用户终止日期
SHELL=/bin/bash            #新用户默认解释器
SKEL=/etc/skel            #用户环境变量文件存放目录
CREATE_MAIL_SPOOL=yes

创建用户有关的目录/etc/skel

此目录存放新用户需要的基础环境变量文件,添加新用户的时候,这个目录下所有文件自动被复制到新家目录下,且默认是隐藏文件,以点开头。

[root@pylinux ~]# ls -la /etc/skel/
总用量 28
drwxr-xr-x.  2 root root  4096 4月  11 12:59 .
drwxr-xr-x. 97 root root 12288 7月  11 05:14 ..
-rw-r--r--.  1 root root    18 4月  11 08:53 .bash_logout        #用户环境变量文件,退出加载
-rw-r--r--.  1 root root   193 4月  11 08:53 .bash_profile        #环境变量文件,登录加载
-rw-r--r--.  1 root root   231 4月  11 08:53 .bashrc                    #环境变量文件,登录加载

面试题,如何恢复用户命令提示符

1.正常切换用户
su - yu

[root@pylinux ~]# su - yu
[yu@pylinux ~]$

2.删除用户家目录下环境变量文件
[yu@pylinux ~]$ rm -rf .bash*

3.退出登录,再次登录,发现命令提示符故障
[yu@pylinux ~]$ logout
[root@pylinux ~]#
[root@pylinux ~]#
[root@pylinux ~]# su - yu
上一次登录:三 7月 11 06:19:08 CST 2018pts/1 上
-bash-4.2$

4.恢复方法
-bash-4.2$ cp /etc/skel/.bash*  ~/
-bash-4.2$ logout
[root@pylinux ~]# su - yu
上一次登录:三 7月 11 06:20:10 CST 2018pts/1 上
[yu@pylinux ~]$

用户管理命令案例

useradd命令

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

普通创建用户

[root@luffycity ~]# useradd chaoge

[root@luffycity ~]# ls -l /home/
total 0
drwx------. 3 chaoge chaoge  78 Oct 17 14:42 chaoge

[root@luffycity ~]# grep -w chaoge /etc/passwd        #  grep过滤 -w必须全字符串匹配
chaoge:x:1002:1002::/home/chaoge:/bin/bash

[root@luffycity ~]# grep -w chaoge  /etc/shadow        #默认没密码,通过passwd设置密码
chaoge:!!:18186:0:99999:7:::

[root@luffycity ~]# grep -w chaoge  /etc/group
chaoge:x:1002:

[root@luffycity ~]# id chaoge        #查看用户信息
uid=1002(chaoge) gid=1002(chaoge) groups=1002(chaoge)

用户且指定uid和属组

1.创建用户组
groupadd -g 801 old

2.创建新用户
useradd -g old -u 888 oldchao

3.检查用户信息
[root@luffycity ~]# id oldchao
uid=888(oldchao) gid=801(old) groups=801(old)

-M -s参数用法

#创建用户禁止登陆,且不创建家目录
[root@luffycity ~]# useradd -M -s /sbin/nologin oldyu
[root@luffycity ~]# grep -w oldyu /etc/passwd
oldyu:x:1003:1003::/home/oldyu:/sbin/nologin
[root@luffycity ~]# ls /home/    #没有oldyu
alex  chaoge  oldchao  yu

多个参数用法,指定用户信息

[root@luffycity ~]# useradd -u 789 -s /bin/sh -c learn_linux -G root,old -e "2019/10/18" -f 2 -d /tmp/luffychao luffychao

[root@luffycity ~]# id luffychao    #检查用户信息
uid=789(luffychao) gid=1004(luffychao) groups=1004(luffychao),0(root),801(old)

-D参数用来修改配置文件/etc/default/useradd文件的默认值

useradd -D 参数选项

-e default_expire_date 用户停止日期
-s default_shell  用户登录后使用的解释器

-D使用案例

[root@pylinux ~]# grep -i "shell" /etc/default/useradd        #检查默认创建用户的登录解释器
SHELL=/bin/bash
[root@pylinux ~]#
[root@pylinux ~]#
[root@pylinux ~]# useradd -D -s /sbin/nologin        #修改默认解释为禁止登录
[root@pylinux ~]# grep -i "shell" /etc/default/useradd        #检查配置文件参数
SHELL=/sbin/nologin
[root@pylinux ~]#
[root@pylinux ~]# useradd testyu                                #此时创建新用户
[root@pylinux ~]# grep "testyu" /etc/passwd            #检查信息,发现是禁止登录
testyu:x:1002:1002::/home/testyu:/sbin/nologin
[root@pylinux ~]# useradd -D -s /bin/bash                #最好还是改回去,防止后面出错
[root@pylinux ~]# grep -i "shell" /etc/default/useradd     #验证是否修改回来
SHELL=/bin/bash

usermode命令

usermod命令用于修改系统已存在的用户信息,只能修改未使用中的用户

语法
usermod(选项)(参数)
选项
-c<备注>:修改用户帐号的备注文字;
-d<登入目录>:修改用户登入时的目录;
-e<有效期限>:修改帐号的有效期限;
-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
-g<群组>:修改用户所属的群组;
-G<群组>;修改用户所属的附加群组;
-l<帐号名称>:修改用户帐号名称;
-L:锁定用户密码,使密码无效;
-s<shell>:修改用户登入后所使用的shell;
-u<uid>:修改用户ID;
-U:解除密码锁定。

案例

[root@luffycity ~]# usermod -u 788 -s /sbin/nologin  -c changeUser -G old -e "2020/10/10" -f 10 -d /home/luffychao luffychao
[root@luffycity ~]#
[root@luffycity ~]#
[root@luffycity ~]# id luffychao
uid=788(luffychao) gid=1004(luffychao) groups=1004(luffychao),801(old)
[root@luffycity ~]#
[root@luffycity ~]# grep -w luffychao /etc/passwd
luffychao:x:788:1004:changeUser:/home/luffychao:/sbin/nologin

userdel命令

删除用户与相关文件

  • 建议注释/etc/passwd用户信息而非直接删除用户
语法
userdel(选项)(参数)
选项
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。

案例

[root@luffycity ~]# userdel oldyu        #保留家目录
[root@luffycity ~]# userdel -rf oldchao    #强制删除用户与家目录

groupadd命令

groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。

语法
groupadd - 建立新群组
groupadd [ -ggid [ -o ]] [ -r ] [ -f ] group [[ ]]

选项
-g:指定新建工作组的id;
-r:创建系统工作组,系统工作组的组ID小于500;
-K:覆盖配置文件“/ect/login.defs”;
-o:允许添加组ID号不唯一的工作组。

案例

group -g 801 old

groupdel命令

删除用户组

groupdel 组名

passwd命令

passwd命令修改用户密码和过期时间等,root可以改普通用户,反之不可以

语法
passwd(选项)(参数)
选项
-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。
-i:密码过期多少天后禁用账户
-x:设置x天后可以修改密码
-n:设置n天内不得改密码
-e:密码立即过期,强制用户修改密码
-w:用户在密码过期前收到警告信息的天数

案例

改自己的密码

[root@luffycity ~]# passwd            #对当前用户改密
Changing password for user root.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.        #即使密码太简单,也能改

修改普通用户密码

[root@luffycity ~]# passwd luffychao
Changing password for user luffychao.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

列出用户密码信息

[root@luffycity ~]# passwd -S luffychao
luffychao PS 2019-10-17 0 99999 7 10 (Password set, SHA512 crypt.)

一条命令设置密码,企业常用

[root@luffycity ~]# echo "123123" |passwd --stdin luffychao        #--stdin从标准输入中获取123123
Changing password for user luffychao.
passwd: all authentication tokens updated successfully.

passwd实际场景

7天内用户不得改密码,60天后可以修改,过期前10天通知用户,过期30天后禁止用户登录

[root@luffycity ~]# passwd -n 7 -x 60 -w 10 -i 30 luffychao
Adjusting aging data for user luffychao.
passwd: Success

[root@luffycity ~]# passwd -S luffychao
luffychao PS 2019-10-17 7 60 10 30 (Password set, SHA512 crypt.)

批量更新密码命令

1.查看当前机器的用户信息
tail /etc/passwd 

2.批量改密码,ctrl+d结束输入
[root@pylinux ~]# chpasswd
yu:123
py:456
testyu:789

用户查询相关命令

id命令

id命令用于检查用户和组以及对应的UID,GID等信息

[root@pylinux ~]# id yu
uid=1000(yu) gid=1000(yu) 组=1000(yu)

[root@pylinux ~]# id -u yu    #显示用户id
1000
[root@pylinux ~]# id -g yu    #显示组id
1000    
[root@pylinux ~]# id -un yu    #显示用户名
yu    
[root@pylinux ~]# id -gn yu    #显示组名
yu

whoami、who、w、last、lastlog

whoami显示可用于查看当前登录的用户,我是谁

[root@pylinux ~]# whoami
root

w命令显示当前以登录的用户

[root@pylinux ~]# w
 04:15:01 up 15 days, 18:03,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    122.71.x5.xx     04:05    5.00s  0.07s  0.00s w

1.显示当前系统时间、系统从启动到运行的时间、系统运行中的用户数量和平均负载(1、5、15分钟平均负载)
2.第二行信息
user:用户名
tty:用户使用的终端号
from:表示用户从哪来,远程主机的ip信息
login:用户登录的时间和日期
IDLE:显示终端空闲时间
JCPU:该终端所有进程以及子进程使用系统的总时间
PCPU:活动进程使用的系统时间
WHAT:用户执行的进程名称

who

[root@pylinux ~]# who
root     pts/0        2018-07-12 04:05 (122.71.x5.xx)

名称      用户终端            用户登录的系统时间  从哪来的机器ip

last、lastlog命令查看用户详细的登录信息

案例

#last命令显示已登录的用户列表和登录时间
[root@pylinux ~]# last
root     pts/0        122.71.x5.xx     Thu Jul 12 04:05   still logged in
root     pts/0        122.71.x5.xx     Thu Jul 12 04:02 - 04:05  (00:02)
root     pts/1        122.71.x5.xx     Wed Jul 11 16:56 - 16:57  (00:00)

wtmp begins Sun Jul  8 06:23:25 2018
lastlog命令显示当前机器所有用户最近的登录信息

[root@pylinux ~]# lastlog
用户名           端口     来自             最后登陆时间
root             pts/0    122.71.65.73     四 7月 12 04:05:09 +0800 2018
bin                                        **从未登录过**

yu               pts/0                     四 7月 12 04:05:51 +0800 2018
epmd                                       **从未登录过**
rabbitmq                                   日 9月 29 03:42:01 +0800 2019
py               pts/0                     四 7月 12 04:06:02 +0800 2018
testyu                                     **从未登录过**

Linux用户身份切换命令

su命令

su命令用于切换到指定用户

语法
su(选项)(参数)
选项
-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量;
-s<shell>或--shell=<shell>:指定要执行的shell;
--help:显示帮助;
--version;显示版本信息。

案例

root切换普通用户,无须密码

第一种(不推荐)

su 用户

[root@luffycity ~]# su chaoge        #直接切换,没有完全切换环境变量

[chaoge@luffycity root]$ env|egrep "USER|MAIL|PWD|LOGNAME"
USER=chaoge
MAIL=/var/spool/mail/root
PWD=/root
LOGNAME=chaoge

第二种(标准切换法)

su - 用户

#用户切换
[root@luffycity ~]# su - chaoge
[chaoge@luffycity ~]$ pwd
/home/chaoge

[chaoge@luffycity ~]$ env|egrep "USER|MAIL|PWD|LOGNAME"
USER=chaoge
MAIL=/var/spool/mail/chaoge
PWD=/home/chaoge
LOGNAME=chaoge

普通用户切换其他用户,需要输入用户密码

[chaoge@luffycity root]$ su - root
Password:
Last login: Thu Oct 17 09:39:35 CST 2019 from 192.168.178.1 on pts/1
[root@luffycity ~]#

visudo命令

visudo用于编辑/etc/sudoers文件,且提供语法检测,用于配置sudo命令

给haoge用户配置sudo使用权

1.直接输入visudo命令,相当于打开vim /etc/sudoers
找到如下行
 89 ## The COMMANDS section may have other options added to it.
 90 ##
 91 ## Allow root to run any commands anywhere
 92 root    ALL=(ALL)       ALL

 2.添加你想让执行sudo命令的用户
 89 ## The COMMANDS section may have other options added to it.
 90 ##
 91 ## Allow root to run any commands anywhere
 92 root    ALL=(ALL)       ALL
 93 chaoge  ALL=(ALL)       ALL

 3.保存退出,使用vim/vi的模式,此时已经可以用chaoge用户,使用sudo命令了

sudo配置文件

用户或组 机器=(角色) 允许执行命令
User machine= Commands
oldboy ALL=(ALL) /usr/sbin/useradd、/usr/sbin/userdel

配置sudo目的在于即能让运维方便干活(权限不足问题),又不威胁系统安全(权限把控)

sudo命令

sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。

普通用户不需要root密码即可用root权限执行命令。

语法
sudo(选项)(参数)
选项
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。

案例

使用sudo命令

[root@luffycity ~]# su - chaoge
Last login: Thu Oct 17 16:55:26 CST 2019 on pts/0

[chaoge@luffycity ~]$ ls /root/
ls: cannot open directory /root/: Permission denied

[chaoge@luffycity ~]$ sudo ls /root

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for chaoge:
123  123456  456  anaconda-ks.cfg
  • 配置了/etc/sudoers文件后,可以对用户命令提权,sudo 命令
  • 想要切换root执行操作,可以sudo su - ,需要输入当前用户密码

image-20191105105325938

Centos7忘记root密码怎么办

第一,重启linux,进入系统的GRUB菜单界面,按下小写字母e进入编辑界面

image-20191105105951566

第二,按下方向键,找到以字符串Linux16开头的行,光标移动到结尾,然后输入init=/bin/bash enforcing=0

代表登录系统后,加载bash解释器,然后关闭selinux

image-20191105112214488

第三,按下ctrl+x组合键以单用户模式启动Linux

第四,输入如下命令,重新挂载根目录,进入可写状态,因为默认单用户模式是只读的

mount -o rw,remount / #重新挂载
passwd root                        #修改密码
exec /sbin/init                #重启

第五,更改完毕密码后,重启系统

如果在第二步,没有添加enforcing参数的话,则需要额外的再添加命令
touch /.autorelabel 
告诉系统下次启动重新标记系统所有相关文件,因为selinux在开启时,修改root密码引发安全报错
如果加了enforcing=0,则代表关闭了selinux,不需要再创建 /.autorelabel文件了

第六,重启机器,验证新的密码

image-20191105113502278

posted @ 2022-07-04 23:40  xiaohaoge  阅读(94)  评论(0编辑  收藏  举报