我已经安装了 Cygwin,但操作起来有些不方便。例如,我希望能够使用“su peter”,其中 peter 有自己偏好的主目录和 shell。我不关心安全性。我不需要这些“用户帐户”对 Windows 机制可见。
我的努力受阻了。我不知道如何在 /etc/passwd 中设置“无需密码”。‘su’ 显示未找到命令。
(顺便说一句,几年前我确实在另一台机器上安装了 Cygwin,没有任何问题。我是否在与最近的“改进”作斗争?)
让我澄清一下我的问题。/etc/passwd 中的功能包括:* 分配一个主目录。我希望 george 和 peter 拥有不同的目录。我不在乎 george 和 peter 是否可以修改彼此的文件 * 我希望 george 能够使用与 peter 不同的 shell。我不希望 goerge 需要为每个生成的 shell 输入 ** tcsh ** cd /home/george ** source .cshrc。有没有简单的方法可以实现这一点?Windows 功能甚至有首选 Cygwin shell 的概念吗?
答案1
我不在乎安全。
我不需要这些“用户帐户”对 Windows 机制可见。
每个 Cygwin 用户都必须有一个对应的 Windows 用户。
如何在 Cygwin 中添加新用户?
- 创建 Windows 用户
- 在 Windows 中创建用户(开始 > 控制面板 > 管理用户帐户 > 添加...)
- 创建相应的Cygwin用户
运行以下命令:
mkpasswd -l > /etc/passwd mkgroup -l > /etc/group
这会将 Cygwin 用户和组与 Windows 用户帐户同步。
-d
如果你在域中使用-l
- 设置用户 shell
/etc/passwd
通过修改(纯文本文件)适当地更改用户的默认 shell该文件的格式如下:
Username:Password:UID:GID:Info:Home:Shell
- 根据需要修改用户主目录权限
我不知道如何设置“无需密码”
如果您真的不关心安全性并且不想使用密码,请使用:
password -p username
来自passwd
文档:
概要
passwd [OPTION] [USER]
选项
...
-p, --pwd-not-required
用户无需密码。
来源密码
我是否正在与最近的“改进”作斗争?
从 Cygwin 1.7.34 版本开始/etc/passwd
不再默认用于管理用户帐户。
自 1.7.34 版本起,Cygwin 使用原生的 Windows 用户管理。
- Active Directory(如果可用),
- 否则,SAM。
您应该使用新机制来管理用户帐户,而不是/etc/passwd
:
从 Cygwin 1.7.34 开始,Cygwin 使用从 Windows SID 到 POSIX UID/GID 的自动内部转换。此机制是 SID<=>UID/GID 映射的首选方法,在将 Windows 帐户映射到 POSIX 帐户。
mkpasswd
在 Cygwin 1.7.34 之前,当您使用和工具创建 /etc/passwd 和 /etc/group 文件时,SID 的最后一部分,即所谓的“相对标识符”(RID),默认用作 UID 和/或 GID。mkgroup
这些工具以及从/etc/passwd
和/etc/group
文件中读取帐户的功能仍然存在于较新版本的 Cygwin 中,但除非您有非常特殊的需求,否则您应该切换到上述自动翻译。同样,请参阅 将 Windows 帐户映射到 POSIX 帐户了解详情。
su
给出的命令未找到。
安装sshd
并ssh username@localhost
作为su
替代品使用。
您可以定义一个su
别名以使这更容易。
为什么 su 不起作用?
该
su
命令已进出 Cygwin 发行版,但尚未移植到 Cygwin,并且从未工作过。它目前作为 的一部分安装sh-utils
,但同样不起作用。您应该安装
sshd
并使用ssh username@localhost
替代su
品。有关为什么
su
不起作用的技术背景,请阅读关于 'su' 命令以及相关邮件存档信息。