su、sudo,限制root远程登录

su:切换用户的命令,在root用户下,可以用这个命令来切换。
[[email protected] ~]# su - aming
上一次登录:日 1月 21 20:36:34 CST 2018pts/0 上
[[email protected] ~]$
我们可以看到,用户已经从root转换到了aming。我们也可以输入命令id来查看它是谁
[[email protected] ~]$ id
uid=1001(aming) gid=1001(aming) 组=1001(aming) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
还有就是我们在su后面加了一个“-”,它是为了彻底的切换用户,包括它自己的设置,环境变量等等,如果不加“-”,那你会看见它还在/root下。
[[email protected] ~]# su aming
[[email protected] root]$ pwd
/root
而加了“-”后你会发现,它已经切换到用户自己的家目录下。
[[email protected] ~]# su - aming
上一次登录:日 1月 21 20:36:34 CST 2018pts/0 上
[[email protected] ~]$ pwd
/home/aming
这样他就会加载自己家目录的配置文件。所以我们以后切换用户的时候一定要加“-”,这样才会切换的彻底。
我们也可以用指定的用户去执行命令
[[email protected] ~]# su - -c "touch /tmp/aming.111" aming
[[email protected] ~]# ls -lt /tmp/ |head -n3
总用量 0
-rw-rw-r--. 1 aming aming 0 1月 21 20:49 aming.111
drwx------. 3 root root 17 1月 21 20:12 systemd-private-4bdc2a92b8c349a6b32a5ecb8338ff3a-vmtoolsd.service-1eX2h5
然后我们可以看到用aming用户执行的一个命令。

我么也可以从普通用户切换到普通用户,只要输入要切换用户的密码就行。
[[email protected] ~]$ su - user5
[[email protected] ~]$ su - user5
密码:
上一次登录:日 1月 21 21:00:19 CST 2018pts/0 上
su: 警告:无法更改到 /home/user5 目录: 没有那个文件或目录
-bash-4.2$
我们可以看到,切换到user5时和其他的用户不一样,这是因为user5的家目录不存在,所以他也没有用户的配置文件可加载,所以才显示成这个样子,那么怎样才能显示正常呢?我们只要给user5添加一个家目录就可以了。
首先我们先用ID命令查看一下user5
-bash-4.2$ id user5
uid=1002(user5) gid=1002(user5) 组=1002(user5)
首先,我们先切换到root用户下,创建user5的家目录
[[email protected] ~]# mkdir /home/user5
然后改变他的所属组和所属主
[[email protected] ~]# chown user5:user5 /home/user5
但是这时候切换还是不行,因为这里面缺少里面的配置文件
[[email protected] ~]# su - user5
上一次登录:日 1月 21 21:33:02 CST 2018pts/0 上
-bash-4.2$
我们只能去其他地方去找配置文件,然后拷贝到user5的家目录下面去,系统有一个模板目录/etc/skel
[[email protected] ~]# ls -la /etc/skel/
总用量 24
drwxr-xr-x. 2 root root 62 12月 14 21:57 .
drwxr-xr-x. 74 root root 8192 1月 21 21:00 ..
-rw-r--r--. 1 root root 18 8月 3 05:11 .bash_logout
-rw-r--r--. 1 root root 193 8月 3 05:11 .bash_profile
-rw-r--r--. 1 root root 231 8月 3 05:11 .bashrc
然后我们拷贝到user5家目录下
[[email protected] ~]# cp /etc/skel/.bash* /home/user5
然后从新改变他的所属组和所属主
[[email protected] ~]# chown -R user5:user5 !$ (这时里面要加-R,因为里面有了文件,!$这是重复上一个命令最后一条的参数)
然后我们再登录就恢复正常了
[[email protected] ~]# su - user5
上一次登录:日 1月 21 21:35:16 CST 2018pts/0 上
[[email protected] ~]$

root用户可以su到普通用户,那普通用户可以su到root用户下吗?当然可以,只要你知道root的密码就行。
[[email protected] ~]$ su -
密码:
上一次登录:日 1月 21 21:53:48 CST 2018pts/0 上
[[email protected] ~]#

