且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Linux笔记(su切换用户,sudo命令*,限制root远程登录)

更新时间:2022-09-26 23:07:19

一、su命令

su  切换用户

- + 用户名   切换用户 (root切换普通用户不用密码。反之则需要密码)

加 - 是切换到目录的家目录下 ,切换的彻底。不加则是切换到/root下用户

Linux笔记(su切换用户,sudo命令*,限制root远程登录)

有的用户没有家目录,开头会是-bash-4.2$ c

解决方法:

  • 创建家目录,更改所有者和所属组

  • 目录下没有配置文件,复制/etc/skel/下所有文件拷贝到所创建的家目录中,

  • 更改所有者和所属组

Linux笔记(su切换用户,sudo命令*,限制root远程登录)

- -c +  "命令" +用户名      以某个用户的身份去执行命令

Linux笔记(su切换用户,sudo命令*,限制root远程登录)


sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。

sudo /bin/bash   : 这个命令也会切换到root的bash下,但不能完全拥有root的所有环境变量,比如PATH,可以拥有root用户的权限。这个命令和 sudo -s 是等同的。

二、sudo命令

sudo命令   让普通用户以指定用户的身份去执行某条命令,一般都是指定命令

visudo 打开     实际是/etc/sudoers.tmp文件

找到 

92            root    ALL=(ALL)                          ALL

用户    主机=(ALL)   NOPASSWD:(使用sudo不适用密码)所有命令(用绝对路径书写,也可以写一个命令或多个,用逗号分隔)

Linux笔记(su切换用户,sudo命令*,限制root远程登录)

Linux笔记(su切换用户,sudo命令*,限制root远程登录)

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

sudo + 命令绝对路径  (第一次会提示输入密码,之后就不用)

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

注意的是:别名都要大写,小写会提示错误

Cmnd_Alias    命令别名。可以添加多个命令,则在92行输入,命令时则不用一个一个输入

Linux笔记(su切换用户,sudo命令*,限制root远程登录)

Linux笔记(su切换用户,sudo命令*,限制root远程登录)

Linux笔记(su切换用户,sudo命令*,限制root远程登录)

User_Alias  用户别名,将用户都加入用户组中,同一个用户组里的用户使用sudo

Host_Alias  主机别名。可以将主机都加入主机组内,在92行主机处用别名就好


三、限制root远程登录

服务器root用户不能登录,只允许普通用户登录。登陆上后,在登录root用户虚拟用户组,

实际则是用visudo命令,User_Alisa建立一个虚拟用户组,把用户添加到里面。

免密码可以su到root用户

再限制root用户远程连接。

Linux笔记(su切换用户,sudo命令*,限制root远程登录)

Linux笔记(su切换用户,sudo命令*,限制root远程登录)

Linux笔记(su切换用户,sudo命令*,限制root远程登录)

这里应该设置2个sudo的规则,一种是可以登录root,一种是不可以。










本文转自 小新锐 51CTO博客,原文链接:http://blog.51cto.com/13407306/1977454,如需转载请自行联系原作者