我对 Linux 完全陌生。在观看有关 Ubuntu 的教程视频时,我遇到了命令passwd
. 当我测试时,它显示;
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
Run Code Online (Sandbox Code Playgroud)
为什么它说 UNIX 密码?与 UNIX 有关系吗?
我想将我的默认 shell 从 tcsh 更改为 bash。所以我尝试了,这就是发生的事情:
>sudo chsh userid
Changing the login shell for userid
Enter the new value, or press ENTER for the default
Login Shell [/xhbin/tcsh]: /bin/bash
chsh: user 'userid' does not exist in /etc/passwd
Run Code Online (Sandbox Code Playgroud)
确实,我不在 /etc/passwd 中。我不知道为什么。
我能做什么?
这两个文件/etc/shadow
,并/etc/passwd
似乎是一样的,他们只是报告有关帐户的一些信息。它们之间有什么区别?
怀疑某些软件包在安装时运行了脚本,这些脚本会在/etc/passwd
. 如何检查哪个包创建了特定用户?
我在 Windows 7 的 Oracle Vbox 上运行 Ubuntu 来开发网站。我有一组具有所有者读/写权限的目录,但 www-data 组对目录没有权限。
我尝试了sudo chmod 640 /path-to-directory
更改状态的命令 ,但收到一条消息,要求我输入 www-data 密码。我的所有者级别密码不起作用,我不知道这个密码可能是什么。
我尝试passwd
并收到消息“更改 www-data 的密码并提示我输入当前密码”。当我输入它时,我收到此错误消息:
passwd:身份验证令牌操作错误
passwd:密码未更改
此错误消息看起来更像是我系统上的某种问题,但其他一切正常。
$cat /etc/passwd |grep -i root
root:x:0:0:root:/root:/bin/bash
$sudo cat /etc/shadow |grep -i root
root:!:17179:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)
在影子文件的第二个字段中,!
表示 root 用户无法登录,但为什么我可以通过 登录到 root 用户sudo su
?
为什么我不能通过su root
或登录到 root 用户su -
?
我正在尝试将 OpenVPN 服务器从 CentOS 机器迁移到 Ubuntu 18.04 服务器。
有一个脚本可以创建新的 VPN 用户。部分原因是它为用户生成一个新密码,然后将其作为新用户的 Linux 密码传入(在此之上有 MFA,因此这只是身份验证过程的一部分)。
但是,脚本使用以下行来执行此操作:
echo ${VPN_PASSWORD} | passwd "${VPN_USER}" --stdin
Run Code Online (Sandbox Code Playgroud)
和乱搞很长一段时间后,我发现,Ubuntu的不具备--stdin
的选项passwd
。
然而,我还没有找到一种替代方法。
这些是我的脚本的相关部分。
我们生成一个密码:
VPN_PASSWORD=$(cat /dev/urandom | tr -dc 'A-Z0-9' | head -c 8)
Run Code Online (Sandbox Code Playgroud)
我们添加一个新用户并尝试为其分配此密码:
echo "Adding Unix user ${VPN_USER}"
useradd -G vpnusers -m -s /sbin/nologin $VPN_USER
if [ "$?" != 0 ]
then
echo "Could not create user. (Are you sudo?!)"
exit 1
fi
echo ${VPN_PASSWORD} | passwd "${VPN_USER}" --stdin
echo "User created."
Run Code Online (Sandbox Code Playgroud)
正在创建用户,但我收到有关密码的错误: …
我处于一种奇怪的情况,我无法在我的机器(Ubuntu 16.04)上使用八进制sudo passwd username
或passwd username
从 root 帐户重置用户的密码。
root@adam-minipc:~ # passwd mikolaj
Current password:
New password:
New password (again):
passwd: Authentication token manipulation error
passwd: password unchanged
Run Code Online (Sandbox Code Playgroud)
在/etc/shadow
相关条目中写道:
mikolaj:!:18063:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)
这是为什么?是什么原因造成的以及如何重置密码?我被坑了吗?
解锁帐户也无济于事:
root@adam-minipc:~ # passwd -u mikolaj
passwd: unlocking the password would result in a passwordless account.
You should set a password with usermod -p to unlock the password of this account.
Run Code Online (Sandbox Code Playgroud)
usermod -p <encrypted password> mikolaj
需要加密密码,它只是将其粘贴到/etc/shadow
文件中。我不知道如何获得加密的密码,即使我知道,如果您是root,它也必须是一种简单地重置密码的方法。这是我第一次看到这种行为,passwd
坦率地说,我真的很茫然。
该问题与在尝试更改我的用户密码时出现“身份验证令牌操作”错误不同,因为它与只读文件系统无关,我也首先抱怨该错误。我想知道,为什么sudo …
在我的 ubuntu 桌面主机和虚拟机中。我有大约一个月没有以 root 身份登录,在此期间我升级了内核。我发现我的 root 密码不再有效。但是,通过使用 sudo passwd root
,我可以轻松地通过当前用户密码重置 root 密码。这怎么会发生?我不再有问题了,只是好奇下划线的原因。谢谢!
我有一个服务器。我的服务器是安全的,但让我们想象一下进入的优秀黑客。他现在可以查看/etc/passwd
和/etc/shadow
。我想将该文件重命名/etc/passwd
为/etc/xxanoda
.
我以为我可以做一个链接,但对于黑客来说这很容易做到ls -l
。
可以重命名这些文件并且仍然有一个正在运行的操作系统,没有兼容性问题,或者它完全没用?只为求知。
passwd ×10
security ×2
16.04 ×1
chsh ×1
command-line ×1
dpkg ×1
etc ×1
password ×1
permissions ×1
root ×1
shadow ×1
sudo ×1
users ×1
virtualbox ×1