CentOS 6 和 RHEL 6 上的 linux 用户名的真正规则是什么?

发布于 2024-11-27 18:45:42 字数 1549 浏览 3 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白衬杉格子梦 2024-12-04 18:45:43

基本的 gnu/linux 用户名是一个 32 个字符的字符串 (useradd(8))。这是 BSD 4.3 标准的旧格式。 passwd(5) 添加了一些额外的限制,例如,不要使用大写字母,不要使用点,不要以破折号结尾,不得包含冒号。

为了安全起见,请遵循 C 标识符的相同规则:

([a-z_][a-z0-9_]{0,30})

这就是问题的一半。现代 GNU/Linux 发行版使用 PAM 进行用户身份验证。有了它,您可以选择任何您想要的规则以及任何数据源。

由于您正在编写程序,因此最好定义自己的格式,然后使用 pam_ldappam_mysql 等来访问它。

A basic gnu/linux username is a 32 character string (useradd(8)). This is a legacy format from the BSD 4.3 standard. passwd(5) adds some additional restrictions like, do not use capital letters, do not use dots, do not end it in dash, it must not include colons.

To be on the safe side of things, follow the same rules of a C identifier:

([a-z_][a-z0-9_]{0,30})

That's half the problem. Modern GNU/Linux distributions use PAM for user authentication. With it you can choose any rule you want and also any data source.

Since you are writing a program it's better to define your own format, and then use something like pam_ldap, pam_mysql, etc. to access it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文