300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 0921 su与sudo命令 限制root用户通过ssh远程登录

0921 su与sudo命令 限制root用户通过ssh远程登录

时间:2022-04-02 09:04:53

相关推荐

0921 su与sudo命令 限制root用户通过ssh远程登录

独角兽企业重金招聘Python工程师标准>>>

su 命令

用户切换。

su # 切换到root用户su username # 切换到username用户# su 后面加-时,会初始化当前用户的各种环境su - username # 指定用户执行某些命令 su - -c "touch /tmp/testfile02.txt" test06 # 以test06用户身份在/tmp# 下创建了testfile02.txt[root@centos01 ~]# su - -c "touch /tmp/testfile02.txt" test06[root@centos01 ~]# ls -lt /tmptotal 124-rw-rw-r--. 1 test06 test060 Sep 21 09:04 testfile02.txt# 当要切换的用户没有家目录时[root@centos01 ~]# useradd -M test08 # 创建不带家目录的用户test08[root@centos01 ~]# su - test08 # 切换到test08,会有如下提示su: warning: cannot change directory to /home/test08: No such file or directory-bash-4.2$ pwd/root-bash-4.2$ logout[root@centos01 ~]# id test08uid=1006(test08) gid=1007(test08) groups=1007(test08)[root@centos01 ~]# mkdir /home/test08 # 为test08创建家目录[root@centos01 ~]# chown 1006:1007 /home/test08 #更改家目录有的用户及属组[root@centos01 ~]# ls -l /home/test08 -ddrwxr-xr-x. 2 test08 test08 6 Sep 21 09:14 /home/test08[root@centos01 ~]# su - test08 # 再次切换,还有提示,是因为缺少shell配置Last login: Fri Sep 21 09:13:05 CST on pts/0-bash-4.2$ pwd/home/test08-bash-4.2$ ls-bash-4.2$ ls -a. ..[root@centos01 ~]# ls /etc/skel/ -la # 查看系统shell配置模板total 24drwxr-xr-x. 2 root root 59 Sep 7 09:48 .drwxr-xr-x. 73 root root 8192 Sep 21 09:22 ..-rw-r--r--. 1 root root 18 Jun 10 .bash_logout-rw-r--r--. 1 root root 193 Jun 10 .bash_profile-rw-r--r--. 1 root root 231 Jun 10 .bashrc[root@centos01 ~]# cp /etc/skel/.bash* /home/test08/ # 把模板拷贝到test08家目录[root@centos01 ~]# id test08uid=1006(test08) gid=1007(test08) groups=1007(test08)[root@centos01 ~]# chown test08:test08 -R /home/test08/ #为这些配置文件更改用户及属组[root@centos01 ~]# su - test08 # 再次切换,OKLast login: Fri Sep 21 09:16:37 CST on pts/0[test08@centos01 ~]$ # 普通用户shell最开始是$,root用户是#

sudo 命令

用su命令切换带root用户时,需要输入root用户的密码。这样很不安全,因此有了sudo命令。sudo可以让普通用户临时以指定用户的身份去执行一条命令。

visudo 打开sudo的配置文件(/etc/sudoers)。!!!不要使用vi命令直接打开,因为不会检查语法错误!!!

打开配置文件找到root ALL=(ALL) ALL

root 指定哪个用户有sudo 权限 左边的ALL指的是所有的主机,右边的ALL指的是获取哪个用户的 身份

第三段指可以使用sudo的命令有哪些,ALL表示所有的命令

在这行内容下面模仿写一条其他用户,就可以让该用户拥有sudo权限了。

test08 ALL=(ALL) /usr/bin/ls, /usr/bin/cat

[root@centos01 ~]# visudo #添加test08 ALL=(ALL)/usr/bin/ls, /usr/bin/cat[root@centos01 ~]# su - test08 # 切换到test08Last login: Sat Sep 22 05:27:12 CST on pts/1[test08@centos01 ~]$ ls /root/ # 没有权限ls: cannot open directory /root/: Permission denied[test08@centos01 ~]$ sudo ls /root/ We trust you have received the usual lecture from the local SystemAdministrator. It usually boils down to these three things:#1) Respect the privacy of others.#2) Think before you type.#3) With great power comes great responsibility.[sudo] password for test08: # 登录后第一次使用sudo时需要输入自身的密码anaconda-ks.cfg a.txt d0917 link_test s_link0.log test.txt[test08@centos01 ~]$ sudo ls /root/ # 之后不用再输入密码anaconda-ks.cfg a.txt d0917 link_test s_link0.log test.txt

设置使用sudo 不需要密码 test07 ALL=(ALL) NOPASSWD: /usr/bin/ls, /usr/bin/cat

[root@centos01 ~]# visudo # 添加test07 ALL=(ALL) NOPASSWD: /usr/bin/ls, /usr/bin/cat[root@centos01 ~]# su - test07[test07@centos01 ~]$ sudo ls /rootanaconda-ks.cfg a.txt d0917 link_test s_link0.log test.txt

限制root用户通过ssh远程登录:

对应的配置文件是/etc/ssh/sshd_config,修改配置文件中的#PermitRootLogin yes为 PermitRootLogin no, 之后重启ssh服务 systemctl restart sshd.service

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。