标签: root

您如何使您明显处于生产系统中?

我们公司中的一些人在生产服务器上拥有 root 访问权限。我们正在寻找一种很好的方法来在我们使用 ssh 时让它变得非常清楚。

我们的一些想法是:

  • 亮红色提示
  • 在得到壳之前先回答一个谜语
  • 在获得 shell 之前输入一个随机单词

你们使用哪些技术来区分生产系统?

linux root

136
推荐指数
10
解决办法
2万
查看次数

在 CentOS 中向 $PATH 添加目录?

我们刚刚启动了我们的新服务器,并且我们正在所有这些服务器上运行 CentOS。成功安装 Ruby Enterprise Edition 后,我现在想添加 REE /bin(位于/usr/lib/ruby-enterprise/bin)目录,使其成为服务器上的默认 Ruby 解释器。

我尝试了以下操作,它只会将其添加到当前的 shell 会话中:

export PATH=/usr/lib/ruby-enterprise/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

所有用户永久添加此目录的正确方法是什么?我目前以.$PATHroot

configuration shell centos root path

100
推荐指数
3
解决办法
26万
查看次数

Linux:没有 root 的高效系统管理员(保护知识产权)?

有没有办法让经验丰富的 Linux syadmin 在不给他完全的 root 访问权限的情况下提高工作效率?

这个问题来自保护知识产权 (IP) 的角度,在我的情况下,它完全是代码和/或配置文件(即易于复制的小型数字文件)。我们的秘方使我们比我们的小规模所暗示的更成功。同样,我们曾经被一些试图窃取 IP 的前任肆无忌惮的员工(不是系统管理员)了一口,两次害羞。高层管理人员的立场基本上是,“我们信任人们,但出于自身利益,不能承担给任何人比他们完成工作绝对需要的更多访问权限的风险。”

开发人员方面,划分工作流和访问级别相对容易,这样人们就可以提高工作效率,但只能看到他们需要看到的内容。只有顶级人才(实际公司老板)有能力将所有原料组合起来,制作出特别的酱汁。

但是我还没有想出一个很好的方法来在 Linux 管理端维护这个 IP 保密。我们广泛使用 GPG 来处理代码和敏感文本文件……但是有什么可以阻止管理员(例如)向用户发出警告并跳转到他们的 tmux 或 GNU Screen 会话并查看他们在做什么?

(我们还在可能接触敏感信息的任何地方禁用 Internet 访问。但是,没有什么是完美的,聪明的系统管理员可能会漏洞或网络管理员方面的错误。甚至是旧的 USB。有当然还有许多其他措施,但这些超出了本问题的范围。)

我能想到的最好的方法基本上是使用带有sudo 的个性化帐户,类似于以root 身份工作的多个 Linux 系统管理员中描述的内容。具体来说:除了公司所有者之外,没有人实际上拥有直接的 root 访问权限。其他管理员将拥有个性化帐户和sudo进入 root的能力。此外,将建立远程日志记录,并将日志发送到只有公司所有者才能访问的服务器。看到日志记录关闭会引发某种警报。

一个聪明的系统管理员可能仍然会在这个方案中找到一些漏洞。除此之外,它仍然是被动的而不是主动的。我们 IP 的问题在于,竞争对手可以非常迅速地利用它,并在很短的时间内造成大量损害。

所以最好是一种限制管理员可以做什么的机制。但我承认这是一个微妙的平衡(特别是考虑到目前需要解决的故障排除和生产问题)。

我不禁想知道其他拥有非常敏感数据的组织如何管理这个问题?例如,军事系统管理员:他们如何在无法看到机密信息的情况下管理服务器和数据?

编辑:在最初的帖子中,我打算先发制人地解决开始浮出水面的“招聘实践”评论。一,这应该是一个技术问题,IMO 的招聘实践更倾向于社会问题。但是,二,我会这样说:我相信我们会尽一切合理招聘人员:面试多个公司人员;背景和参考调查;所有员工都签署了大量法律文件,其中一份声明他们已阅读并理解我们的手册,其中详细介绍了知识产权问题。现在,它超出了这个问题/网站的范围,但如果有人可以提出“完美”的招聘做法,过滤掉 100% 的坏演员,我全都在听。事实是:(1)我不相信有这么完美的招聘流程;(2) 人在变——今天的天使可能是明天的恶魔;(3) 企图窃取代码在这个行业似乎有些司空见惯。

security linux root

64
推荐指数
6
解决办法
8955
查看次数

在 /var/run 中写入 PID 文件需要什么权限?

在 Ubuntu 上:

