Suy*_*ain 3 shell users passwd
我正在寻找一种方法来从命令行替换 /etc/passwd 中的 mysql 用户 shell 配置,因为有多个服务器我想禁用 mysql 用户的 shell。
实际的
mysql:x:498:498:MySQL server:/var/lib/mysql:/bin/bash
Run Code Online (Sandbox Code Playgroud)
想要的
mysql:x:498:498:MySQL server:/var/lib/mysql:/sbin/nologin
Run Code Online (Sandbox Code Playgroud)
不要修改/etc/passwd
用sed
。使用提供的工具与该文件交互。
在这种情况下,chpass
/ chsh
,或者可能是更一般的usermod
。
在大多数系统上:
$ sudo chpass -s /sbin/nologin mysql
Run Code Online (Sandbox Code Playgroud)
或者
$ sudo chsh -s /sbin/nologin mysql
Run Code Online (Sandbox Code Playgroud)
会工作。
您不想/etc/passwd
使用sed
(或使用vim
/ emacs
)进行编辑,绝对不想使用sed -i
.
用户@JdeBPvipw
在下面的评论中提醒我有关该实用程序的信息。这是一个特殊的命令,很像visudo
,它允许您/etc/passwd
在处理文件锁定等的同时进行编辑。它还在安装新密码文件代替旧密码文件之前对保存的文件进行一致性/语法检查。vipw
有关详细信息,请参阅系统手册。这是手动编辑密码文件的唯一安全方法。
另请注意,在某些Unix 系统上,默认登录 shell 是通过密码文件以外的其他方式设置的。例如,在 OS X 上,普通用户甚至没有/etc/passwd
.
归档时间: |
|
查看次数: |
1612 次 |
最近记录: |