掌握Linux命令su,实现用户身份切换 (linux 命令 su)

Linux是一款开源的操作系统,越来越多的人开始把它作为日常工作环境。在Linux系统中,有很多命令是必须掌握的,比如su命令,它可以帮助用户切换不同的用户身份,让我们来了解一下。

一、su命令的作用

su命令是Switch User的缩写,表示切换用户的意思。使用su命令可以在当前用户下临时切换到其他用户的身份,以获取该用户的权限。该命令的作用即为在不退出当前用户的情况下,暂时进入另一个用户的环境。

二、su命令的使用方法

su命令有两种使用方式:

1.切换到root用户

当你需要进行一些非常重要的系统配置操作时,必须使用root用户的权限,在终端输入以下命令,切换到root用户:

“`shell

$ su –

“`

执行此命令后,会要求输入root用户的密码,输入正确的密码之后,则表示已经成功进入root用户的环境。

2.切换到非root用户

当你需要在其他账户下执行特定任务时,可以使用su命令切换到该账户下执行。在终端输入以下命令,切换到目标账户:

“`shell

$ su – [账户名]

“`

执行此命令后,会要求输入目标账户的密码。如果输入正确,则表示已经成功进入该账户的环境。

三、su命令的参数

除了上述两种使用方法,su命令还有一些参数可以方便用户进行更为细致的操作。这里我们简单介绍一下:

1.-c命令

这个选项用来执行指定的命令,如:

“`shell

$ su -c [命令]

“`

此命令会使用root用户运行后面的命令。

2.-l命令

这个选项可以让切换的用户成为一个全新的用户环境,包括变量信息等等都将与之前不同。

3.–shell命令

使用此命令可以指定一个运行的shell,格式为:

“`shell

$ su –shell [shell类型] [用户名]

“`

例如:

“`shell

$ su –shell /bin/bash user1

“`

执行此命令会使user1用户进入bash shell。

四、su命令的安全问题

由于su命令能够轻松切换到其他用户账号下执行相关命令,它的安全性问题也备受关注。在使用su命令时,切勿将其滥用或者恶意使用。

另外,为了安全起见,建议在系统中禁止root用户进行SSH连接,这样即使密码被盗用了,黑客仍然无法登录系统。

掌握Linux命令su,可以帮助用户更便捷地切换不同用户账号进行操作,提高工作效率。在使用su命令时需要注意其安全性,遵循更佳实践,保障系统的安全性。

最后提醒各位Linux爱好者,不管是在使用su命令还是其他命令时,一定要认真仔细地阅读命令的用法文档和相关资料,遵循更佳实践,以确保系统的运行安全和稳定性。

相关问题拓展阅读:

linux su和sudo命令的区别

一. 使用 su 命令临时切换用户身份

