首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何禁用某些用户的终端仿真程序?

如何禁用某些用户的终端仿真程序?
EN

Ask Ubuntu用户
提问于 2014-01-01 14:45:15
回答 2查看 3.3K关注 0票数 1

如何防止特定用户使用终端仿真器?!

我用.bashrc编写了一个脚本,它要求用户输入密码才能使用终端仿真器。

但是对于一些知道如何使用这个技巧的高级用户来说,这个技巧并不是一个完美的方法。

为此,我正在寻找一种方法来防止特定用户使用终端仿真器,这些用户只是没有sudo许可的普通用户。

有什么建议吗!

EN

回答 2

Ask Ubuntu用户

发布于 2014-01-01 14:56:05

为允许使用终端的用户创建一个组,比如terminalusers。查找终端程序(使用which),例如,xterm。相应地改变其所有权:

代码语言:javascript
复制
chown root:terminalusers /usr/bin/xterm

允许所有者和组执行。为其他人否认:

代码语言:javascript
复制
chmod 750 /usr/bin/xterm

此时,使用xterm是不可能的,除非您是根用户,或者是terminalusers组的成员(将自己添加到其中,您将能够使用xterm)。为其他终端仿真器应用类似的设置(我认为gnome-terminal是您的主要设置)。现在,这只是另一个窍门:它阻塞终端仿真器,而不是终端(确实存在细微差别)。

在UNIX环境中,终端是系统的主要接口。阻止它们很可能会干扰许多应用程序,而不仅仅是命令行应用程序。相反,阻塞终端仿真器只是一种解决办法。如果拥有良好的权限,请记住,用户终端不会对您的计算机造成任何不良影响:它需要根权限才能将事情搞砸。

注意:对于xterm,据说这会导致utmp出现问题。

票数 3
EN

Ask Ubuntu用户

发布于 2015-05-29 19:37:59

特别是如果您的“目标”用户没有sudo权限,下面的解决方案非常“防水”。它不仅可用于阻止用户离开终端,还可用于阻止(任何用户)使用任何应用程序。

它是什么

该解决方案存在一个简单且重量非常轻的背景脚本,您可以灵活地使用该脚本来阻止用户使用应用程序。

脚本是在从/etc/rc.local启动时启动的(请参阅下面的进一步内容)

脚本

代码语言:javascript
复制
#!/usr/bin/env python3
import subprocess
import time

data = [
    ["jacob", "gedit", "thunderbird", "gnome-terminal"],
    ["William", "gedit"],
    ]

def user_appcheck(userdata):
    try:
        user = userdata[0]; apps = userdata[1:]
        applist = subprocess.check_output(["ps", "-u", user]).decode("utf-8").splitlines()
        matches = sum([[l.split()[-1] for l in applist if app in l] for app in apps], [])
        for match in matches:
            subprocess.Popen(["pkill", match])
    except:
        pass

while True:
    for userdata in data:
        user_appcheck(userdata)
    time.sleep(4)

如何使用

  1. 将下面的脚本复制到一个空文件中,将其保存为users_apps.py,位于“普通”用户无法编辑该文件的位置。
  2. 在脚本的头部分,将用户(S)及其被阻止的应用程序设置为格式:“,

对于单个用户,阻塞geditgnome-terminal

代码语言:javascript
复制
    data = [
        ["jacob", "gedit", "gnome-terminal"],
        ]
  1. /etc/rc.local:/bin/bash -c添加一行"python3 /path/ to /user_apps.py&“
  2. 通过运行/etc/rc.local NB来测试它: /etc/rc.local --如果您阻止了自己,您不应该能够运行该应用程序;它可能会在一瞬间打开,但会立即关闭。

如果用户没有sudo权限,那么就没有什么可做的了:)

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/398527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档