linux - Linux:检查用户是否有外壳
问题描述
我正在用 python 编写一个测试脚本,我使用 subprocess 来运行各种终端命令并检查结果。我要检查的一件事是用户“游戏”是否没有外壳。我不想以游戏身份登录(我认为无论如何这是不可能的),但能够以 root 身份运行此命令。是否有任何单个 bash 命令可以用来检查其他用户拥有(或没有)哪些 shell?
我可以使用命令“cat /etc/shells/”来检查我有哪些可用的 shell,我想用它来搜索另一个用户,但我不知道该怎么做,如果它甚至可能的话。
解决方案
您可以使用“su”,并检查返回码:
root@shinwey:# su games
This account is currently not available.
root@pifa:/home/kalou/t# echo $?
1
或打印字符串“NO_SHELL”:
root@shinwey:# su games 2>&1 > /dev/null || echo NO_SHELL
NO_SHELL
推荐阅读
- javascript - 如何使用正则表达式从 URL 中获取最后一部分?
- typescript - 打字稿推送到具有连接类型的列表
- php - 如何在 MySQL 中找到不同组中的重复对
- google-cloud-platform - “无法处理特征。” 来自 Google Vision API 的错误
- javascript - 向 console.log 发送消息(开玩笑的木偶师)
- java - 用于匹配特定大小写模式的正则表达式
- python - Django-polymorphic - 我可以按内容类型指定顺序吗?
- netsuite - 在 NetSuite 中重命名术语“员工”
- qt - 如何删除 Flickable QML 组件的边界?
- php - Liip - 仅在大于预期时调整图像大小