touch: cannot touch `/var/run/test.pid': Permission denied
Run Code Online (Sandbox Code Playgroud)

我正在启动 start-stop-daemon 并且喜欢将 PID 文件写入 /var/run start-stop-daemon is run as my-program-user

/var/run setting is drwxr-xr-x  9 root  root
Run Code Online (Sandbox Code Playgroud)

我喜欢避免将 my-program-user 放在根组中。

ubuntu permissions root pid

57
推荐指数
2
解决办法
11万
查看次数

好 sudo 还是 sudo 好?

使用以下命令通过 sudo 运行密集任务有什么区别吗?:

  1. 不错的 sudo [这里的密集命令]
  2. sudo nice [这里的密集命令]

顺便说一句,这是针对 Linux 3.x 的。

linux root process-priority

54
推荐指数
2
解决办法
6191
查看次数

Linux:为远程系统管理员设置

我不时收到奇怪的请求,要求在 Linux 系统上提供远程支持、故障排除和/或性能调整。

较大的公司通常已经制定了完善的程序来提供对供应商/供应商的远程访问,我只需要遵守这些程序。(不论结果好坏。)

另一方面,小公司和个人总是求助于我,让他们知道他们需要做什么来建立我。通常,他们的服务器直接连接到互联网,现有的安全措施包括其 Linux 发行版的默认设置。

我几乎总是需要 root 级别的访问权限,而为我设置访问权限的人不是专家系统管理员。我不想要他们的 root 密码,而且我也很确定我的行为不会是恶意的,但是我应该给出什么相当简单的说明:

  • 设置帐户并安全地交换凭据
  • 设置 root (sudo) 访问权限
  • 限制对我帐户的访问
  • 提供审计追踪

(是的,我知道并总是警告那些客户,一旦我拥有管理员访问权限,隐藏任何恶意操作都是微不足道的,但让我们假设我没有什么可隐藏的,并积极参与创建审计跟踪。)

以下步骤可以改进什么?


我目前的指令集:

设置帐户并安全地交换凭据

我提供了一个密码哈希,并要求我的帐户设置了该加密密码,因此我们不需要传输明文密码,我将是唯一知道密码的人,我们不会从可预测的弱密码。

sudo useradd -p '$1$********' hbruijn
Run Code Online (Sandbox Code Playgroud)

我提供了一个公钥 SSH(每个客户端的特定密钥对)并要求他们使用该密钥设置我的帐户:

sudo su - hbruijn
mkdir -p ~/.ssh
chmod 0700 ~/.ssh
echo 'from="10.80.0.0/14,192.168.1.2" ssh-rsa AAAAB3NzaC1y***...***== hbruijn@serverfault' >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys 
Run Code Online (Sandbox Code Playgroud)

设置 root (sudo) 访问权限

我要求客户使用sudo sudoedit或使用他们最喜欢的编辑器为我设置 sudo 并附加到/etc/sudoers

hbruijn ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

限制对我帐户的访问

通常,客户端仍然允许基于密码的登录,我要求他们添加以下两行以/etc/ssh/sshd_config至少将我的帐户限制为仅使用 SSH 密钥:

Match user hbruijn
PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)

根据客户端的不同,我将通过单个堡垒主机路由我的所有 …

security linux audit root sudo

51
推荐指数
3
解决办法
2580
查看次数

如何列出所有具有 root 权限的用户?

在 linux 机器上,我如何列出所有拥有 root 权限的用户(甚至更好的是,所有用户以及他们是否拥有 root 权限)?

linux root users

44
推荐指数
3
解决办法
28万
查看次数

多个 Linux 系统管理员以 root 身份工作

在我们的团队中,我们有三位经验丰富的 Linux 系统管理员,他们必须管理几十台 Debian 服务器。以前我们都使用 SSH 公钥认证作为 root 工作。但是我们就该场景的最佳实践进行了讨论,但未能达成任何一致。

大家的SSH公钥放在~root/.ssh/authorized_keys2

  • 优点:使用方便,SSH代理转发容易,开销小
  • 缺点:缺少审计(你永远不知道哪个“根”做了更改),更容易发生事故

使用个性化帐户和sudo

这样我们就可以使用 SSH 公钥使用个性化帐户登录,并使用sudoroot权限执行单个任务。此外,我们可以给自己一个允许我们查看日志文件的“adm”组。

  • 优点:良好的审计,sudo防止我们太容易做白痴的事情
  • 缺点:SSH 代理转发中断,这很麻烦,因为非 root 用户几乎无法完成任何操作

使用多个 UID 0 用户

这是一位系统管理员提出的非常独特的建议。他建议在 /etc/passwd 中创建三个用户,所有用户的 UID 为 0,但登录名不同。他声称这实际上并没有被禁止,并且允许每个人都是 UID 0 但仍然能够进行审计。

  • 优点:SSH 代理转发工作,审计可能工作(未经测试),没有sudo麻烦
  • 缺点:感觉很脏 - 无法在任何地方找到它作为允许的方式记录

你有什么建议?

linux root

41
推荐指数
2
解决办法
1万
查看次数

允许linux root用户mysql root无需密码访问

在 cPanel 上,当我以 root 身份登录并键入“mysql”而没有主机名和密码时,它使我可以直接访问 mysql root 用户。

我想为我的一台非 cpanel 服务器执行此操作,其中 linux root 用户以与在 cPanel 上相同的方式获取密码较少的登录到 mysql root 用户。

这可能吗 ?

mysql security linux password root

37
推荐指数
3
解决办法
13万
查看次数

为什么 su 到 root 而不是以 root 身份登录?

我经常听到 su 到 root 比直接以 root 用户登录更好(当然人们也说使用 sudo 更好)。我从来没有真正理解为什么一个比另一个更好,洞察力?

linux login root sudo

33
推荐指数
5
解决办法
1万
查看次数