linux 用户身份切换

su命令

此命令主要用于用户切换

1.   如果要切换到root角色,需要使用 su -  命令, 单纯的使用 su 命令会导致很多环境变量没有修改.

2. 如果想切换到root命令执行单个命令可以加上-c参数,比如: 

su - -c "head -n /etc/shadow"

就可以用root角色执行一次head 命令.

sudo 命令

可以切换身份执行某些命令

1. sudo -u sshd touch /tmp/mysshd  用 sshd 用户执行 touch 命令  (sshd 是无法登陆的系统账号,所以我们可以使用sudo来用sshd身份执行某些命令而不用登陆)

2. sudo -u sshd -c "touch /tmp/mysshd;rm -rf /tmp/mysshd" 加上 -c 参数可以执行多行命令.

3. root 执行 sudo 不需要输入密码,  其他用户需要输入密码后才能使用个sudo命令.

4. /etc/sudoers 里面包含的用户才可以使用sudo命令, 需要用visudo来修改 /etc/sudoers.

5.  在visudo 的第 58行添加 

 lishuaiqi    ALL=(ALL)  ALL  后就可以执行sudo 执行root命令.

在前面加上%表示用户组.该用户组的所有用户都可以使用sudo命令

 如果加上NOPASSWD: ALL 就可以不用输入密码执行sudo.

 

我们可以通过加上!来限制用户使用哪些命令

比如我给pro1设置了

!/usr/bin/passwd !/usr/bin/passwd root

 

 那么pro1这个用户就不能执行  sudo passwd 这个命令来修改root的密码如果执行别的命令会报下面的错误

 6. 我们可以在visudo 中给用户和命令起一个别名,这样便于统一管理

 User_Alias Cmnd_Alias 这样就把pro1的权限设置成了下面的命令.

原文地址:https://www.cnblogs.com/lishuaiqi/p/15743098.html