linux su命令参数及用法详解--linux切换用户命令
linux su命令参数及用法详解--linux切换用户命令
建议大家切换用户的时候使用 su - root 这样,否则可能发现某些命令执行不了关于su 、su - 及sudo的区别请往下看
1.命令作用
su的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码。
2.使用方式
su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
3.参数说明
-f ,–fast:不必读启动文件(如csh.cshrc 等),仅用于csh或tcsh两种Shell。
-l ,–login:加了这个参数之后,就好像是重新登陆一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并
且工作目录也会改变。
如果没有指定USER,缺省情况是root。
-m,-p ,–preserve-environment:执行su时不改变环境变数。
-c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。
–help 显示说明文件
–version 显示版本资讯
USER:欲变更的使用者账号,
ARG: 传入新的Shell参数。
4.例子
su [用户名]
a>在root用户下, 输入su 普通用户. 则切换至普通用户, 从root切换到变通用户不需要密码
b>在普通用户下, 输入su [用户名]
提示password:
输入用户的PASSWORD, 则切换至该用户
扩展阅读一:Linux下su命令与su - 命令有什么区别?
知道两个命令的区别了)
su - 是完整的切换到一个用户环境
所以建议大家切换用户的时候,尽量使用su - linuxso 这样否则可能发现某些命令执行不了
扩展阅读二:su和sudo的区别
由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。
如果用su 来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。
特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的技术特长和管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到sudo。
通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root 密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su;
sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root (或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权;。
【linux】su、sudo、sudosu、sudo-i的用法和区别
【linux】su、sudo、sudosu、sudo-i的⽤法和区别
sudo : 暂时切换到超级⽤户模式以执⾏超级⽤户权限,提⽰输⼊密码时该密码为当前⽤户的密码,⽽不是超级账户的密码。
不过有时间限制,Ubuntu默认为⼀次时长15分钟。
su :切换到某某⽤户模式,提⽰输⼊密码时该密码为切换后账户的密码,⽤法为“su 账户名称”。
如果后⾯不加账户时系统默认为root账户,密码也为超级账户的密码。
没有时间限制。
sudo -i: 为了频繁的执⾏某些只有超级⽤户才能执⾏的权限,⽽不⽤每次输⼊密码,可以使⽤该命令。
提⽰输⼊密码时该密码为当前账户的密码。
没有时间限制。
执⾏该命令后提⽰符变为“#”⽽不是“$”。
想退回普通账户时可以执⾏“exit”或“logout” 。
sudo -i 直接运⾏sudo命令加-i参数
sudo su 运⾏sudo命令给su命令提权,运⾏su命令。
sudo -i 运⾏结果 PWD=/root
sudo su 运⾏结果 PWD=/home/⽤户名(当前⽤户主⽬录)。
Linux下sudo和chmod命令的使用
Linux的两个权限命令。
一,sudo命令sudo命令允许当前普通用户使用root管理员权限进行操作而无需root登录,这样可以减少因root登录而造成的各种不便。
sudo命令的参数sudo命令包含了许多参数,下面是一些常用参数的说明:sudo -h Help 列出使用方法,退出。
sudo -V Version 显示版本信息,并退出。
sudo -l List 列出当前用户可以执行的命令。
只有在sudoers里的用户才能使用该选项。
sudo -u username|#uid User 以指定用户的身份执行命令。
后面的用户是除root以外的,可以是用户名,也可以是#uid。
sudo -k Kill 清除“入场卷”上的时间,下次再使用sudo时要再输入密码。
sudo -K Sure kill 与-k类似,但是它还要撕毁“入场卷”,也就是删除时间戳文件。
sudo -b command Background 在后台执行指定的命令。
sudo -p prompt command Prompt 可以更改询问密码的提示语,其中%u会代换为使用者帐号名称,%h会显示主机名称。
非常人性化的设计。
sudo -e file Edit 不是执行命令,而是修改文件,相当于命令sudoedit。
v例句:SUDO RM XX.FILE二,chmod命令Linux/Unix 的档案调用权限分为三级:档案拥有者、群组、其他。
利用 chmod 可以藉以控制档案如何被他人所调用参数:mode : 权限设定字串,格式如下: [ugoa...][[+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
linux系统中su的用法
linux系统中su的用法在Linux系统中,"su"是一个非常常用且实用的命令,它用于切换用户身份。
下面我们将介绍一下su命令的用法和功能。
首先,su命令是"Substitute User"的缩写,可以在不注销当前用户的情况下切换到其他用户账号。
这是在多用户系统中非常有用的功能,特别是当需要执行一些需要更高权限的命令时。
su命令的基本用法是:```shellsu [选项] [用户名]```在命令中,选项可以是"-l"或"-"(表示登录到目标用户的环境),也可以是"-c"后加命令(表示执行完命令后返回到原来的用户)。
例如,要以root身份切换用户,可以使用以下命令:```shellsu -```这将要求输入root用户的密码,并将当前用户切换到root用户。
切换后,用户将拥有root用户的权限和环境。
要指定切换到其他用户,只需在su命令后面加上用户名即可。
例如,切换到名为"testuser"的用户,可以使用以下命令:```shellsu - testuser```这将要求输入"testuser"的密码,并将当前用户切换到"testuser"用户。
需要注意的是,默认情况下,su命令切换到目标用户的环境变量会保留原用户的值。
如果需要切换后完全使用目标用户的环境变量,可以使用"-l"或"-"选项。
如果仅想切换用户执行一次命令,而不是保持会话,可以使用"-c"选项。
总之,su命令在Linux系统中是非常有用的,可以方便地切换用户身份,执行需要更高权限的命令。
希望以上介绍对您有所帮助。
Linux下普通用户用sudosu给自己加root权限的方法
Linux下普通⽤户⽤sudosu给⾃⼰加root权限的⽅法⾸先:sudo这个命令就是给后⾯的命令加上root权限(sudo=superuser do),su这个命令是switch user,切换⽤户,你sudo su这个命令的意思是⽤root的权限来切换到()⽤户。
你根本没有指定⽤户,当然切换不过去你要切换到root,那就是su root,然后输⼊root的密码,你要让⾃⼰成为有执⾏sudo权限的⼈,那就要修改sudoer-list,在命令⾏⾥敲sudo visudo打开如图所⽰:然后在打开的⽂件⾥把你的⽤户名加上去(按照⾥⾯已有的⽤户的格式来填,差不多是username ALL=(ALL)ALL)添加⼀⾏数据,就成功啦:yu ALL=(ALL) ALL切记:⾸先你得在root 权限添加⾃已的,否则免谈。
ps:下⾯介绍下Linux su和sudo命令的区别,并获得root权限su(superuser)su表⽰切换⽤户,如:输⼊:su命令后回车表⽰切换当前的⽤户到root⽤户,或者:输⼊:su - root(或者其他⽤户名)这⾥加了"-"后表⽰也切换的当前的环境变量到新⽤户的环境变量。
su root(或者其他⽤户名)表⽰不切换环境变量到当前⽤户下。
sudo 表⽰获取临时的root权限命令,如: sudo gedit /etc/shadow,表⽰临时使⽤root权限来编辑/etc/shadow密码⽂件,因为/etc/shadow密码⽂件需要使⽤root权限才能打开与编辑。
所以这⾥使⽤了sudo命令临时使⽤root权限来做⼀些普通账户⽆法完成的⼯作。
sudo -i表⽰以root⾝份登录,进程的实际⽤户ID和有效⽤户ID都变成了root,主⽬录也切换为root的主⽬录。
获得root权限:1、sudo su(实质上就是su,⽽su默认是获得root权限)2、su3、su root4、su -root5、sudo -i总结以上所述是⼩编给⼤家介绍的Linux下普通⽤户⽤sudo su给⾃⼰加root权限的⽅法,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
linux里su的用法
linux里su的用法Linux中su命令的用法在Linux操作系统中,su(切换用户)是一条常用的命令,它用于在当前的会话中切换用户身份。
su命令允许用户暂时切换为其他用户,包括超级用户(root)以及普通用户。
su命令的基本语法为:```shellsu [选项] [用户名]```1. 切换到root用户可以通过su命令切换到root用户,执行以下命令:```shellsu -```用户将会被要求输入root用户的密码,输入正确后,会话将会切换到root用户的身份。
切换到root用户后,用户可以执行各种需要超级用户权限的操作。
2. 切换到其他用户用户可以通过su命令切换到除root外的其他用户,执行以下命令:```shellsu - [用户名]```用户将会被要求输入目标用户的密码,输入正确后,会话将会切换到目标用户的身份。
注意:切换用户时,需要输入目标用户的密码。
只有超级用户(root)可以切换到其他用户的身份。
3. 临时切换用户如果想要在不知道目标用户密码的情况下,临时切换到其他用户,可以执行以下命令:```shellsu [用户名]```执行以上命令后,系统会要求输入当前用户的密码,并临时切换到目标用户的身份。
这种方式的切换仅限于切换到与当前用户所属组相同的用户。
需要注意的是,在临时切换用户之后,只能执行目标用户在当前环境下具有权限的操作。
如果要执行需要超级用户权限的操作,仍然需要输入root用户的密码。
总结:su命令是Linux系统中用于切换用户身份的一个非常有用的命令。
通过su命令,用户可以临时切换到其他用户的身份,并执行相应的操作。
无论是切换到root用户还是其他普通用户,都需要输入相应用户的密码以完成身份切换。
如何在不使用密码的情况下切换(su)到另一个用户帐户
如何在不使⽤密码的情况下切换(su)到另⼀个⽤户帐户在本⽂中,我们将展⽰如何在不需要密码的情况下切换到另⼀个或特定的⽤户账户。
例如,我们有⼀个名为postgres的⽤户账户(默认的PostgreSQL超级⽤户系统账户),我们希望在名为postgres的组中的每个⽤户(通常是我们的PostgreSQL数据库和系统管理员)使⽤su命令切换到postgres账户,⽽⽆需输⼊密码。
默认情况下,只有root⽤户可以在不输⼊密码的情况下切换到另⼀个⽤户账户。
任何其他⽤户都会被提⽰输⼊他们要切换到的⽤户账户的密码(如果他们使⽤的是sudo命令,则会被提⽰输⼊他们的密码),如果他们没有提供正确的密码,他们会得到⼀个"authentication failed"认证失败的错误提⽰。
您可以使⽤下⾯提供的两种解决⽅案中的任何⼀种来解决上述问题。
1.使⽤PAM⾝份验证模块PAM(可插⼊⾝份验证模块)是现代Linux操作系统上⽤户⾝份验证的核⼼。
为了允许特定组中的⽤户⽆需密码即可切换到另⼀个⽤户帐户,我们可以在/etc/pam.d/su⽂件中修改su命令的默认PAM设置。
#vim /etc/pam.d/su或$ sudo vim /etc/pam.d/su在 "auth sufficient pam_rootok.so "后添加以下配置,如下所⽰。
auth [success=ignore default=1] pam_succeed_if.so user = postgresauth sufficient pam_succeed_if.so use_uid user ingroup postgres在上述配置中,第⼀⾏检查⽬标⽤户是否为postgres,如果是,则服务检查当前⽤户,否则,default=1跳过该⾏并执⾏正常的⾝份验证步骤。
auth [success=ignore default=1] pam_succeed_if.so user = postgres下来的⼀⾏检查当前⽤户是否在postgres组中,如果是,则认为认证过程成功,并返回⾜够的结果。
sudo su命令的作用
sudo su命令的作用
`sudo` 和`su` 是两个在Linux 系统中常用的命令,但它们的作用是不同的。
`sudo` 命令允许经过授权的用户以其他用户(通常是超级用户或其他系统
管理员)的身份执行命令。
它常用于需要以更高权限运行程序或进行系统管理任务的情况。
使用 `sudo` 可以执行各种系统管理任务,如更新软件包、
管理系统服务或修改系统设置等。
`su` 命令用于切换当前用户的身份到另一个用户。
通过输入 `su` 并后跟目标用户的用户名,你可以切换到其他用户并登录为该用户。
这通常用于需要以其他用户身份执行任务的情况,例如系统管理员可能需要切换到普通用户来执行某些操作,然后再切换回管理员身份。
总的来说,`sudo` 命令用于在现有会话中以更高权限执行命令,而 `su` 命
令用于切换当前用户的身份到另一个用户。
在使用这些命令时,需要注意安全性和权限管理,以确保系统安全和稳定性。
su基础知识点总结
su基础知识点总结Su是一种UNIX命令,意为“切换用户”(switch user),用于在系统中切换当前用户身份为其他用户。
Su命令通常用于在命令行中按需获取超级用户权限,或者切换到其他用户进行操作。
Su命令的使用形式为:su [选项] [用户名]。
其中,选项包括-h、-l、-c等;用户名表示需要切换到的用户的名称。
如果未指定用户名,则默认切换到超级用户root。
Su的基本用法1. 切换到超级用户rootsu如果不指定用户名,则默认切换到超级用户root。
在输入su命令后,会提示输入超级用户的密码,验证通过后即可切换为root用户身份。
2. 切换到其他用户su -l username使用“-l”选项指定要切换到的用户,并输入该用户的密码,即可切换为指定用户身份。
3. 切换到其他用户并执行命令su -c "command" username使用“-c”选项可指定在切换到其他用户后执行的命令。
Su命令的一些选项-h:显示帮助信息,列出Su命令的选项和用法。
-l:使用登录shell切换到指定用户。
-c "command":切换到指定用户后执行命令,然后返回原用户。
-m:设置环境变量,使切换后的用户的环境和目录和切换前一致。
-f:强制使用登录shell来切换用户。
Su的使用示例1. 切换到超级用户rootsu输入密码后即可切换为超级用户root。
2. 切换到用户testsu -l test输入用户test的密码后即可切换为用户test。
3. 切换到用户test并执行命令su -c "ls -l" test切换到用户test并执行ls -l命令后返回原用户。
Su命令的安全性Su命令对系统的安全性具有一定的影响。
由于用户可以利用Su命令临时获取超级用户权限,并且以root权限进行操作,因此需要严格控制Su命令的使用范围。
1. 限制Su命令的使用范围可以通过修改/etc/sudoers文件,添加允许的用户和允许使用Su命令执行的命令,来限制Su命令的使用范围。
Linux课程笔记用户身份切换命令
Linux课程笔记⽤户⾝份切换命令超级⽤户root具有超级管理权限,由于权限太⼤,如果管理不好,就会对系统安全带来安全隐患。
在⼯作场景中,⼀般临时性处理⼯作,都是以普通⽤户的⾝份完成,只在必要时才使⽤超级⽤户root。
1 su命令1.1 su介绍通过su命令可以在⽤户之间切换,超级⽤户root向普通⽤户或虚拟⽤户切换不需要密码(这就是超极权限所在)。
其他普通⽤户之间或者普通⽤户切换到root,都需要切换⽤户的秘密验证。
su参数选项注释说明-,-l,--login使⼀个shell成为登陆的shell,如执⾏su - oldboy,表⽰该⽤户改变⾝份为oldboy,并且使⽤oldboy⽤户的环境变量配置。
-c,--command=COMMAND 切换到⼀个shell下,执⾏⼀个命令,然后退出所切换的⽤户环境-m,--presserve-environment 切换⽤户时,不重置⽤户环境变量,-p的功能同-m,这个参数为su的默认值,较少使⽤-s,--shell=SHELL如果/ec/shell允许,则运⾏指定的shellsu实例:[qinbf@qinbf ~]$ whoamiqinbf[qinbf@qinbf ~]$ su - #输⼊的是root的密码⼝令:[root@qinbf ~]# whoamiroot[root@qinbf ~]# envHOSTNAME=qinbfSHELL=/bin/bashTERM=linuxHISTSIZE=1000USER=root……PWD=/rootLANG=zh_CN.UTF-8SHLVL=1HOME=/rootLOGNAME=root[root@qinbf ~]# su - qinbf[qinbf@qinbf ~]$ whoamiqinbf[qinbf@qinbf ~]$ envHOSTNAME=qinbfHOSTNAME=qinbfSHELL=/bin/bashTERM=linuxHISTSIZE=1000USER=qinbf…….PWD=/home/qinbfLANG=zh_CN.UTF-8SHLVL=1HOME=/home/qinbfLOGNAME=qinbf[qinbf@qinbf ~]$ exit # exit退出当前⽤户,这个命令可以⽤ctrl+d替换logout[root@qinbf ~]#总结:su切换到其他⽤户不加“-”,环境变量是不会改变的,可能会导致异常,⽐较规范的写法是“su - ⽤户”如何让系统在每⼀次开机时⾃动普通⽤户启动指定的服务脚本?把要执⾏的脚本放⼊开机⾃启动配置⽂件/etc/rc.localsu - tddoc -c ‘/bin/sh /home/tddoc/bin/deploy.sh’su命令优缺点su命令为我们管理linux带来⽅便,但是也带来了很⼤的安全管理问题,切换到root⾝份,可以改掉root的密码,让其他⽤户⽆法再切换到root。
su遇到不适当的参数
su遇到不适当的参数
当`su`命令遇到不适当的参数时,它可能会产生不同的结果,
具体取决于所使用的操作系统和命令行解释器。
下面我将从多个角
度来回答该问题。
首先,`su`命令是用于切换用户身份的命令,通常用于从当前
用户切换到其他用户。
如果你在使用`su`命令时提供了一个不存在
的用户作为参数,系统通常会显示一个错误消息,指示该用户不存在。
这是因为系统无法找到与提供的用户名匹配的用户账户。
另外,如果你没有足够的权限或没有正确的密码来切换到指定
的用户,`su`命令也会返回错误消息。
这是因为`su`命令需要超级
用户权限或者目标用户的密码才能成功切换用户身份。
此外,`su`命令还可以接受其他参数,用于指定要切换到的用
户的shell环境。
例如,使用`su -`参数可以切换到目标用户的完
整环境,包括用户的主目录和shell配置文件。
而使用`su -s`参数
可以指定要使用的shell程序。
在一些特殊情况下,如果你在使用`su`命令时未提供任何参数,
它可能会显示帮助信息或当前系统上可用的用户列表。
这取决于所使用的操作系统和版本。
总结来说,当`su`命令遇到不适当的参数时,它通常会显示错误消息或帮助信息,指示提供的参数无效或缺失。
如果你遇到了问题,你可以检查提供的参数是否正确,并确保你具有足够的权限来执行相应的操作。