1、su 的适用条件和威力

  su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用户没有这个权限,而这个权限恰恰由root所拥有。解决办法无法有两个,一是退出beinan用户,重新以root用户陵裤登录,但这种办法并不是更好的;二是我们没有必要退出beinan用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root。我们可以看到当然通过su 切换是一种比较好的办法;

  通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证;

  2、su 的用法:

  su

  -, -l, ——login 登录并改变到所切换的用户环境;

  -c, ——commmand=COMMAND 执行一个命令,然后退出所切换到的用户环境;

  至于更详细的,请参看man su ;

  3、su 的范例:

  su 在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;用户默认的登录环境,可尺空简以在/etc/passwd 中查得到,包括家目录,SHELL定义等;

  ?$ suPassword:# pwd/home/beinan

  su 加参数 – ,表示默认切换到root用户,并且改变到root用户亏尺的环境;

  ?$ pwd/home/beinan?$ su -Password:# pwd/root

  su 参数 – 用户名

  ?$ su – root 注:这个和su – 是一样的功能;

  Password:

  # pwd

  /root

  ?$ su – linuxsir 注:这是切换到 linuxsir用户

  Password: 注:在这里输入密码;

  ?$ pwd 注:查看用户当前所处的位置;

  /home/linuxsir

  ?$ id 注:查看用户的UID和GID信息,主要是看是否切换过来了;

  uid=505(linuxsir) gid=502(linuxsir) groups=0(root),500(beinan),502(linuxsir)

  ?$

  ?$ su – -c ls 注:这是su的参数组合,表示切换到root用户,并且改变到root环境,然后列出root家目录的文件,然后退出root用户;

  Password: 注:在这里输入root的密码;

  anaconda-ks.cfg Desktop install.log install.log.syslog testgroup testgroupbeinan testgrouproot

  ?$ pwd 注:查看当前用户所处的位置;

  /home/beinan

  ?$ id 注:查看当前用户信息;

  uid=500(beinan) gid=500(beinan) groups=500(beinan)

  4、su的优缺点;

  su 的确为管理带来方便,通过切换到root下,能完成所有系统管理工具,只要把root的密码交给任何一个普通用户,他都能切换到root来完成所有的系统管理工作;但通过su切换到root后,也有不安全因素;比如系统有10个用户,而且都参与管理。如果这10个用户都涉及到超级权限的运用,做为管理员如果想让其它用户通过su来切换到超级权限的root,必须把root权限密码都告诉这10个用户;如果这10个用户都有root权限,通过root权限可以做任何事,这在一定程度上就对系统的安全造成了威协;想想Windows吧,简直就是恶梦;“没有不安全的系统,只有不安全的人”,我们绝对不能保证这 10个用户都能按正常操作流程来管理系统,其中任何一人对系统操作的重大失误,都可能导致系统崩溃或数据损失;所以su 工具在多人参与的系统管理中,并不是更好的选择,su只适用于一两个人参与管理的系统,毕竟su并不能让普通用户受限的使用;超级用户root密码应该掌握在少数用户手中,这绝对是真理!所以集权而治的存在还是有一定道理的;

二. sudo 授权许可使用的su,也是受限制的su

  1. sudo 的适用条件

  由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。如果用su 来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参与管理时,更好是针对每个管理员的技术特长和管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo。

  通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su;

  sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权;

