精华内容
下载资源
问答
  • Linux使用者身份切换

    2018-09-23 15:10:02
    su 命令必须要有root 密码,而 sudo 命令只需要用户自己密码。 su 命令 su 命令格式: [root@study ~]# su [-lm] [-c 指令] [username] ... 若使用者名称没有加上去,则代表切换为 root 的身份。 -l :...

    su 命令必须要有root 密码,而 sudo 命令只需要用户自己密码。

    su 命令

    su 命令格式:

    [root@study ~]# su [-lm] [-c 指令] [username] 
    选项与参数: 
    -   :单纯使用 - 如『 su - 』代表使用 login-shell 的变量文件读取方式来登入系统;       若使用者名称没有加上去,则代表切换为 root 的身份。 
    -l  :与 - 类似,但后面需要加欲切换的使用者账号!也是 login-shell 的方式。 
    -m  :-m 与 -p 是一样的,表示『使用目前的环境设定,而不读取新使用者的配置文件』 
    -c  :仅进行一次指令,所以 -c 后面可以加上指令
    

    使用 - 参数,就是读取欲切换身份的 login-shell 的变量文件来登入系统,登入后变量名(如 PATH)之类的都是新身份的而不是旧身份证的。而单纯使用 su 切换成为 root 的身份,读取的变量设定方式为 non-login shell 的方式,这种方式很多原本的变量不会被改变,如 PARH、 MAIl,输入 mail 时, 收到的邮件还是 原来用户的。

    范例: su - -c "head -n 3 /etc/shadow"

    sudo 命令

    并非所有人都能够执行 sudo , 而是仅有规范到 /etc/sudoers 内的用户才能够执行 sudo 这个指令。

    使用 visudo 命令修改 /etc/sudoers 文件,visudo 用法与 vim 类似,不过最后保存时 visudo 会检测文件内容语法是否正确。

    单一用户可进行 root 所有指令,与 sudoers 文件语法:

    [root@study ~]# visudo 
    ....(前面省略)....
    root    ALL=(ALL)       ALL  <==找到这一行
    vbird1  ALL=(ALL)       ALL  <==这一行是你要新增的
    [ 1 ]   [2]  [3]       [ 4 ]
    

    这样 vbird1 就可以使用root的任何指令。

    相关解释

    • 1 『使用者账号』:系统的哪个账号可以使用 sudo 这个指令的意思;
    • 2 『登入者的来源主机名』:当这个账号由哪部主机联机到本 Linux 主机,意思是这个账号可能是由哪一部网 络主机联机过来的,这个设定值可以指定客户端计算机(信任的来源的意思)。默认值 root 可来自任何一部网络主机
    • 3 『(可切换的身份)』:这个账号可以切换成什么身份来下达后续的指令,默认 root 可以切换成任何人
    • 4 『可下达的指令』:可用该身份下达什么指令,这个指令请务必使用绝对路径撰写。 预设 root 可以切换任 何身份且进行任何指令之意

    利用 wheel 群组以及免密码的功能处理 visudo

    通过群组来管理是否可以使用 sudo 命令,系统默认的群组为 wheel 群组。
    范例:

    [root@study ~]# visudo  <==同样的,请使用 root 先设定 
    ....(前面省略)....
    %wheel     ALL=(ALL)    ALL <==大约在 106 行左右,请将这行的 # 拿掉! # 在最左边加上 % ,代表后面接的是一个『群组』之意!改完请储存后离开 
     
    [root@study ~]# usermod -a -G wheel pro1 <==将 pro1 加入 wheel 的支持 
    

    在 CentOS7 以后,这个群组默认是可用的。
    继续修改,使用 sudo 命令不需要密码:

    [root@study ~]# visudo  <==同样的,请使用 root 先设定 
    ....(前面省略).... 
    %wheel     ALL=(ALL)   NOPASSWD: ALL <==大约在 109 行左右,请将 # 拿掉! # 在最左边加上 % ,代表后面接的是一个『群组』之意!改完请储存后离开 
    

    有限制的指令操作

    范例:

    root@study ~]# visudo  <==注意是 root 身份 
    myuser1 ALL=(root)  !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root 
    

    sudo 的时间间隔问题:

    两次执行 sudo 的间隔在五分钟内,那么再次执行 sudo 时就不需要再次输入密码了, 这是因为 系统相信你在五分钟内不会离开你的作业,所以执行 sudo 的是同一个人。不过如果两次 sudo 操作的间隔超过 5 分钟,那就得要重新输入一次你的密码了。



    原文链接:Linux使用者身份切换

    展开全文
  • sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟...

    sudo命令用来以其他身份来执行命令预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

    sudo(选项)(参数)

    选项

    -b:在后台执行指令;

    -h:显示帮助;

    -H:将HOME环境变量设为新身份的HOME环境变量;

    -k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。

    -l:列出目前用户可执行与无法执行的指令;

    -p:改变询问密码的提示符号;

    -s<shell>:执行指定的shell;

    -u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;

    -v:延长密码有效期限5分钟;

    -V :显示版本信息。

    参数

    指令:需要运行的指令和对应的参数。


    实例

    配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。visudo默认的是在vi里打开配置文件,用vi来修改文件。我们可以在编译时修改这个默认项。visudo不会擅自保存带有语法错误的配置文件,它会提示你出现的问题,并询问该如何处理,就像:>>> sudoers file: syntax error, line 22 <<

    此时我们有三种选择:键入“e”是重新编辑,键入“x”是不保存退出,键入“Q”是退出并保存。如果真选择Q,那么sudo将不会再运行,直到错误被纠正。

    现在,我们一起来看一下神秘的配置文件,学一下如何编写它。让我们从一个简单的例子开始:让用户Foobar可以通过sudo执行所有root可执行的命令。以root身份用visudo打开配置文件,可以看到类似下面几行:

    # Runas alias specification

    # User privilege specificationroot    ALL=(ALL)ALL

    我们一看就明白个差不多了,root有所有权限,只要仿照现有root的例子就行,我们在下面加一行(最好用tab作为空白):

    foobar ALL=(ALL)    ALL

    保存退出后,切换到foobar用户,我们用它的身份执行命令:

    [foobar@localhost ~]$ ls /root

    ls: /root: 权限不够

    [foobar@localhost ~]$ sudo ls /root

    PassWord:

    anaconda-ks.cfg Desktop install.log install.log.syslog

    好了,我们限制一下foobar的权利,不让他为所欲为。比如我们只想让他像root那样使用ls和ifconfig,把那一行改为:

    foobar localhost=    /sbin/ifconfig,   /bin/ls

    再来执行命令:

    [foobar@localhost ~]$ sudo head -5 /etc/shadow

    Password:

    Sorry, user foobar is not allowed to execute '/usr/bin/head -5 /etc/shadow' as root on localhost.localdomain.

    [foobar@localhost ~]$ sudo /sbin/ifconfigeth0      Linkencap:Ethernet HWaddr 00:14:85:EC:E9:9B...

    现在让我们来看一下那三个ALL到底是什么意思。第一个ALL是指网络中的主机,我们后面把它改成了主机名,它指明foobar可以在此主机上执行后面的命令。第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令。最后一个ALL当然就是指命令名了。例如,我们想让foobar用户在linux主机上以jimmy或rene的身份执行kill命令,这样编写配置文件:

    foobar    linux=(jimmy,rene)    /bin/kill

    但这还有个问题,foobar到底以jimmy还是rene的身份执行?这时我们应该想到了sudo -u了,它正是用在这种时候。 foobar可以使用sudo -u jimmy kill PID或者sudo -u rene kill PID,但这样挺麻烦,其实我们可以不必每次加-u,把rene或jimmy设为默认的目标用户即可。再在上面加一行:

    Defaults:foobar    runas_default=rene

    Defaults后面如果有冒号,是对后面用户的默认,如果没有,则是对所有用户的默认。就像配置文件中自带的一行:

    Defaults    env_reset

    另一个问题是,很多时候,我们本来就登录了,每次使用sudo还要输入密码就显得烦琐了。我们可不可以不再输入密码呢?当然可以,我们这样修改配置文件:

    foobar localhost=NOPASSWD:     /bin/cat, /bin/ls

    再来sudo一下:

    [foobar@localhost ~]$ sudo ls /rootanaconda-ks.cfg Desktop install.log

    install.log.syslog

    当然,你也可以说“某些命令用户foobar不可以运行”,通过使用!操作符,但这不是一个好主意。因为,用!操作符来从ALL中“剔出”一些命令一般是没什么效果的,一个用户完全可以把那个命令拷贝到别的地方,换一个名字后再来运行。


    日志与安全

    sudo为安全考虑得很周到,不仅可以记录日志,还能在有必要时向系统管理员报告。但是,sudo的日志功能不是自动的,必须由管理员开启。这样来做:

    touch /var/log/sudo

    vi /etc/syslog.conf

    在syslog.conf最后面加一行(必须用tab分割开)并保存:

    local2.debug                    /var/log/sudo

    重启日志守候进程,

    ps aux grep syslogd

    把得到的syslogd进程的PID(输出的第二列是PID)填入下面:

    kill –HUP PID

    这样,sudo就可以写日志了:

    [foobar@localhost ~]$ sudo ls /rootanaconda-ks.cfg

    Desktop install.log

    install.log.syslog

    $cat /var/log/sudoJul 28 22:52:54 localhost sudo:   foobar :

    TTY=pts/1 ; pwd=/home/foobar ; USER=root ; command=/bin/ls /root

    不过,有一个小小的“缺陷”,sudo记录日志并不是很忠实:


    [foobar@localhost ~]$ sudo cat /etc/shadow > /dev/null

    cat /var/log/sudo...Jul 28 23:10:24 localhost sudo:   foobar : TTY=pts/1 ;

    PWD=/home/foobar ; USER=root ; COMMAND=/bin/cat /etc/shadow

    重定向没有被记录在案!为什么?因为在命令运行之前,shell把重定向的工作做完了,sudo根本就没看到重定向。这也有个好处,下面的手段不会得逞:

    [foobar@localhost ~]$ sudo ls /root > /etc/shadowbash: /etc/shadow: 权限不够

    sudo 有自己的方式来保护安全。以root的身份执行sudo-V,查看一下sudo的设置。因为考虑到安全问题,一部分环境变量并没有传递给sudo后面的命令,或者被检查后再传递的,比如:PATH,HOME,SHELL等。当然,你也可以通过sudoers来配置这些环境变量。



    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并在执行ls指令后退出变回原使用者:

    su -c ls root

    变更帐号为root并传入-f选项给新执行的shell:

    su root -f

    变更帐号为test并改变工作目录至test的家目录:

    su -test

    su命令和su -命令区别就是:

    su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误,报command not found的错误。

    展开全文
  • Linux中切换用户(su命令

    万次阅读 2019-01-28 14:45:40
    su命令用于变更为其他使用者身份。 1.从root用户切换为一般用户 su test 从root用户切换为一般用户,不需要输入test用户的密码,直接使用su test命令即可进入到test用户中。 在终端输入exit或使用快捷...

    su命令用于变更为其他使用者的身份。

    1.从root用户切换为一般用户

    su test

     

     从root用户切换为一般用户,不需要输入test用户的密码,直接使用su test命令即可进入到test用户中。 

     

     在终端输入exit或使用快捷方式ctrl+d,可以退回到原来用户,前提:我们是使用root用户从终端切换进入到了一般用户。

    2.从普通用户切换到root用户

    su root

     

     从一般用户切换到root用户需要输入密码。

     $表示普通用户,#表示超级用户。

    展开全文
  • 关于Linux用户身份切换: ...此时,虽然我们已经切换到了root用户,但其实环境变量还是togie用户的,这种情况下,有些命令我们就必须使用绝对路径来进行执行,否则依然权限不足。 2、 su –:以login-she...

    关于Linux用户身份切换:

    Su:是最简单的身份切换命令,它可以进行任何身份的切换。
    关于su与su 之间的区别:二者的区别是配置文件读取方式。
    1、 su:以non-login shell的方式读取配置文件
    在这里插入图片描述
    此时,虽然我们已经切换到了root用户,但其实环境变量还是togie用户的,这种情况下,有些命令我们就必须使用绝对路径来进行执行,否则依然权限不足。
    2、 su –:以login-shell的方式读取配置文件。
    在这里插入图片描述
    我们此时可以看到环境变量的相关全部切换为root用户。

    3、 关于su命令输入的密码:为想切换的用户的密码。例如切换root用户,则输入root用户密码。

    Sudo:是用该命令的用户可以以root身份执行某个命令,命令执行完之后就立即回退到原用户身份。
    1、 首先尝试以sshd的身份创建一个文件。
    在这里插入图片描述
    -u参数是想以那个用户身份执行命令。
    2、 Sudo的执行流程:
          a) 当用户执行sudo命令时,系统于/etc/sudoers文件查找该用户是否拥有执行sudo的权限
          b) 若用户具有可执行sudo命令的权限之后,便让用户输入自己的密码来确认
          c) 若密码输入成功,便开始进行sudo后续接的命令
          d) 若想切换的身份于执行者身份相同,不需要输入密码
          e) 其中一个很关键的地方在于sudo命令的配置文件/etc/sudoers
    3、 /etc/sudoers配置文件解析:
    a) 文件格式:
    在这里插入图片描述

    b) 其中两条配置:
          i. Root ALL=(ALL:ALL) ALL
          ii. %sudo ALL=(ALL:ALL) ALL
    c) 四个参数从左到右的意思:
          i. Root:系统的哪个账户可以使用sudo命令。像第一天配置表示root用户可以使用,第二条表示sudo用户组的所有用户可以使用。
           ii. 登录者的来源主机名:这个账号由哪台主机连接到本Linux主机,意思是这个账户可能由哪一台网络主机连接过来,这个设置值可以指定客户端主机,参数ALL表示全部主机。
           iii. 可切换的身份:这个账号可以切换成什么身份来执行后续的命令。ALL表示切换成任意身份。
            iv. 可执行的命令:切换到身份之后可以执行哪些命令,用绝对路径书写。
    d) 第二条配置的含义:
           所有sudo用户组的成员,可以从任意主机登录,使用sudo命令切换到任意身份执行任意命令。
    4、 利用存在漏洞的sudo文件配置提权:
    首先我们使用低权限用户togie登录ssh:
    在这里插入图片描述
    发现用户属于togie组,sudo组等等
    在这里插入图片描述

    查看用户是否可以执行sudo命令,如果可以,查看可以执行哪些命令。然后发现sudo命令可以切换到任意身份,执行任何命令,那么进行sudo提权到root用户。
    在这里插入图片描述
    5、更多详细内容建议参考:《鸟哥的Linux私房菜》

    展开全文
  • linux切换用户命令

    千次阅读 2021-03-02 15:30:04
    su命令用于变更为其他使用者身份。 1.从root用户切换为一般用户 su test 从root用户切换为一般用户,不需要输入test用户的密码,直接使用su test命令即可进入到test用户中。 在终端输入exit或使用快捷方式ctrl+d...
  • 切换身份

    2015-11-25 19:26:47
    su命令 [root@linux ~] # su [-lcm] [username] 参数: ...-l:后面可以接用户,例如su -l dmtsai,这个-l的好处是,可使用变换身份者的所有相关环境设置文件。 -m:-m与-p是一样的,表示“使用当前环
  • 通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证。 su [OPTION选项参数] [用户] 语 法:su [-flmp][--help][--version][-][-c ...
  • linux用户切换命令

    千次阅读 2013-03-28 11:09:18
    linux su 命令  建议大家切换用户的时候 使用 su - root 这样,...su的作用是变更为其它使用者身份,超级用户除外,需要键入该使用者的密码。  2.使用方式  su [-fmp] [-c command] [-s shell] [--help]
  • Linux用户身份切换

    万次阅读 2016-08-09 19:37:07
    为什么需要切换用户身份?在日常工作中,尽量使用普通用户账号操作,当需要root权限的时候再通过身份切换的方式切换至root管理员,这样能保证系统的安全性。...身份切换方式一:su该命令可以将身份切换至指定
  • linux中如何切换用户身份

    万次阅读 2013-11-13 09:55:10
    linux中如何切换用户身份 su命令 [root@linux ~] # su [-lcm] [username] 参数: - :如果执行su -时,...-l:后面可以接用户,例如su -l dmtsai,这个-l的好处是,可使用变换身份者的所有相关环境设置文件。 -m:-m
  • Linux 身份切换工具

    2013-12-30 23:15:27
    su [ -lm ] [ -c 指令 ] [ username ] ...如使用者身份没有加上去,则代表切换为root身份 -l : 与 - 类似,但后面需要跟欲切换的使用者账号. -m : 与-p是一样的,表示使用目前的环境设定,而不读取
  • sudo 切换到指定用户执行命令

    千次阅读 2019-07-25 10:49:15
    sudo -u pusher scp sudo -u pusher ssh ...变更帐号为 root 并在执行 ls 指令后退出变回原使用者 su -c ls root Linux sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可...
  • linux su命令参数及...点评:su的作用是变更为其它使用者身份,超级用户除外,需要键入该使用者的密码 linux su 命令  建议大家切换用户的时候 使用 su - root 这样,否则可能发现某些命令执行不了
  • linux下如何进行用户身份切换

    千次阅读 2018-04-19 23:36:49
    注意:单纯的使用su而不是su -,来切换成为root身份,读取的便来那个设置方式为non-login shell方式,这种方式下很多原本的变量不会被改变,如PATH。因此:切换成root最好用su - 2.root -&gt;普通用户(不...
  • linux下用户身份切换:su和sudo

    千次阅读 2019-06-22 22:53:56
    su 1.【su - username】 或者 【su -l username】,完整的切换到新用户的环境,连同PATH、USER、MALL等变量都换成新用户的环境。...虽然使用su很方便,不过缺点是,使用su来切换成root的身份,需要...
  • Linux常用命令

    万次阅读 多人点赞 2018-11-08 11:49:23
    2.1 目录切换 cd 2.2 目录查看 ls [-al] 2.3 目录操作【增,删,改,查】 2.3.1创建目录【增】 mkdir 2.3.2删除目录或文件【删】rm 2.3.3目录修改【改】mv 和 cp 2.3.4搜索目录【查】find 三、文件操作命令 ...
  • Ubuntu 终端命令使用(初学入门)

    万次阅读 多人点赞 2017-07-14 11:00:29
    要想使用Ubuntu对命令使用操作是必不可少的: 首先,进入终端:Ctrl+Alt+t 进入Ubuntu终端 如图1 所示: 图 1 终端界面 我们可以输入:exit 来退出终端 在命令行状态下执行命令 command [-options ] parameter1 ...
  • Linux如何查看系统当前登录用户信息,linux su命令参数及用法详解(linux切换用户命令)
  • 最近发现用“su root" 命令进入到root用户时,一些命令如shutdown、init、ifconfig等等不能被执行,上网一查发现用“su -root...建议大家切换用户的时候 使用 su - root 这样,否则可能发现某些命令执行不了 关于su
  • 当需要执行一些管理员命令操作时,再切换成root用户身份去执行。 普通用户切换到root用户的方式有:su和sudo。 1,su - (su为switch user,即切换用户的简写) 格式:su -l USERNAME(-l为login,即登陆的简写...
  • who 作用: 显示系统中有哪些用户在使用 语法: who [选项] 常用选项: -s:用简短格式来显示 -a:显示所有用户信息 ...作用: 用户切换用户身份 语法: su [选项] 用户在使用系统时,可以随时使用 s...
  • Win10 以管理员身份打开cmd及切换路径详细步骤 以管理员身份打开cmd 右击桌面左下角Windows标识,打开选项栏,点击Windows PowerShell(管理员)(A) 切换路径 输入 cd “D:\Program Files\mysql8\mysql-8.0.22-...
  • 大部分Linux发行版的默认账户是普通用户,而更改系统文件或者执行某些命令,需要root身份才能进行,这就需要从当前用户切换到root用户,Linux中切换用户的命令是su或su -,下面就su命令和su -命令最大的本质区别给大家...
  • Linux基本命令使用

    千次阅读 2013-03-21 12:56:13
    基本命令: 1. change 密码管理命令 change –M 30 admin admin用户的密码在30天后会失效。 change –W 5 admin 在admin用户密码失效前5天提示用户修改密码 2. passwd 改变密码 更改密码,系统会他提示...
  • sudo命令使用详解

    千次阅读 2011-07-25 10:07:58
    Ubuntu与其他Linux发行版最打的不同就是sudo命令取代了最搞权限用root。当然root用户是以隐藏形式出现的。根据默认的设置,在用户输入SUDO命令与密码后,5分钟内是不要求再次输入密码的,5分钟后要求再次输入密码,...
  • telnet使用命令详解

    千次阅读 2011-05-08 22:09:00
    使用telnet命令访问远程计算机  用户使用telnet命令进行远程登录。该命令允许用户使用telnet协议在远程计算机之间进行通信,用户可以通过网络在远程计算机上登录,就像登录到本地机上执行命令一样。为了...
  • 来源 :http://book.csdn.net/bookfiles/1056/100105631562.shtml1.1 以root特权身份运行命令有些命令可能会损坏文件系统或者让操作系统瘫痪,还有一些命令可能会侵犯用户的隐私或者降低系统的安全性。为了让系统...
  • linux常用命令(详解)

    万次阅读 多人点赞 2018-08-29 09:45:41
    一、日常使用命令/常用快捷键命令 开关机命令  1、shutdown –h now:立刻进行关机  2、shutdown –r now:现在重新启动计算机  3、reboot:现在重新启动计算机  4、su -:切换用户;passwd:修改用户密码 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,848
精华内容 16,739
关键字:

切换使用者身份的命令