我一直在运行useradd {user}
将用户添加到我的系统的命令,尽管我计划在自动化环境中运行它,并且它最终可能会再次运行,即使用户已经存在。
有没有办法让我只有在用户不存在的情况下才能运行它?用户没有主文件夹。
Pet*_*r.O 81
id -u somename
当用户不存在时返回非零退出代码。
您可以非常简单地对其进行测试...(&>/dev/null
只是抑制正常输出/警告)
id -u somename &>/dev/null || useradd somename
Run Code Online (Sandbox Code Playgroud)
seb*_*szw 22
尝试这个:
useradd {user} || echo "User already exists."
Run Code Online (Sandbox Code Playgroud)
甚至这个:
useradd {user} || true
Run Code Online (Sandbox Code Playgroud)
除非您只有少数系统,否则您问错了问题。答案根本就不是运行 useradd,而是将这项工作留给像 puppet 或 Chef 这样的配置管理解决方案。这将允许您的用户定义集中,并防止您运行 for 循环并使用 ssh 与 root 用户一起配置您的系统。您将始终拥有处于已知配置状态的系统。
木偶文档可在http://docs.puppetlabs.com 上获得
以人偶为例:
user { "bob" :
password => "$1$yv3n066X$Vpb05Ac/fHTicNdT9T5vz1", # generated with `openssl passwd -1`
ensure => present, # ensure => absent to remove
managehome => true,
}
Run Code Online (Sandbox Code Playgroud)
useradd
如果用户已经存在,则不会再次添加该用户,它旨在确保 uid 号和 uid 登录名是唯一的。如果您计划运行一个批处理,请确保使用的 uid 是唯一的;useradd
会抱怨有问题的条目,您需要捕获错误/stderr 以查看哪些用户帐户有问题进入帐户系统 ( /etc/passwd
, group
, shadow
)。
归档时间: |
|
查看次数: |
53047 次 |
最近记录: |