精华内容
下载资源
问答
  • 这篇文章主要介绍了Linux系统中切换用户的相关命令,是Linux入门学习中的基础知识,需要的朋友可以参考下 #1:runuser命令runuser命令使用一个替代的用户或者组ID运行一个Shell。这个命令root用户时有用...
    这篇文章主要介绍了Linux系统中的切换用户的相关命令,是Linux入门学习中的基础知识,需要的朋友可以参考下
     

    #1:runuser命令
    runuser命令使用一个替代的用户或者组ID运行一个Shell。这个命令仅在root用户时有用。

    仅以会话PAM钩子运行,并且没有密码提示。如果用一个非root用户,并且该用户没有权限设置user ID,这个命令将会因为程序没有setuid而失败。因runuser不会运行认证和账户PAM钩子,它比su更底层。

    语法:

     

    复制代码
    代码如下:
    runuser -l userNameHere -c 'command'
    runuser -l userNameHere -c '/path/to/command arg1 arg2'


    举例来说,作为一个root用户,你也许想检查下oracle用户下的shell资源限制,输入:

     

    复制代码
    代码如下:
    # runuser -l oracle -c 'ulimit -SHa'


    或者监察下nginx或lighttpd web服务器限制:

     

    复制代码
    代码如下:
    # runuser -l nginx -c 'ulimit -SHa'




    复制代码
    代码如下:
    # runuser -l lighttpd -c 'ulimit -SHa'


    有时,root用户由于权限(安全)问题不能浏览NFS挂载的共享:

     

    复制代码
    代码如下:
    # ls -l /nfs/wwwroot/cyberciti.biz/http




    复制代码
    代码如下:
    # cd /nfs/wwwroot/cyberciti.biz/http


    可能的输出:

     

    复制代码
    代码如下:
    -bash: cd: /nfs/wwwroot/cyberciti.biz/http/: Permission denied


    尽管如此,apache用户被允许浏览或访问挂载在/nfs/wwwroot/cyberciti.biz/http/下基于nfs的系统:

     

    复制代码
    代码如下:
    # runuser -l apache -c 'ls -l /nfs/wwwroot/cyberciti.biz/http/'




    复制代码
    代码如下:
    # runuser -l apache -c 'cd /nfs/wwwroot/cyberciti.biz/http/; vi index.php'


    使用runuser命令,无需使用密码,并且,只能在root用户下使用。

    可用选项:

    -l: 让shell成为登录shell,用 runuser -l PAM 文件替代默认的
    -g:指定主要的组
    -G 追加组
    -c:命令,要传到shell的单个命令
    --session-command=COMMAND:使用-c传递单个命令道shell中并且不创建新的会话
    -m: 不重置环境变量。


    #2:su命令
    su命令允许你成为一个超级用户或者替代用户(substitute user),欺骗用户(spoof user),设置用户(set user)或者切换用户(switch user)。它允许一个Linxu用户切换当前用户到那些你知道密码的目标用户,切换包括与之关联的运行中的控制台(console)或者Shell,它的语法如下:

     

    复制代码
    代码如下:
    su -
    su - username


    切换到root用户
    su命令会询问目标用户的密码,在你的shell命令行中输入 su - 来切换到root用户(你必须知道root用户的密码):

     

    复制代码
    代码如下:
    vivek@wks01:~$ su -




    复制代码
    代码如下:
    vivek@wks01:~$ su - root


    输出示例:

    Password:

    复制代码
    代码如下:
    root@wks01:/root# logout
    vivek@wks01:~$


    如果输入了正确的root密码,会话的所有权(这里应该指当前控制台的上下文——译注)将改为root账户。输入logout可以退出一个root登录的shell,输入 whoami或者id命令来验证当前会话的所有者:

    whoami

    id
    用root账户运行命令
    语法是:

     

    复制代码
    代码如下:
    su - root -c "command"




    复制代码
    代码如下:
    su - -c "command arg1"


     查看/root目录下的内容,这些原本是普通用户无法访问的,运行:

     

    复制代码
    代码如下:
    su - root -c "ls -l /root"


    需要注意的是,Linix和一些Unix-like系统有一个wheel用户组,并且只允许这个组内的用户使用su切换到root。

    使用su命令来让其他用户运行命令
    下面这个命令是切换到oracle的账户,并且显示限制清单:

     

    复制代码
    代码如下:
    $ su - oracle -c 'ulimit -aHS'


     同样, 如果提供了正确的oracle密码,会话所有权将会变成oracle账户。su命令的日志保存在系统日志中,一般是在/var/log/auth.log(Debian/Ubuntu)或者/var/log/secure(RHEL/CentOS)。

    #3: sudo命令
    sudo以另外的用户来执行一个命令,但是它跟着一组关于那些用户可以以那些其他用户执行那些命令的规则(有点绕口——译注)。这个规则在/etc/sudoers这个文件中被定义。不像su,sudo验证用户是靠用户自己的密码而不是那个要切换的用户密码。当提供一个审计跟踪命令和他们的参数时(原文:...whileproviding an audit trail of the commands and their arguments——译注)sudo允许一个系统管理员给某些用户(或用户组)委派以root或其他用户来运行某些(或全部)命令的权限。这允许无需在用户之间共享密码就可以在指定宿主上将指定命令委派给指定用户。语法如下:

     

    复制代码
    代码如下:
    sudo command

    GUI工具注意事项(su和sudo的前端GUI)
    gksu 命令是su的前台,gksudo 是sudo的前端。他们的主要用途是用来运行需要root权限但不需要运行一个X terminal emulator和使用直接使用su的图形化命令。语法如下:

     

    复制代码
    代码如下:
    gksu [-u <user>] [options] <command>
    gksudo [-u <user>] [options] <command>


    仅输入gksu,将会显示下面这个弹窗:

    然后,你将会被要求输入root用户的密码:


    你也可以直接运行下面代码:

     

    复制代码
    代码如下:
    gksu -u root 'ls /root'


    或,以oracle用户运行命令:

     

    复制代码
    代码如下:
    gksu -u oracle 'ulimit -aHS'


    或作为root登录:

     

    复制代码
    代码如下:
    gksu -u root -l

     
    总结:runuser VS su VS sudo

     

    转载于:https://www.cnblogs.com/gscq073240/articles/9329633.html

    展开全文
  • Linux系统中切换用户使用su和su -命令的本质su:switch user,切换用户的简写。(1)su - username:切换用户后,同时切换到新用户的工作环境中。(2)su username:切换用户后,不改变原用户的工作目录及其他环境变量...

    Linux系统中切换用户使用su和su -命令的本质

    su:switch user,切换用户的简写。

    (1)

    su - username:

    切换用户后,同时切换到新用户的工作环境中。

    (2)

    su username:

    切换用户后,不改变原用户的工作目录及其他环境变量目录。

    解释:

    su命令可以用来交互地更改你的用户ID和组ID。

    这个命令会开启一个子进程,赋予新用户与自己ID关联所有文件的存取权限。

    出于安全的考虑,在实际转换身份时,会被要求输入这个用户帐号的密码。

    如果没有参数,su命令将转换为root。即:su。

    想要回到原先的用户身份,可以使用exit命令退出当前对话进程。

    测试:

    1、

    id

    当前用户为root用户,当前目录为/root 家目录

    07c3683dbf68c2724be960705b1664e6.png

    先测试su命令,切换到一个普通用户odysee

    su odysee

    注意!!!:以下标黑斜体的两行,下面会用到

    [root@kingdom ~]# id

    uid=0(root) gid=0(root) groups=0(root)

    [root@kingdom ~]# pwd

    /root

    [root@kingdom ~]# su odysee

    [odysee@kingdom root]$ pwd

    /root

    [odysee@kingdom root]$ id

    uid=508(odysee) gid=508(odysee) groups=508(odysee),10(wheel)

    如下图所示:当前目录还是/root

    189aa930f933198ac5b0a194fb3b6268.png

    下面我们来证明一下环境变量是否改变

    刚刚su odysee的主提示符(PS1)如下标黑斜体:

    [odysee@kingdom root]$ pwd

    /root

    我们使用su - odysee切换用户。

    [root@kingdom ~]# su - odysee

    odysee:~$pwd

    /home/odysee

    odysee:~$

    465a970a744fbdba4a4caaf07d21d81c.png

    是不是发现了两处不同

    (1) su - odysee 是切到了odysee的家目录

    (2) su - odysee主提示符是odysee:~$,su odysee[odysee@kingdom root]$。

    原因:

    su - odysee:

    切换用户后,同时切换到新用户的工作环境中。

    家目录是自己的,主提示符(PS1)是自己的,如下图:

    780762778c33962ae6c351c3a59365c4.png

    su odysee

    切换用户后,不改变原用户的工作目录及其他环境变量目录。

    家目录是root的,主提示符(PS1)也是root的

    再直接一点,我们打印一下$PS1

    (1)

    [root@kingdom ~]# echo $PS1

    [u@h W]$

    [root@kingdom ~]# su odysee

    [odysee@kingdom root]$ echo $PS1

    [u@h W]$

    ba45951bdd19974a7d477ebf0b8eaaea.png

    (2)

    [root@kingdom ~]# echo $PS1

    [u@h W]$

    [root@kingdom ~]# su - odysee

    odysee:~$echo $PS1

    [e[31;1m]u[e[0m][e[32;1m][e[0m]:[e[35;1m]w[e[0m]$

    24da018dd56ae0fc04717e0820b6040b.png

    这样就很明显了

    欢迎大家给予宝贵的意见或者建议。

    欢迎大家补充或者共享一些其他的方法。

    感谢支持。

    展开全文
  • Linux系统中切换用户使用su和su -命令的本质su:switch user,切换用户的简写。(1)su - username:切换用户后,同时切换到新用户的工作环境中。(2)su username:切换用户后,不改变原用户的工作目录及其他环境变量...

    Linux系统中切换用户使用su和su -命令的本质

    su:switch user,切换用户的简写。

    (1)

    su - username:

    切换用户后,同时切换到新用户的工作环境中。

    (2)

    su username:

    切换用户后,不改变原用户的工作目录及其他环境变量目录。

    解释:

    su命令可以用来交互地更改你的用户ID和组ID。

    这个命令会开启一个子进程,赋予新用户与自己ID关联所有文件的存取权限。

    出于安全的考虑,在实际转换身份时,会被要求输入这个用户帐号的密码。

    如果没有参数,su命令将转换为root。即:su。

    想要回到原先的用户身份,可以使用exit命令退出当前对话进程。

    测试:

    1、

    id

    当前用户为root用户,当前目录为/root 家目录

    b66cb3fa5e7d0c9526c1e1f322b8086b.png

    先测试su命令,切换到一个普通用户odysee

    su odysee

    注意!!!:以下标黑斜体的两行,下面会用到

    [root@kingdom ~]# id

    uid=0(root) gid=0(root) groups=0(root)

    [root@kingdom ~]# pwd

    /root

    [root@kingdom ~]# su odysee

    [odysee@kingdom root]$ pwd

    /root

    [odysee@kingdom root]$ id

    uid=508(odysee) gid=508(odysee) groups=508(odysee),10(wheel)

    如下图所示:当前目录还是/root

    9c0d9f52b679256d984a5f24658a61a3.png

    下面我们来证明一下环境变量是否改变

    刚刚su odysee的主提示符(PS1)如下标黑斜体:

    [odysee@kingdom root]$ pwd

    /root

    我们使用su - odysee切换用户。

    [root@kingdom ~]# su - odysee

    odysee:~$pwd

    /home/odysee

    odysee:~$

    39ed509e92e7f58912e051514598a75b.png

    是不是发现了两处不同

    (1) su - odysee 是切到了odysee的家目录

    (2) su - odysee主提示符是odysee:~$,su odysee[odysee@kingdom root]$。

    原因:

    su - odysee:

    切换用户后,同时切换到新用户的工作环境中。

    家目录是自己的,主提示符(PS1)是自己的,如下图:

    4c102635a43107cef01b571f4259bd07.png

    su odysee

    切换用户后,不改变原用户的工作目录及其他环境变量目录。

    家目录是root的,主提示符(PS1)也是root的

    再直接一点,我们打印一下$PS1

    (1)

    [root@kingdom ~]# echo $PS1

    [u@h W]$

    [root@kingdom ~]# su odysee

    [odysee@kingdom root]$ echo $PS1

    [u@h W]$

    3c154281db34a4492021236e5b4d0cb4.png

    (2)

    [root@kingdom ~]# echo $PS1

    [u@h W]$

    [root@kingdom ~]# su - odysee

    odysee:~$echo $PS1

    [e[31;1m]u[e[0m][e[32;1m][e[0m]:[e[35;1m]w[e[0m]$

    abfe8487ced7c1f7499c5a27f061f41c.png

    这样就很明显了

    欢迎大家给予宝贵的意见或者建议。

    欢迎大家补充或者共享一些其他的方法。

    感谢支持。

    展开全文
  • useradd king :添加用户并同时添加家目录 ... useradd -d /home/tiger/ xiaoming :指定家目录新建用户,此目录不能存在,否则会出错 ...id root:查看root用户的信息 uid用户id号,gid用户所在...

    useradd king :添加用户并同时添加家目录

     

    passwd 123456 :给用户添加密码

     

    useradd -d /home/tiger/ xiaoming :在指定家目录新建用户,此目录不能存在,否则会出错

     

    userdel king :只删除用户,保留家目录

     

    userdel -r xiaoming :不仅删除用户,并删除家目录,即删除tiger/目录 在删除用户时,我们一般不删除家目录

     

    id root:查看root用户的信息 uid用户id号,gid用户所在组id号,组是指组名;当用户不存在时,返回”无此用户“/”no such user“

     

    su - xiaoming:在root用户下执行su - xiaoming 命令,就切换到小明登录状态了,由于是从高权限切换到低权限,所以无需密码输入,但是xiaoming用户就无权限进入/root目录

    如果想在切换回root就执行su - root命令,由于是从低权限切换到高权限,所以需要输入root登录密码;

    如果想直接注销xiaoming登录切换成root登录,执行 logout/exit 命令都即可注销并切换root用户登录状态。

     

    whoami/who am i :查看当前用户是谁

     

    groupadd wudangpai: 添加用户组

     

    groupdel wudangpai: 删除用户组

     

    useradd -g wudangpai zhangwuji :创建一个zhangwuji用户,并将zhangwuji添加到wudangpai这个用户组(用户组需要提前创建)里面去,此时也会在/home/下面添加zhangwuji用户家目录

     

    usermod -g mingjiao zhagnwuji :创建一个mingjiao组,并将用户zhangwuji更改到mingjiao组(用户组需要提前创建),然后可以 id zhangwuji查看用户信息

     

     

    /etc/passwd :此目录是用户目录,用户的配置文件,记录用户的各种信息

    每行的含义:用户名:口令(加密):用户标识号:组标识号:注释性描述:家目录:登录shell

    /etc/shadow :口令的配置文件

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

    /etc/group :此目录是组目录,组的配置文件,包含组的信息

    每行含义:组名:口令:组标识号:组内用户列表

     

    运行级别

    运行级别说明:

    0 :关机

    1 :单用户【找回丢失密码】

    2:多用户状态没有网络服务

    3:多用户状态有网络服务

    4:系统未使用保留给用户

    5:图形界面

    6:系统重启

    常用的运行级别就是3和5,要修改默认的运行级别可修改文件/etc/inittab的id:5:initdefault:这一行中的数字

    命令修改:init[0123456]

    以上修改运行级别是在centos6的情况下使用,在centos7下不适用:

     

    命令修改为:

    systemctl get-default 查看当前运行级别

    ##设置运行级别的方法未生效,不知是什么原因

    systemctl set-default TARGET.target : TARGET:multi-user.target-3 graphical.target-5

    在centos7下vim /etc/inittab文件出的页面

    1.运行级别对应表:

     

    2.设置运行级别

     

    命令格式:systemctl [command] [unit.target]

    参数详解:command:

    get-default :取得当前的target

    set-default :设置指定的target为默认的运行级别

    isolate :切换到指定的运行级别

    unit.target :为5.1表中列出的运行级别

     

    备注:不知道为啥,命令都操作成功了,但是就是切换不了界面运行级别显示,就是我没操作成功切换界面系统

     

    忘记root密码操作

    如何找回 root 密码,如果我们不小心,忘记 root  密码,怎么找回。

    思路: 进入到 单用户模式,然后修改 root 密码。因为进入单用户模式,root 不需要密码就可以登录。

    总结

    开机->在引导时输入 回车键-> 看到一个界面输入 e ->  看到一个新的界面,选中第二行(编辑内核)在输入  e->  在这行最后输入  1 ,再输入 回车键->再次输入 b ,这时就会进入到单用户模式。

    这时,我们就进入到单用户模式,使用 passwd  指令来修改 root  密码。

     :也可以在单用户下面去修改默认的运行级别

     

    展开全文
  • 通过前面几节课,我们windows系统中安装好了linux虚拟机,也通过xshell远程终端连接上了linux虚拟。从今天开始,我们就可以正式开始学习linux的知识了。今天,我们主要介绍用户相关一些命令,如:创建用户...
  • 大家好,我是良许 Linux 命令行里向其他用户发送信息很简单,很多命令都可以做到这点,麻烦的是你需要从众多命令挑选一个合适的命令来使用。因此,我挑选了四种常用的 Linux 用户通信命令分享给大家并为你们讲解...
  • 1、新增用户 useradd user1用户创建流程1、系统先将用户信息记录/etc/passwd,一般会/etc/passwd和/etc/shadow末尾,同时分配该用户UID。2、创建用户目录,一般创建路径/home目录。当前命令创建目录是/home/...
  • 通过前面几节课,我们windows系统中安装好了linux虚拟机,也通过xshell远程终端连接上了linux虚拟。从今天开始,我们就可以正式开始学习linux的知识了。今天,我们主要介绍用户相关一些命令,如:创建用户...
  • 系统中用户的查看 id ##查看指定用户id信息 -u ##查看用户uid -g ##查看用户gid -G ##查看用户所在的所有组的id -n ##显示名字而不是id数字(要配合ugG参数使用) 用户切换 gnome-session-quit --force ...
  • su 命令可以让我们不登出当前用户的情况下,以另一个用户的身份登录系统1。 su 命令经常被用于切换身份到root 用户,当然它也可以切换身份到其它用户。语法为 su – [账户名]。如果直接键入 su,那么就会切换身份...
  • Linux系统中的用户管理 文章目录Linux系统中的用户管理一、用户及用户组存在的意义1.用户存在的意义2.用户组存在的意义二、用户及用户组系统中的存在方式三、用户切换1.用户存在的意义2.用户的切换四、用户涉及到...
  • 系统:centos 7 ...可以看到 切换到aa用户并且打印出了家目录 :注 #!/bin/bash su - aa <<! echo '11'! 也可以哦,看明白没 只要你<<之后字符和结束对应上就可以啦 ...
  • 用户可以通过该软件同时连接多个本地或远程命令行会话,并其间自由切换。GNU Screen可以看作是窗口管理器命令行界面版本。它提供了统一管理多个会话界面和相应功能。 下面来介绍下我最常用screen命令...
  • 刚装Ubuntu虚拟机时候想切换到root用户时我们会在terminal输入su,但是我们可能会输入登陆虚拟机密码,然而显示错误,于是我们觉得是没有密码,就直接按空格,其实却是没有密码,但是在Linux中个人认为应该是...
  • 今天公司同事来找到我说要服务器上用另外一个用户执行python脚本,但设置到crontab里却老是root用户来执行,为了省事我就想了一个偷懒办法,就是用shell脚本切换到那个用户,然后去执行那个python脚本.好了,这篇文章...
  • 在Linux系统中编写代码中,我们常常遇到普通用户不能操作的命令和指令,必须得切换到root管理员下进行操作才可以,即:su root,但是在你用完后又得切换到普通用户,否则一直使用root权限可能会因为你的不当操作而...
  • 超级用户root具有超级管理权限,由于权限太大,如果管理不好,就会对系统安全带来安全隐患。工作场景,一般临时性处理工作,都是以普通用户的...其他普通用户之间或者普通用户切换到root,都需要切换用户的秘...
  • 在linux操作系统中用户之间的切换使用,su 命令linux系统环境中的用户信息如下:登录linux系统的当前用户为:root1. 使用命令:su - 用户名 (注意:此时su和用户名之后有一个英文版横杠)例如:su - charles_...
  • 在linux操作系统中用户之间的切换使用,su 命令linux系统环境中的用户信息如下:登录linux系统的当前用户为:root1. 使用命令:su - 用户名 (注意:此时su和用户名之后有一个英文版横杠)例如:su - charles_...
  • Linux之目录切换命令

    2019-10-11 16:55:15
    window通过图形化界面和鼠标可以任意切换需要进入目录,但Linux必须通过cd命令切换目录。但学习cd命令之前,我们有必要分清Linux的目录结构(linux目录结构详细说明) cd usr 切换到该目录下usr目录 cd …/ ...
  • 工作目录是指用户当前在系统中的位置 1、pwd命令命令是用于显示用户当前所在位置,格式为“pwd [选项]”。 2、 cd命令命令是用于切换工作路径,格式为“cd [目录名称]” 这个命令属于最常用的Linux命令。可以...
  • 但通过文件系统,却无法打开 git 文件夹提示无法显示远程文件夹(应该是权限不够)这是因为,以普通用户 A 命令行内切换到root用户后,文件系统的权限还是普通用户的权限,此时就需要修改文件夹的用户权限。4.切换...
  • Linux 切换用户

    2019-09-29 18:59:24
    在linux操作系统中用户之间的切换使用,su 命令linux系统环境中的用户信息如下: 用户名 角色 备注 root  管理员 root用户下配置jdk 版本为:1.8 charles_1 普通用户 charles_1用户下...
  • 特别说明:本文章所有命令并不仅限于这些参数,若想查看命令详细说明,可在Linux系统中输入如下形式命令查看: 命令 --help 查看信息常用命令 1.ls 查看当前文件夹下文件,不包含隐藏文件 常用参数: -l:...
  • 系统中有一个组叫做“wheel”,我们可以利用该组实现一些特殊功能。我们可以将拥有su使用权限的用户加入到wheel组中并且对该组进行限制,那么只有该组中的用户才有su使用权限。 如要实现该功能,按照下面...
  • 1.Ubuntu中如何切换到超级用户(root)我们知道其他linux操作系统中(如红帽操作系统)普通权限的用户想切换到root下,只需输入su命令,系统会提示输入root用户的密码,只要我们正确输入即可。然而Ubuntu中我们...
  • 我们使用linux系统时候,有可能会有这样需求,只允许某些用户执行指定...这多人共享使用的linux系统中非常有用。如果你有这样需求能实现么?当然!一个小兵经过实验,Restricted Shell可以很好实现这个...
  • 默认情况下,大多数 Linux 发行版(如屏幕快照所示),/ etc / sudoers 的 RunAs 规范文件的 ALL 关键字,允许 admin 或 sudo 分组的所有用户,以系统上任何有效用户的身份运行任何命令。然而由于特权...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,029
精华内容 411
关键字:

在linux系统中切换用户的命令

linux 订阅