我在/ etc / passwd中意外地修改了我的用户的默认shell程序/ bin / bash。 我没有在我的Ubuntu服务器安装中设置root密码。 现在我甚至不能login。 有什么我可以做的吗?
在我的桌面计算机上,我的帐户是david ,但在我的服务器上,这是dweintra 。 这意味着每当我使用scp我必须这样做: $ scp some.file dweintra@app05: 和 $ ssh dweinta@app05 我想能够简单地做到这一点: $ scp some.file app05: $ ssh app05 也就是说,以某种方式为我的实际dweintra用户名创build一个david 别名用户名。 我想我可以通过在/etc/passwd文件中添加一个与dweintra条目匹配的条目,除了该行的第一个字段以外。 dweintra实际上是在NIS中,而不是直接在/etc/passwd 。 这样做会有什么问题吗? 我只是希望能够减less一些击键和几个简短的毫秒,我需要拉我的用户名在服务器上。
以下是存储在系统上的两个不同用户的/etc/shadow的输出: usr1:$1$zgKwt6aQ$gXxsMLgcxa/u6rmq5QseP.:14307:0:99999:7::: usr2:$6$9Bh5mQ5t$VY64eVcILqgXIC1EFPJ.f3tDVrsSf4y1Th6dleFN2FcuUJQUGevVXILySNfQlDNVWBQXCHaja1hyms.mVeDOY/:14839:0:99999:7::: 问题是,为什么这些密码哈希(两个工作)有不同的长度?
我有两个不同的用户列表。 我需要比较用户,并确保它们存在于两个文件中。 一个是passwd文件,另一个是平面文件,具有用户名和其他信息,我可以从中提取sorting的用户名单。 这给了我一个用户名的sorting列表: cat /etc/passwd | cut –fields=1 | sort -k1.2 有没有更好的方法来做这个第一,然后第二我如何再比较其他用户列表从另一个文件? 如果用户不存在,我将把它添加到平面文件。
我正在尝试设置libnss-mysql和libpam-mysql 。 到目前为止,一切都一直工作。 我可以使用id来获取有关存储在我的数据库中的用户的信息。 getent passwd也在工作。 然而, getent shadow不是。 此外,我无法使用passwd更改存储在数据库中的用户的passwd 。 有没有办法解决这些问题? 顺便说一句,我正在运行Ubuntu 10.04作为最小的虚拟机。 更新 我改变的唯一configuration文件是/etc/nss-mysql-root.conf和/etc/nsswitch.conf 。 我很确定前两个是正确的。 因为他们只是configuration数据库的访问方式。 我只在后面三行添加了“mysql”这个词: passwd: compat mysql groups: compat mysql shadow: compat mysql 我没有碰到任何其他configuration文件。 如果您需要查看其他文件,请让我知道,因为现在我不知道哪个其他configuration文件可能是感兴趣的。
我只是有一个奇怪的经历。 我在服务器上创build了一个新用户(Ubuntu 10.04,Plesk安装),然后想要设置密码。 看看那个输出: # useradd dev # passwd dev Enter new password: Retype new password: Geben Sie ein neues UNIX-Passwort ein: Geben Sie das neue UNIX-Passwort erneut ein: 我不得不给密码4次。 后两个提示是德语。 后两个请求的密码需要与先给出的密码不同。 这里发生了什么? 更新:#cat /etc/pam.d/passwd##Shadow`passwd'服务的PAMconfiguration文件# @include common-password # cat /etc/pam.d/system-auth cat: /etc/pam.d/system-auth: Datei oder Verzeichnis nicht gefunden (/etc/pam.d/system-auth不存在)顺便说一句。 我可以以某种方式设置所有这样的输出为英语,而不会改变系统区域设置(这可能会影响其他的东西)? UPDATE2: # cat /etc/pam.d/common-password # here […]
第1部分 getent应该是一个可执行文件吗? 在我的zsh设置中,我可以看到getent实际上被定义为一个函数 $ which getent getent () { if [[ $2 = <-> ]] then grep ":$2:[^:]*$" /etc/$1 else grep "^$2:" /etc/$1 fi } 如果我想从bash shell执行它, bash -c "getent passwd user" 我得到一个getent: command not found错误。 第2部分 在Mac OSX中,无论用户标识是否有效, getent都会失败。 事实certificate,用户标识不保存在/etc/passwd文件中。 为什么是这样? 还有什么替代方法?
现在我已经通过SSL使用PAM + LDAP进行了工作设置,但是我只能在ldap树中passwd用户,关于如何能够passwd每个用户的任何想法? 这里是一些conf文件:/etc/pam.d/common-password:password可选pam_unix.so nullok obscure try_first_pass密码足够pam_ldap.so ignore_unknown_user密码pam_deny.so /etc/nsswitch.conf:passwd:compat ldap组:compat ldap shadow:compat ldap 主机:文件DNSnetworking:文件 协议:db文件服务:db文件ethers:db文件rpc:db文件 netgroup:nis 任何想法 ? 注意:我在每个系统上运行Debian Lenny。
我有一个项目,要求我在CentOS 7上安装脚本/命令序列来更改root密码。 我可以假设将执行脚本的用户已经是root用户。 目前,我正在使用以下,并获得成功消息: [root@localhost]# echo -e 'password\npassword' | (passwd –stdin root) Changing password for user root. passwd: all authentication tokens updated successfully. 但是,这实际上并没有改变密码。 经过进一步检查(手动设置密码),我注意到密码password没有通过字典检查,但仍然报告成功: [root@localhost]# passwd Changing password for user root. New password: BAD PASSWORD: The password fails the dictionary check – it is based on a dictionary word Retype new password: passwd: all […]
这是一个很奇怪的问题,但我希望我的用户能够更改我的FTPS服务器(使用本地帐户)的密码。 目前所有这些用户都将/ bin / false设置为shell,但是可以设置一个允许用户更改密码然后断开连接的shell? 我尝试设置/ usr / bin / passwd,但是在填写当前密码后,它只是断开连接。 我正在使用Debian Wheezy。