2014-11-22 68 views
2

我试图通过一个简单的脚本创建一个Linux终端菜单。在脚本中,它会有一些命令提交一个作业(例如一个shell脚本)作为另一个没有密码提示的用户。在Linux上作为另一个用户运行脚本

我能找到以下帖子,这工作。 how to run script as another user without password 但是,有一方面的影响。看来用户可以在我不想要的用户文件夹中运行其他脚本。

任何建议/帮助欢迎。

为了这个。这里是我的:

  1. 用户名temp1,这是将运行菜单的用户。 UID = 1001(temp1中),GID = 1001(temp1中),基团= 1001(temp1目录)

  2. 用户名wayne,这是脚本必须提交,以运行该作业 UID = 1000(韦恩用户),GID = 1000(韦恩),基团= 1000(韦恩),4(ADM),24(CDROM),27(须藤),30(DIP)...

  3. 脚本script1.shscript2.sh通过wayne资。

    -rwxr-xr-x script1.sh 
    -rwxr-xr-x script2.sh 
    
  4. 如果我试图去/home/waynetemp1用户我得到拒绝的权限(预期)

  5. 我设定的脚本和chmod 700 wayne。所以从技术上讲,除了wayne之外,没有人能运行它们。

  6. 我已经编辑sudo的文件,并有以下条目:

    temp1 ALL(wayne) NOPASSWD: /home/wayne/script1.sh 
    
  7. 当我运行命令su -c "/home/wayne/script1.sh" -s /bin/sh wayne运行脚本(如预期)

  8. 当我运行命令su -c "/home/wayne/script2.sh" -s /bin/sh wayne脚本运行(不期望)。

任何想法?

+0

您的examplar问题与您的问题之间的一个区别另一个问题是使用'user1 ALL =(user2)NOPASSWD:/ home/user2/bin/test.sh',但是在你的版本中省略了'='。这可能是所有的错误;它可能是无辜的。这值得检查。 – 2014-11-22 18:24:11

+0

我确信它有相等的结果。输出由wayne拥有,所以我知道它正在运行正确的脚本。 – Xathras 2014-11-22 23:49:37

+0

任何人都可以帮忙吗? – Xathras 2014-11-24 02:18:06

回答

6

答案是从su到sudo的变化。

su主要用于切换用户,而sudo用于执行其他用户的命令。 -u标志可让您指定执行命令的用户: sudo -u wayne'/home/wayne/script2.sh'给出对不起的用户不允许执行

相关问题