切换用户或以其他用户身份执行命令

su: 即 switch user,命令可以切换用户身份,并且以指定用户的身份执行命令

格式:

su [options...] [-] [user [args...]]

常见选项:

-l --login su -l UserName 相当于 su - UserName

-c, --command pass a single command to the shell with -c

切换用户的方式:

su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换

su - UserName:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换

说明:root su至其他用户无须密码;非root用户切换时需要密码

注意:su 切换新用户后,使用 exit 退回至旧的用户,而不要再用 su 切换至旧用户,否则会生成很多的bash子进程,环境可能会混乱。

换个身份执行命令:

su [-] UserName -c 'COMMAND'

范例:

[root@centos8 ~]#getent passwd mage

mage:x:1001:1001::/home/mage:/bin/bash

[root@centos8 ~]#usermod -s /bin/false mage

[root@centos8 ~]#getent passwd mage

mage:x:1001:1001::/home/mage:/bin/false

[root@centos8 ~]#su - mage

Last login: Fri Mar 27 09:18:57 CST 2020 on pts/0

[root@centos8 ~]#whomai

-bash: whomai: command not found

[root@centos8 ~]#whoami

root

范例:

[root@centos8 ~]#su -s /sbin/nologin wang

This account is currently not available.

[root@centos8 ~]#whoami

root

[root@centos8 ~]#su -s /bin/false wang

[root@centos8 ~]#whoami

root

范例:

[wang@centos8 ~]$su - root -c "getent shadow"

范例:

[root@centos8 ~]#su - wang -c 'touch wang.txt'

[root@centos8 ~]#ll ~wang/

total 0

-rw-rw-r-- 1 wang wang 0 Mar 27 09:31 wang1.txt

-rw-rw-r-- 1 wang wang 0 Mar 27 09:32 wang2.txt

范例:

[root@centos8 ~]#su bin

This account is currently not available.

[root@centos8 ~]#su -s /bin/bash bin

bash-4.4$ whoami

bin

bash-4.4$

[root@centos8 ~]#getent passwd tss

tss:x:59:59:Account used by the trousers package to sandbox the tcsd

daemon:/dev/null:/sbin/nologin

[root@centos8 ~]#su - -s /bin/bash tss

Last login: Fri Mar 27 09:46:43 CST 2020 on pts/0

su: warning: cannot change directory to /dev/null: Not a directory

-bash: /dev/null/.bash_profile: Not a directory

[tss@centos8 root]$pwd

/root

[tss@centos8 root]$whoami

tss

linux学习(五)用户与组管理命令,以及用户信息文件解释

目录 (1)/etc/passwd文件 (2)/etc/shadow passwd命令 userdel命令 usermod命令 groupadd @(用户与组管理命令) linux是一个多用户多任务的 ...

Linux用户与组管理命令

1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. who | cut -d" " -f1 | sort -u 或 who | cut -d ...

linux学习16 Linux用户和组管理命令演练和实战应用

一.上集回顾 1.bash globing,IO重定向及管道 glob:*,?,[],[^] IO重定向: >,>>, 2>,2>> &>,& ...

linux用户与组管理命令的基本操作

用户账号管理命令 为了提高系统的利用率,避免因多个用户共用一个root账号而造成不必要要的系统安全隐患,通常需要为 新用户添加账户.在Linux系统中,添加用户只能由超级用户来完成,也就是说,只能由r ...

Linux用户和组管理命令-用户创建useradd

用户管理命令 useradd usermod userdel 组帐号维护命令 groupadd groupmod groupdel 用户创建 useradd 命令可以创建新的Linux用户 格式: u ...

Linux就该这么学--命令集合5(用户与组管理命令)

1.useradd命令用于创建新用户:(useradd [选项] 用户名) 附录: -d 指定用户的家目录 -D 展示默认值 -e 账号有效截止日期,格式:YYY-MM-DD -g 指定一个初始用户组 ...

Linux用户和组管理命令-用户属性修改usermod

用户属性修改 usermod 命令可以修改用户属性 格式: usermod [OPTION] login 常见选项: -u UID: 新UID -g GID: 新主组 -G GROUP1[,GROUP ...

添加用户useradd,给用户设置修改密码passwd,修改用户信息usermod,修改用户密码状态chage,删除用户userdel,查询用户及组id,切换用户su,查看当前环境变量env

useradd 用户名 passwd 用户名,给指定用户设密码 passwd给当前用户设密码 添加一个用户系统会自动在以下文件或目录创建对应用户信息: [root@localhost ~]# grep ...

Linux用户和组管理命令-用户删除userdel

删除用户 userdel 可删除Linux 用户 格式: userdel [OPTION]... Login 常见选项: -f, --force 强制 -r, --remove 删除用户家目录和邮箱 ...

随机推荐

Convention插件

考虑使用COnvention插件可以进行零配置而且插件进行很多规范的约定也可以对开发合作当中按着它相应的规律开发..感觉也挺方便管理的.下面简单介绍它的使用. 首先我们需要使用到的jar包: Java ...

LeetCode15 3Sum

题意: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find al ...

STL unique使用问题

string strs[] = {"one","one","two","three","three" ...

RFC 2327--SDP

Network Working Group M. Handley Request for Comments: 2327 V. Jacobson Category: Standards Track IS ...

iOS开发分析"秘密"App内容页面的效果(两)

@我前几天写的"秘密"的Cell制品的效果,想要的效果还是有差距,并且扩展性非常不好,于是重写封装,把总体视图都放到scrollView中,基本是和secret app 一模一样的 ...

使用Reactive Extensions(Rx),对短时间内多次发生的事件限流

使用Reactive Extensions(Rx),对短时间内多次发生的事件限流 牛刀小试:使用Reactive Extensions(Rx),对短时间内多次发生的事件限流 我之前有一篇文章介绍到了R ...

Identity(三)

本文摘自木宛城主的 ASP.NET MVC 随想录——开始使用ASP.NET Identity,初级篇 - 木宛城主 - 博客园 由于ASP.NET Membership.ASP.NET Simple ...

每日linux命令学习-grep模式检索

grep模式检索指令包括grep,egrep,和fgrep,.Linux系统使用正则表达式优化文本检索,所以在此,笔者首先学习了一下正则表达式. 1. 正则表达式 正则表达式使用被称为元字符(Meta ...

正则表达式 —— Cases 与 Tricks

1. cases 匹配任意单词(两侧可以有多个空格): ( +[a-zA-Z]+ +) 上述表达式无法匹配句子末尾的单词,若想匹配句尾或者逗号前的单词,则可拓展为: ( +[a-zA-Z]+[?,.] ...

python批量拷贝文件

普通批量拷贝文件 import os import shutil import logging from logging import handlers from colorama import Fo ...