• Linux用户权限切换


    相关知识

    通过学习,你将掌握如下知识点:Linux用户登陆的三种方式

    图形化界面登录

    Linux中添加用户后,用户在图形界面登录系统的方式和Windows一样,都是选择要登录的用户后直接输入登录密码即可。

    案例演示

    1: 添加一个新用户,并且设置登录密码,然后在图形界面登录。

    1. root@evassh-12053448:~# useradd newuser #新建用户
    2. root@evassh-12053448:~# passwd newuser #添加密码
    3. Enter new UNIX password:
    4. Retype new UNIX password:
    5. passwd: password updated successfully

    使用login命令登录

    login命令是让用户登录系统,可通过它的功能随时更换登入身份。当/etc目录里含名称为nologin的文件时,系统只允许root帐号登入系统,其他用户一律不准登入。

    当使用login命令登录系统后,可以使用logout命令或者exit命令来退出当前用户登录,返回到登录前的用户状态。

    命令格式:

    login [命令参数] 参数

    参数为登录的用户名,可以不输入登录的用户名,直接输入login命令后回车,然后根据提示再输入用户名和密码。

    常见命令参数

    • -p:告诉login指令不销毁环境变量;
    • -h:指定远程服务器的主机名。

    login必须以root权限才能执行,如果是普通用户执行时,需要在命令前加sudo命令来提升权限为root权限。

    案例演示

    1: 使用login命令来登录系统(文件/etc/nologin不存在)。

    首先查看当前登录的用户名是fzm

    1. [fzm@ubuntu: ~]# whoami
    2. fzm
    3. [fzm@ubuntu: ~]#

    使用newUser用户来登录系统,然后查看当前登录的用户名。

    1. root@evassh-12053448:~# login
    2. evassh-12053448 login: newuser
    3. Password:
    4. newuser@evassh-12053448:/root$ whoami
    5. newuser
    6. newuser@evassh-12053448:/root$

    使用logout或者exit命令退出newUser用户,然后在查看当前登录用户。

    1. newuser@evassh-12053448:/root$ exit
    2. exit
    3. root@evassh-12053448:~# whoami
    4. root

    2: 使用login命令来登录系统(文件/etc/nologin存在)。

    首先查看当前登录的用户名。

    1. root@evassh-12053448:~# whoami
    2. root
    3. root@evassh-12053448:~# _

    /etc目录下新创建一个nologin文件,使用如下命令创建:

    sudo touch /etc/nologin

    使用普通用户newUser来登录系统,查看是否可以登录成功。

    1. root@evassh-12053448:~# touch /etc/nologin
    2. root@evassh-12053448:~# login
    3. evassh-12053448 login: newuser
    4. Password:
    5. Authentication failure
    6. evassh-12053448 login: root
    7. Password:
    8. root@evassh-12053448:~# whoami
    9. root
    10. root@evassh-12053448:~# _

    发现使用newUser用户是无法登录系统的,只有使用root用户才能登录系统。

    使用su命令切换用户身份

    su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号的密码。

    当使用su命令切换用户后,使用exit命令退出当前身份,返回原有登录用户身份。

    注:如果当前用户身份是root,则使用su命令切换到其他用户的时候不需要相应用户的密码

    命令格式:

    su [命令参数] 参数

    参数为登录的用户名,如果没有参数,则默认切换为root用户。

    常见命令参数

    • -c<指令>--command=<指令>:执行完指定的指令后,即恢复原来的身份;
    • -l--login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
    • -m,-p--preserve-environment:变更身份时,不要变更环境变量;
    • -s--shell=:指定要执行的shell

    su命令所有使用者都可以执行。

    案例演示

    1: 使用su命令切换当前用户身份(不改变当前工作目录)。

    首先查看当前登录的用户名是fzm,当前工作目录是/home/fzm

     

    切换当前用户为newUser用户,然后查看当前用户身份和当前工作目录。

     

    使用exit命令退出newUser用户,然后在查看当前登录用户身份和当前工作目录。

     

    2: 使用su命令切换当前用户身份(改变当前工作目录)。

    首先查看当前登录的用户名是fzm,当前工作目录是/home/fzm

     

    切换当前用户为newUser用户,然后查看当前用户身份和当前工作目录。

     

    使用exit命令退出newUser用户,然后在查看当前登录用户身份和当前工作目录。

     

    练习:

    新创建一个用户newUser,并且设置登录密码;

    使用su命令切换当前用户身份为newUser,并且执行whoami指令,然后恢复原来的身份。

    1. #!/bin/bash
    2. #创建newUser新用户
    3. #***********begin*************#
    4. useradd newUser
    5. #************end**************#
    6. #在符号<<前输入设置用户密码的命令(命令与<< EOF保持在同一行), 密码输入在下一行,确认密码输入在下下行
    7. #例如:
    8. #command << EOF
    9. #password
    10. #password
    11. #EOF
    12. #***********begin*************#
    13. passwd newUser << EOF
    14. 123123
    15. 123123
    16. EOF
    17. #************end**************#
    18. #使用su命令切换当前用户身份为newUser,并且执行whoami指令,然后恢复原来的身份;
    19. #提示使用su命令的-c参数完成
    20. #***********begin*************#
    21. su -c whoami newUser
    22. exit
    23. #************end**************#

  • 相关阅读:
    css实现一个炫酷动画loading(四)
    如何处理linux 自动执行的sh脚本
    HTTPS 的加密过程
    APP备案避坑指南,值得收藏
    Word控件Spire.Doc 【表单域】教程(五):如何在 C# 中更新 Ask 字段
    ios设备管理软件iMazing 2.17.11官方中文版新增功能介绍
    Efinix 使用原厂jtag下载
    项目管理主管岗位的主要职责概述
    Vue中axios的基本用法
    强大的SQL计算利器-SPL
  • 原文地址:https://blog.csdn.net/qq_61604164/article/details/126134205