比如我们想用beinan普通用户通过more /etc/shadow文件的内容时,可能会出现下面的情况;

  ?$ more /etc/shadow/etc/shadow: 权限不够

  这时我们可以用sudo more /etc/shadow 来读取文件的内容;就就需要在/etc/soduers中给beinan授权

  于是我们就可以先su 到root用户下通过visudo 来改/etc/sudoers ;(比如我们是以beinan用户登录系统的)

  ?$ su

  Password: 注:在这里输入root密码

  下面运行visodu;

  # visudo 注:运行visudo 来改 /etc/sudoers

  加入如下一行,退出保存;退出保存,在这里要会用vi,visudo也是用的vi编辑器;至于vi的用法不多说了;beinan ALL=/bin/more 表示beinan可以切换到root下执行more 来查看文件;

  退回到beinan用户下,用exit命令;

  # exit

  exit

  ?$

  查看beinan的通过sudo能执行哪些命令?

  ?$ sudo -l

  Password: 注:在这里输入beinan用户的密码

  User beinan may run the following commands on this host: 注:在这里清晰的说明在本台主机上,beinan用户可以以root权限运行more ;在root权限下的more ,可以查看任何文本文件的内容的;

  (root) /bin/more

  最后,我们看看是不是beinan用户有能力看到/etc/shadow文件的内容;

  ?$ sudo more /etc/shadow

  beinan 不但能看到 /etc/shadow文件的内容,还能看到只有root权限下才能看到的其它文件的内容,比如;

  ?$ sudo more /etc/gshadow

  对于beinan用户查看和读取所有系统文件中,我只想把/etc/shadow 的内容可以让他查看;可以加入下面的一行;

  beinan ALL=/bin/more /etc/shadow

  题外话:有的弟兄会说,我通过su 切换到root用户就能看到所有想看的内容了,哈哈,对啊。但咱们现在不是在讲述sudo的用法吗?如果主机上有多个用户并且不知道root用户的密码,但又想查看某些他们看不到的文件,这时就需要管理员授权了;这就是sudo的好处;

  实例五:练习用户组在/etc/sudoers中写法;

  如果用户组出现在/etc/sudoers 中,前面要加%号,比如%beinan ,中间不能有空格;%beinan ALL=/usr/in/*,/in/*

  如果我们在 /etc/sudoers 中加上如上一行,表示beinan用户组下的所有成员,在所有可能的出现的主机名下,都能切换到root用户下运行 /usr/in和/in目录下的所有命令;

  实例六:练习取消某类程序的执行:

  取消程序某类程序的执行,要在命令动作前面加上!号; 在本例中也出现了通配符的*的用法;

  beinan ALL=/usr/in/*,/in/*,!/usr/in/fdisk 注:把这行规则加入到/etc/sudoers中;但您得有beinan这个用户组,并且beinan也是这个组中的才行;

  本规则表示beinan用户在所有可能存在的主机名的主机上运行/usr/in和/in下所有的程序,但fdisk 程序除外;

  ?$ sudo -l

  Password: 注:在这里输入beinan用户的密码;

  User beinan may run the following commands on this host:(root) /usr/in/*(root) /in/*(root) !/in/fdisk?$ sudo /in/fdisk -lSorry, user beinan is not allowed to execute ‘/in/fdisk -l’ as root on localhost.

  注:不能切换到root用户下运行fdisk 程序;

1、内容不同:

su命令:用来切换用户,substitute英文含义“数察代替”的意思。

sudo命令:sudo为superuser do 的简写,即使用超级用户来执行命令,一般是指root用户。

2、用法不同:

su命令:不加

用户名

默认是切换为root用户,切当前目录不改变,其他

环境变量

不变。悉族

sudo命睁毕弊令: 查看当前用户可以用sudo执行的命令都有哪些。

3、环境不同:

su命令:切换到root用户,但是并没有转到root用户家目录下,即没有改变用户的环境。

sudo命令:是当前用户切换到root,然后以root身份执行命令,执行完成后,直接退回到当前用户,而这些的前提是要通过sudo的

配置文件

/etc/sudoers来进行授权。

扩展资料:

su的参数:

-c或–command=:执行一个指令后就恢复原来的身份;

-f或–fast:使shell不用读取启动文件,适用于csh和tcsh;

-,-l,–login:切换用户时,使环境变量(home,shell,user,logname,path等)和欲切换的用户相同、不使用则取得用户的临时权限;

-m,-p,:变更身份时,保留环境变量不变;

-s,–shell=:指定执行命令的shell;

–help:显示帮助;

–version:显示版本信息;

用户账户:指定欲切换用户,默认切换为root。

参考资料:

百度百科-su

1、定义上:

su为switch user,即切答脊让换用户的简写。su是最简单的身份切换名,用su我们能够进行不论什么用户的切换,一般都是su – username,然后输入password就ok了,可是root用su切换到其它身份的时候是不须要输入password的。

sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令。

2、格式上:

su格式为两种:su -l USERNAME(-l为login,即登陆的简写)、su USERNAME。

sudo格式:sudo -u USERNAME COMMAND。

3、默认情况下:

su默认情况下如果不指定USERNAME(用户名),默认即为root,所以切换到root的身份的命令即为:su -root或su -,su root 或su。

sudo默认情况下,系统只有root用户可以执行sudo命令。需要root用户通过使用visudo命令编辑sudo的配置文件/etc/sudoers,才可以授权其他普通用户执行sudo命令。

4、密码上:

两个命令的更大区别是:sudo 命令需要输入当前用户野肢的密码,su 命清局令需要输入 root 用户的密码。

5、日志记录上:

尽管 sudo 命令是以目标用户(默认情况下是 root 用户)的身份执行命令,但是它们会使用 sudoer所配置的用户名来记录是谁执行命令。而 su 命令是无法直接跟踪记录用户切换到 root 用户之后执行了什么操作。

6、灵活性

sudo 命令比 su 命令灵活很多,因为甚至可以限制 sudo 用户可以访问哪些命令。换句话说,用户通过 sudo 命令只能访问他们工作需要的命令。而 su 命令让用户有权限做任何事情。

su表示切换用户命令命令,如:

输入:su命令后回车表示切换当前的用户到root用户,或者:

输慎尘镇入:su – root(或者其他用户名)这里加了”-“后表示也切换的当前的环境变量到新用户的环境变量,su root(或宽粗者其他用户名)表示不切换环境变量到当前用户下兄携。

sudo 表示获取临时的root权限命令,如:

sudo gedit /etc/shadow,表示临时使用root权限来编辑/etc/shadow密码文件,因为/etc/shadow密码文件需要使用root权限才能打开与编辑。所以这里使用了sudo命令临时使用root权限来做一些普通账户无法完成的工作~

sudo:暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当余州庆前用户的密码,而不是超级账户的密码。缺点是每次执行超级用户权限都要在命令前加上sudo,优点是在当前终端再使用sudo不要再重复输入密码,只对于当前终端有效。

sudo -i:为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输竖握入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为”#”而不是”$”。想退回普通账户时可以执行”exit”或”logout”。

linux系统没有权限使用su命令解决办法?

有用户反映Linux系统中想使用命令进行一些配置,但是提示没有权限,怎么解决呢?下面我就给大家介绍下Linux普通用户没有权限使用系统命令的解决方法。

  Linux普通用户没有权限使用命令怎么办?

  解决方法:

  这里就要用到linux的特殊权限命令了:suid权限的赋加。

  比如说你登陆普通用户user1,想要使用reboot的命令,一般情况下会提示你没有权限执行此命令。

  但如果把此命令的

配置茄隐文件

的权限修改下,就可以登陆普通用户使用此命令了。

  首先使用root用户登陆系统;

  然后敲入 “which reboot”,会得到reboot配置文件的

绝对路径

/in/reboot

  然后赋加给/in/reboot文件权限S,

  chmod 4744 /in/reboot

  然后切换到user1:su – user1

  再次输入reboot后就可以执行此命令了。

 

 补充:系统常用维护技巧

,在 “开始” 菜单中选择 “控制面板” 选项,打开 “控制面板” 窗口,单击 “管理工具” 链接

,在打开的 “管理工具” 窗口中双击 “

事件查看器

” 图标

, 接着会打开 “事件查看器” 窗口

,在右侧窗格中的树状目录中选择需要查看的日志类型,如 “事件查看器本地–Win日志–

系统日志

,在接着在中间的 “系统” 列表中即查看到关于系统的事件日志

,双击日志名称,可以打开 “事件属性” 对话框,切换到 “常规” 选项卡,可以查看该日志的常规描述信息

,切换到 “详细信息” 选项卡,可以查看该日志的详细信息

,打开 “控制面板” 窗口,单击 “操作中心” 链接,打开 “操作中心” 窗口,展开 “维护” 区域

,单击 “查看可靠性历史记录” 链接,打开 “可靠性监视程序” 主界面,如图所示, 用户可以选择按天或者按周为

时间单位

来查看系统的稳定性曲线表,如果系统近日没出过什么状况, 那么按周来查看会比较合适。观察图中的曲线可以发现,在某段时间内,系统遇到些问题,可靠性指数曲线呈下降的趋势,并且在这段时间系统遇到了三次问题和一次警告,在下方的列表中可以查看详细的问题信息。

  相关阅读:系统故障导致死机怎么解决

、病毒原因造成电脑频繁死机

  由于此类原因造成该故障的现象比较常见,当计算机感染病毒后,主要表现在以下几个方面:

  ①系统启动时间延长;

  ②系统启动时自动启动一些不必要的程序;

  ③无故死机

  ④屏幕上出现一些

乱码

  其表现形式层出不穷,由于篇幅原因就介绍到此,在此需要一并提出的是,倘若因为病毒损坏了一些系统文件,导致系统工作不稳定,我们可以在

安全模式

下用系统文件检查器对系统文件予以修复。

、由于某些元件热稳定性不良造成此类故障(具体表现在CPU、电源、

内存条

、主板)

  对此,我们可以让电脑运行一段时间,待其死机后,再用手触摸以上各部件,倘若温度太高则说明该部件可能存在问题,我们可用替换法来诊断。值得注意的是在安装CPU风扇时更好能涂一些

散热硅脂

,但我在某些组装的电脑上却侍手是很难见其踪影,实践证明,硅脂能降低温度5—10度左右,特别是P Ⅲ 的电脑上,倘若不涂散热硅脂,计算机根本就不能正常工作,曾遇到过一次此类现象。该机主要配置如下:磐英815EP主板、PⅢ733CPU、133外频的128M内存条,当该机组装完后,频繁死机,连Windows系统都不能正常安装,但是更换

赛扬

533的CPU后,故障排除颤谈厅,怀疑主板或CPU有问题,但更换同型号的主板、CPU后该故障也不能解决。后来由于发现其温度太高,在CPU上涂了一些散热硅脂,故障完全解决。实践证明在赛扬533以上的CPU上必须要涂散热硅脂,否则极有可能引起死机故障。

、由于各部件接触不良导致计算机频繁死机

  此类现象比较常见,特别是在购买一段时间的电脑上。由于各部件大多是靠

金手指

与主板接触,经过一段时间后其金手指部位会出现氧化现象,在拔下各卡后会发现金手指部位已经泛黄,此时,我们可用橡皮擦来回擦拭其泛黄处来予以清洁。

、由于硬件之间不兼容造成电脑频繁死机

  此类现象常见于显卡与其它部件不兼容或内存条与主板不兼容,例如SIS的显卡,当然其它设备也有可能发生不兼容现象,对此可以将其它不必要的设备如Modem、声卡等设备拆下后予以判断。

、软件冲突或损坏引起死机

  此类故障,一般都会发生在同一点,对此可将该软件卸掉来予以解决。

如果您在Linux系统中使用su命令时没有权限,则可能需要执行以下步骤来解决问题:

确认您是否拥有sudo权限。sudo是一种可以让非root用户以root权限运行命令的工具。您可以尝试使用sudo命令来执行需要root权限的操作。例如:

sudo apt-get update

如果系统提示您没有sudo权限,则需要联系系统管理员获取sudo权限。

如果您没有sudo权限,您可以尝试使用其他的root用户,例如系统管理员或其他拥有root权限的用户。使用以下命令切换到其他root用户:

su –

其中,是其他root用户的用户名。

如果您无法使用其他root用户,您可以尝试使用恢复模式进入系统。恢复模式是一种系统维护模式,可以让您以root权限登录系统。具体步骤如下:

重启系统,按住Shift键进入grub引导界面。

在grub界面中,选择Advanced options for Ubuntu或Advanced options for Debian等选项(具体选项名称可能因发行版而异)。

在Advanced options菜单中,选择recovery mode选项,然后按下Enter键进入恢复模式。

在恢复模式中,选择root shell(root命令行)选项,然后按下Enter键进入root用户命令行界面。

在root命令行界面中,您可以执行需要root权限的操作。

请注意,恢复模式是一种系统维护模式,可以让您以root权限登录系统并执行一些维护操作。请确保只执行必要的操作,不要随意游弯更改系统文件或配置,以免导致系磨纳统不稳定或无法启动。

linux 命令 su的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 命令 su,掌握Linux命令su,实现用户身份切换,linux su和sudo命令的区别,linux系统没有权限使用su命令解决办法?的信息别忘了在本站进行查找喔。


数据运维技术 » 掌握Linux命令su,实现用户身份切换 (linux 命令 su)