标签: unix

我应该为 linux 服务器创建多少个分区?

分区在 Linux 服务器上非常重要,因为它为您提供了很大的灵活性,例如在升级到更大的硬盘驱动器时。

但是,在构建 Linux 机器时应该创建多少个分区?我应该为每个分区设置哪个大小?

最后但并非最不重要的是,我应该在一个单独的磁盘上有哪些分区(我正在考虑 /home、/var 可能是一个更快的驱动器等)以及我可以在同一个驱动器上共享哪些分区?

linux unix partition

15
推荐指数
3
解决办法
5505
查看次数

具有相同 UID 的多个 *NIX 帐户

我很好奇是否存在标准的预期行为,以及在具有相同 UID 的 Linux/Unix 上创建多个帐户时是否被认为是不好的做法。我已经用这个在 RHEL5 上做了一些测试,它的表现符合我的预期,但我不知道我是否在使用这个技巧来诱惑命运。

例如,假设我有两个具有相同 ID 的帐户:

a1:$1$4zIl1:5000:5000::/home/a1:/bin/bash
a2:$1$bmh92:5000:5000::/home/a2:/bin/bash
Run Code Online (Sandbox Code Playgroud)

这意味着:

  • 我可以使用自己的密码登录每个帐户。
  • 我创建的文件将具有相同的 UID。
  • 诸如“ls -l”之类的工具会将 UID 列为文件中的第一个条目(在本例中为 a1)。
  • 我避免了两个帐户之间的任何权限或所有权问题,因为它们实际上是同一个用户。
  • 我对每个帐户进行登录审核,因此我可以更好地跟踪系统上发生的情况。

所以我的问题是:

  • 这种能力是被设计出来的还是只是它碰巧起作用的方式?
  • 这是否会在 *nix 变体中保持一致?
  • 这是公认的做法吗?
  • 这种做法是否有意想不到的后果?

请注意,这里的想法是将其用于系统帐户而不是普通用户帐户。

security linux unix

15
推荐指数
4
解决办法
1万
查看次数

如何将 VAR 从子外壳导出到父外壳?

我有一个 Korn shell 脚本

#!/bin/ksh
# set the right ENV
case $INPUT in
abc)
  export BIN=${ABC_BIN}
  ;;
  def)
  export BIN=${DEF_BIN}
  ;;
  *)
  export BIN=${BASE_BIN}
  ;;
esac
# exit 0 <- bad idea for sourcing the file
Run Code Online (Sandbox Code Playgroud)

现在这些 VAR 仅在子 shell 中导出,但我希望它们也设置在我的父 shell 中,所以当我在提示符下时,这些 var 仍然设置正确。

我知道

. .myscript.sh
Run Code Online (Sandbox Code Playgroud)

但是有没有办法在没有“采购”的情况下做到这一点?因为我的用户经常忘记“来源”。


EDIT1:删除“exit 0”部分 - 这只是我打字时没有先考虑

EDIT2:添加更多关于我为什么需要这个的细节:我的开发人员为(为了简单起见)2 个应用程序编写代码:ABC 和 DEF。每个应用程序都由不同的用户 usrabc 和 usrdef 在生产环境中运行,因此已经设置了他们的 $BIN、$CFG、$ORA_HOME 等等 - 特定于他们的应用程序。

所以

  • ABC 的 $BIN = /opt/abc/bin # 上面脚本中的 $ABC_BIN
  • DEF 的 $BIN = /opt/def/bin # …

unix shell environment-variables

15
推荐指数
2
解决办法
3万
查看次数

Bash 片段将目录中的所有文件移动到该目录中

我有一个目录,里面有很多文件和目录。为了整理一下,我将把所有这些文件放到一个目录中,所以我打算做这样的事情:

$ ls | wc -l
123
$ mkdir new_directory
$ mv * ./new_directory
Run Code Online (Sandbox Code Playgroud)

但是,这显然行不通,因为它会尝试new_directory进入new_directory. 是否有一些简单的方法可以在一行中完成我想要的操作,而不必复制和粘贴该目录中的所有文件和目录?

linux unix bash

15
推荐指数
4
解决办法
3万
查看次数

我应该将组共享文件放在 Linux 系统上的什么位置?

我正在将许多小型自定义脚本和数据从 Linux 系统迁移到另一个系统。

在旧系统上,我们有一个共享用户,该用户拥有大部分文件,并且它们位于该用户中/home,但在新系统上,我们宁愿使用自己的帐户登录并使用组权限进行协作,但因为不会有文件的单一所有者,没有/home-dir。