sudo命令,它可以让普通用户用指定的用户权限去执行一条命令,多以root用户居多。
我们先打开配置文件
[[email protected] ~]# visudo(在这里我们不要用vi去打开这个配置文件,因为这是系统很重要的文件,一旦我们用的语法错误,vi是检测不出来的,所以我们要用visudo来打开它)
然后我们向下,找到这一行,这是这个配置文件最核心的一句配置,它的意思是允许root用户在任何地方使用命令,然后我们模仿一下,让aming用户可一个在任何地方执行命令

Allow root to run any commands anywhere

root ALL=(ALL) ALL
aming ALL=(ALL) ls,mv,cat
然后输入:wq保存退出
但是系统提示我们有错误

>> /etc/sudoers: 语法错误 near line 93 <<<
现在做什么?
选项有:
重新编辑 sudoers 文件(e)
退出,不保存对 sudoers 文件的更改(x)
退出并将更改保存到 sudoers 文件(危险!)(Q)
在visudo中有一些使用的范例,可供我们查看。
45 # Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
我们可以看到,我们要执行的命令必须要输入它的绝对路径,只写一个路径它不知道你的命令在哪里
aming ALL=(ALL) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
然后我们保存退出,这样就没问题了
然后我们去aming用户下去ls /root/
[[email protected] ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
这时我们就要用sudu这个命令去完成
[[email protected] ~]$ sudo /usr/bin/ls /root/

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。

[sudo] aming 的密码:
这时他需要我们输入aming用户的密码,我们输入密码后就可以显示结果了
aming anaconda-ks.cfg
而第二次则不需要输入密码
[[email protected] ~]$ sudo /usr/bin/ls /root/
aming anaconda-ks.cfg
我们也可以cat一个文件
[[email protected] ~]$ cat /root/1.txt
cat: /root/1.txt: 权限不够
[[email protected] ~]$ sudo /usr/bin/cat /root/1.txt
[[email protected] ~]$
这样就可以让普通用户拥有指定几项命令的root用户权限,而不让root用户的密码泄露出去,保证安全。

visudo还有其他的一些用法,我们也可以不输入密码
只要在输入命令的绝对路径前输入NOPASSWD:即可
user5 ALL=(ALL) NOPASSWD: /usr/bin/ls, /usr/bin/cat
[[email protected] ~]$ ls /root
ls: 无法打开目录/root: 权限不够
[[email protected] ~]$ sudo ls /root
111.txt 1.txt 2.txt aming anaconda-ks.cfg
这样就可以不输入密码直接使用了

原文地址:http://blog.51cto.com/13067688/2070000

时间: 2024-07-30 10:07:16

su、sudo,限制root远程登录的相关文章

3.7 su命令 3.8 sudo命令 3.9 限制root远程登录

3.7 su命令 3.8 sudo命令 3.9 限制root远程登录 3.7 su命令 su aming su - aming 切换用户的时候要加上 su - 这样才切换的彻底 切换到user5下面 因为之前 user5 的用户被锁定了 在切换到root下 更改下user5 的密码 但是前缀显示 -bash-4.5  是因为user5 用户没有家目录 先查看变user5的 所属主 所属组 退出aming 进入root用户 创建一个 目录 但是这样 前缀还是一样,是因为 /home/user5/

linux限制root远程登录、su命令、sudo命令

su命令: 1.su  切换用户命令 例:su - aming 2.whoami  查看当前用户命令 3.pwd   查看当前目录 例:输入su aming也可以切换用户,但是目录不在自己用户目录下,如下: [[email protected] ~]# su aming [[email protected] root]$ pwd /root [[email protected] root]$ ls ls: 无法打开目录.: 权限不够 [[email protected] root]$ exit

su、sudo、限制root远程登录

1.su命令 su用来切换用户. su -  用户    是完全切换,就是变成另一个用户. su 用户       是不完全切换,变量还是上一个用户. 其实,完全切换,就是在切换时加载用户的环境变量.bash_history,.bash_logout,.bash_profile. 一个没有家目录的用户,如何给这个没有家目录的用户配置变量. root用户操作的以下步骤 1.useradd -M can1 创建一个没家目录的用户. 2.mkdir /home/can1 创建家目录 3.cp -r /

3周第3次课 su命令 sudo命令 限制root远程登录

一. su命令 适合情景:多用户之间的切换,登入到相应用户环境,执行命令.类似于 windows 的切换用户 扩展命令:id . whoami  查看当前用户名 语法 : su [-] [操作命令] username 快捷键:ctrl-d  退出当前用户 常用操作示范: 1. 加"-"的意思是,切换用户的同时切换环境变量,不跟 工作目录停留在当前,切换不彻底 #su - aming 切换到aming用户,此时提示符由"#"变成"$" 2.在普通用

su命令 sudo命令 限制root远程登录

su命令 日常操作中为了避免一些误操作,更加安全的管理系统,通常使用的用户身份都为普通用户,而非root.当需要执行一些管理员命令操作时,再切换成root用户身份去执行. 普通用户切换到root用户的方式有:su和sudo. 2.su - (su为switch user,即切换用户的简写) 格式:su -l USERNAME(-l为login,即登陆的简写) -l可以将l省略掉,所以此命令常写为su - USERNAME 如果不指定USERNAME(用户名),默认即为root,所以切换到root

三周第三次课(12月27日) 3.7 su命令 3.8 sudo命令 3.9 限制root远程登录

三周第三次课(12月27日)3.7 su命令3.8 sudo命令3.9 限制root远程登录 su命令: 用户和工作组管理: su命令用于切换当前用户身份到其他用户身份, 变更时须输入所要变更的用户帐号与密码. 语法: su(选项)(参数) 选项: -c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份: -f或--fast:适用于csh与tsch,使shell不用去读取启动文件: -l或--login:改变身份时,也同时变更工作目录,以及HOME,SHE

三周第三次课 3.7 su命令 3.8 sudo命令 3.9 限制root远程登录

3.7 su命令 1.su命令 su命令是用来切换用户的: su命令需要使用- 进行切换,如果不使用- 也可以, 但当前目录是在root下,没有彻底切换 在root下 使用su命令创建文件,以指定用户的身份创建文件 切换后显示-bash-4.2 因为user5的用户的家目录是不存在的,也没有用户的配置文件进行加载 切换至user5后,还是不行,说明没有配置文件 系统的模块目录 !$:表示上一条命令的最后一个参数 3.8 sudo命令 1.sudo命令 给普通用户授权root的身份 sudo的配置

十三、su命令、sudo命令、限制root远程登录

一.su命令 格式为su [-] username,后面可以跟-,也可以不跟.普通用户的su命令不加username时,就是切换到root用户.root用户也可以使用su命令切花到普通用户.该命令加上-后,会初始化当前用户的各种环境变量.示例加与不加-的区别,命令: # su user1 [[email protected] root]$ pwd /root [[email protected] root]$ ls ls: 无法打开目录.: 权限不够 [[email protected] roo

切换用户su命令、授权sudo命令、限制root远程登录

su命令 用来切换用户的 ctrl+d退出来 su - 彻底切换用户,包括自己的配置.环境变量 [[email protected] ~]# whoami root [[email protected] ~]# su - awei 上一次登录:一 5月  7 15:44:46 CST 2018pts/1 上 [[email protected] ~]$ id uid=1000(awei) gid=1000(awei) 组=1000(awei) 环境=unconfined_u:unconfined

开启Ubuntu root 远程登录

很早就遇到这问题了,但是今天才想到解决.也就是说Ubuntu在安装的时候,远程SSH登录是禁止的.每次你必须使用普通的用户SSH远程登录以后,然后su切换到root这样,对于强迫症的我实在是很难容忍的,所以找了一下资料,修改了一下配置文件就OK了. 简单说一下我的环境:Ubuntu实体机一台(已经安装了ssh工具),Windows实体机一台(安装有XShell远程工具),关于安装问题(apt-get install -y openssh-server)就不说了,直接解决问题,步骤如下: root