需求:让Linux上普通用户执行一个脚本,非 root 用户不能读到这个脚本中的内容!
但是为了安全与管理分权,脚本需要给非 root 用户去执行这个脚本中的内容。
-
以root用户登陆进入/home/test_acount目录创建中间过渡脚本cmd.sh
cd /home/test_acount
#!/bin/bash
cat_sh=`cat $1`
su - james -c "$cat_sh"
- 改变权限,让其他用户没有读的权限
chmod 700 cmd.sh
-
编辑/etc/sudoers文件
sudoedit /etc/sudoers
找到## Allow root to run any commands anywhere添加写入以下内容(其中test_account为最终执行脚本用户-只有执行权限,没有读取,写入等操作权限)
czc ALL=(ALL) NOPASSWD:/home/test_acount/cmd.sh
-
然后在/home/test_acount/创建一个only_run_deploy.sh脚本(用于运行deploy.sh)
echo 开始执行脚本! sh /home/test_acou