小编t6d*_*t6d的帖子

如何确定我是否通过 SSH 登录?

我目前正在设置一个相当复杂的 bash 配置,它将在多台机器上使用。我试图找出是否可以确定我是通过 SSH 登录还是在本地计算机上登录。例如,通过这种方式,我可以根据该事实设置一些别名。就像别名一样haltrestart因为停止远程服务器可能不是最好的做法。

到目前为止我所知道的是,环境变量SSH_CLIENT是在我通过 ssh 登录时设置的。不幸的是,当我使用sudo -s. 我也知道我可以向 sudo 传递一个参数,指示 sudo 将我所有的环境变量复制到新的 shell 环境中,但是如果我不想这样做,还有其他方法吗?

linux ssh shell

18
推荐指数
4
解决办法
2万
查看次数

如何为 Ubuntu 10.04 生成与 /etc/shadow 兼容的密码?

Ubuntu 10.04 使用的密码是如何生成的?我知道他们使用 SHA 512 作为散列算法,但我认为已经完成了某种加盐。我需要自己生成这样的密码。我怎样才能做到这一点?有没有一个命令行工具?

ubuntu user-management passwd shadow

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

如何从 $(who am i) 中提取主机名

我尝试从以下字符串(使用创建who am i)中提取主机名:

username pts/0        2010-10-05 17:30 (www.example.com)
Run Code Online (Sandbox Code Playgroud)

我需要一个解决方案,如果 (www.example.com) 不存在(当我在本地登录时就是这种情况),它也可以工作。此外,该解决方案还必须在who am i返回以下字符串的 Mac 上运行:

username ttys006      Oct  5 16:47 (www.example.com)
Run Code Online (Sandbox Code Playgroud)

问题是 mac 在日期中放置了空格,这使得它难以使用cut。我认为,必须有一个sed用于提取子字符串的解决方案,但是我在弄清楚如何正确使用时遇到了问题sed

更新:疯狂的方法

这种方法只有在实际存在括号时才有效。如果不是,则会发生以下情况:

$ who am i | cut -f2 -d '(' | tr -d ')'
username ttys006      Oct  5 16:47
Run Code Online (Sandbox Code Playgroud)

linux bash sed strings

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

标签 统计

linux ×2

bash ×1

passwd ×1

sed ×1

shadow ×1

shell ×1

ssh ×1

strings ×1

ubuntu ×1

user-management ×1