我试图了解 unix root 帐户和 windows 本地管理员之间的概念差异。我是一名开发人员,尽管 IT 部门付出了努力,但我始终获得本地管理员权限,因此我可以在本地 PC 上安装我想要的任何内容。
但出于某种原因(我认为这应该是一个好的原因)我只是我们linux系统中的一个用户。这使得我无法执行 sudo 操作 - 例如从存储库安装软件等。
我想这是因为 root 权限授予的权限比 Windows 上的本地管理员权限多得多。是这样吗?
在unix中是否可以授予特定用户安装软件的权限,例如使用apt-get或yum?
答案1
我想这是因为 root 权限授予的权限比 Windows 上的本地管理员权限多得多。是这样吗?
事实并非如此(至少原则上不是),但一个主要区别在于如何识别用户(帐户)。Windows 上的本地管理员帐户具有与任何其他帐户不同的自己的 SID(安全标识符),因此可以轻松地与任何其他本地管理员帐户(在同一台或不同计算机上)区分开来,而所有 root 帐户共享相同的数字用户 ID因此不能轻易区分。
根据设置的不同,这可能成为向用户提供“本地”根访问权限的主要障碍。我立即想到的一个潜在的严重问题是 NFS 用户 ID。
在unix中是否可以授予特定用户安装软件的权限,例如使用apt-get或yum?
您可以设置sudo
允许此类操作,但这可能是一个巨大的安全漏洞。如果您制作并安装一个修改 sudo 配置、安装 setuid root shell 或其他类似内容的软件包会怎么样?突然间,您所谓的“受限”root 访问权限已授予用户对系统的完全 root 访问权限。即使是用于编辑特定配置文件的 sudo 编辑器等“平凡”的东西也必须仔细实施,以避免引入类似的严重安全漏洞。
答案2
我对Windows的管理不太了解,但我不认为Windows的admin和Linux的root有太大区别。 (我可能误解了一些东西,但从你的问题我推断你公司的每个人都有一台 Windows 普通电脑或胖客户,和一个Linux瘦客户端或简单的用户 SSH 访问)
通常的做法是不授予瘦客户端上的 root 访问权限(因为这是公司范围内的 root 访问权限),而让用户管理自己的 PC 则不是问题。
您无法使用包管理器(apt-get/yum/...)安装软件,因为它需要 root 访问权限。您可以请求您的管理员安装所需的软件包,或者安装它们本地在您的主目录中(您具有写入权限,因此不需要root
)。
要安装在您的主目录中,您可以使用以下过程(我将使用一个现实生活中的示例)屏幕抓取,根据您的需要进行调整):
- 为您在用户空间中安装的软件创建一个特定的文件夹:
mkdir ~/local
- 进入该文件夹:
cd ~/local
- 下载您要安装的软件:
wget http://git.silverirc.com/cgit.cgi/screenfetch.git/snapshot/screenfetch-3.2.0.tar.gz
- 提取存档:
tar -zxf screenfetch-3.2.0.tar.gz
- 阅读自述文件以检查构建/运行软件可能需要的特定任务
- 使二进制可执行文件:
chmod +x screenfetch-3.2.0/screenfetch-dev
- 添加快捷方式或别名来启动您的软件(可能会根据您的发行版、shell 和桌面环境而发生很大变化)在我的示例中,我想在我的工作桌面(带有 Bash 的 Linux Mint 13)上从命令行启动 screenfetch我将以下行添加到我的
~/.bashrc
文件中:alias screenfetch='~/local/screenfetch-3.2.0/screenfetch-dev'