那么我应该把那些共享文件放在哪里呢?我应该创建一个拥有这些文件的非登录用户吗?或者有合适/grouphome的地方吗?

(我不想将它们分散在个人用户中/home:s。)

linux unix network-share groups

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

Apache:仅为某些模块配置“LogLevel 调试”?

我想在我的网络服务器上调试一些身份验证和授权问题,尤其是 mod_authnz_ldap 和其他 mod_auth* 模块。

因此,我LogLevel debug在 Apache 配置中进行了设置,无论是全局设置还是单个 VirtualHost。这为我提供了来自 mod_authnz_ldap 的有用信息,但它也从 SSL 模块中散发出大量噪音。请参阅下面的示例。

有没有办法减少 ssl_engine* 的日志级别,同时仍然保持 mod_authnz_ldap 的日志级别?

是的,我可以使用类似的东西排除这些行grep -v ssl_engine logfile,但我也想从其他一些系统日志解析工具中排除这些额外的数据。我宁愿从源头减少日志记录,而不是在目的地将它排除在外。

[Tue Jul 06 16:55:31 2010] [debug] ssl_engine_io.c(1830): | 0100: 12 23 e7 0f 45 1f 1f d3-ed 12 f8 12 1f a9 90 85  .+..(........... |
[Tue Jul 06 16:55:31 2010] [debug] mod_authnz_ldap.c(474): [client 10.10.10.123] [96991] auth_ldap authenticate: accepting joe
[Tue Jul 06 16:55:31 2010] [debug] mod_authnz_ldap.c(730): [client 10.10.10.123] [96991] auth_ldap authorise: require …
Run Code Online (Sandbox Code Playgroud)

unix logging apache-2.2

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

有谁知道一种监视根进程生成的简单方法

我想在新的根进程产生时执行一个脚本。(在 Linux 上)我怎么能简单地做到这一点?

谢谢

linux unix monitoring process

14
推荐指数
1
解决办法
6048
查看次数

您如何判断用户是否在 Linux 上“被允许登录”?

问题很简单,我想列出所有可以登录我的系统的用户帐户,但我不确定 /etc/passwd 中的所有用户是否都是“可以登录”的用户?

细节:

我可以看到 shell 设置为/usr/sbin/nologin/bin/falsein 的用户/etc/passwd,这是否意味着他们无法登录?

我也知道我可以将用户的加密密码设置为*!in/etc/shadow来禁用一个帐户,所以“禁用用户”也应该被视为“无法登录”用户,对吗?

linux unix user-management

14
推荐指数
2
解决办法
3万
查看次数

复制文件权限,但不复制 Unix 中的文件

(来自:https : //stackoverflow.com/questions/15245144/copy-file-permissions-but-not-files,因为离题而关闭)

我有两个相同目录树的副本。它们几乎具有相同的文件(一个版本可能有几个额外的或丢失的文件)。但是,大多数文件对于这两个目录都是通用的(具有相同的相对路径和所有内容)。

假设这些在目录中:

version1/
version2/
Run Code Online (Sandbox Code Playgroud)

问题是 version1/ 中的权限搞砸了,我想从 version2/ 复制权限,但不要替换 version1/ 中较新的文件。

是否有通过 shell 命令或脚本自动执行此操作的方法?

unix copying unix-shell file-permissions

14
推荐指数
4
解决办法
1773
查看次数

潜在被劫持的 SSH 会话和 SSH 最佳实践

我现在有点害怕。我正在通过 SSH 连接到我最近委托的远程服务器。我正在以 root 身份执行此操作。我已经安装了 fail2ban 并且在日志中有大量被禁止的 IP。

上次登录时,我注意到我的终端非常卡顿,然后我的互联网连接中断了。当我在大约 5 分钟后重新购买它时,我重新登录到服务器并做了一个“谁”并意识到有两个 root 用户登录。我本以为如果我的连接终止了上次会话的进程停在服务器上?

当我第一次断开连接时,连接以“写入失败:管道损坏”结束。我用另一个 root 终止了 bash 会话。我不太了解 ssh 安全性,但是会话会被劫持吗?有没有办法检查这个?我需要继续通过 ssh 登录,我应该采取什么预防措施?如果我以某种方式通过代理访问我的服务器(就像中间人攻击一样),他们会劫持我的 ssh 会话吗?

security linux unix ssh hacking

14
推荐指数
1
解决办法
3818
查看次数