sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等。这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性。
首先查看/etc/sudoers文件
vim /etc/sudoers
其次找到需要授权的应用路径,此次以nginx、普通用户app 为例子:
nginx部署路径: /opt/post/nginx
普通用户:app
然后配置普通用户sudo权限
visudo //修改/etc/sudoers文件
代表用户 被管理主机的地址=(可使用的身份) 是否免密 授权命令(绝对路径)
保存后
切换用户为app
执行:/opt/post/nginx/sbin -t
验证命令
-- 自测通过
第二种方式:
root用户执行:
cd /opt/post/nginx/sbin/
chown root nginx
chmod u+s nginx
chmod u+s是一条Linux命令,用于设置文件或目录的权限。其中,u表示文件或目录的所有者,s表示设置setuid或setgid权限。
setuid权限是指当一个普通用户执行一个具有setuid权限的可执行文件时,该文件将以文件所有者的身份运行,而不是以执行用户的身份运行。setgid权限是指当一个普通用户执行一个具有setgid权限的可执行文件时,该文件将以文件所属组的身份运行,而不是以执行用户的身份运行。
因此,chmod u+s命令可以将一个可执行文件设置为setuid或setgid权限,从而使得执行该文件的用户可以以文件所有者或所属组的身份运行该文件。
普通用户登录后,执行:
./nginx