我正在通过服务器迁移到新硬件。系统的一部分将被重建。需要复制哪些文件和目录才能使用户名、密码、组、文件所有权和文件权限保持不变?
Ubuntu 12.04 LTS。
当我尝试设置root
密码时:
root@OpenWrt:~# passwd
Changing password for root
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
Run Code Online (Sandbox Code Playgroud)
似乎最大长度是 8。如果我尝试设置超过 8 的密码,则只有前 8 个字符有效。如何设置更长的密码root
?
我的 OpenWrt 版本:
Linux OpenWrt 4.14.108 #0 SMP Wed Mar 27 21:59:03 2019 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud) 我有一个在主机上运行并创建/启动/停止 docker 容器的脚本。我希望脚本更改容器内 root 用户的密码。
由于容器是 ssh 服务器,我尝试了:
sshpass -p 'OLDPASS' ssh root@<container-IP> 'echo -e "NEWPASS\nNEWPASS" | passwd root'
但它不起作用。在继续并花更多时间调试它之前,我想知道是否有更聪明的方法来做到这一点。
我知道正确的“docker 方式”是制作一个由 Dockerfile 运行的脚本,该脚本从共享卷中提取密码并将其设置为 root 密码。这听起来很复杂,但我知道怎么做,并且适用于我使用的另一个 docker 映像。但我不想为这个而做。
我只需要一个使用 Docker 或 ssh 以非交互方式更改用户密码的命令。
Ubuntu 10.04 使用的密码是如何生成的?我知道他们使用 SHA 512 作为散列算法,但我认为已经完成了某种加盐。我需要自己生成这样的密码。我怎样才能做到这一点?有没有一个命令行工具?
我想验证用户帐户filesender_1是否是valid_senders组的成员。
当我查看 /etc/group 时,filesender_1不存在:
valid_senders:x:12345:production_1
Run Code Online (Sandbox Code Playgroud)
我将其读为“production_1 是 valid_senders 组的唯一成员,其组 ID 为 12345。”
然而:
当我查看 /etc/passwd 时,valid_senders的组 ID列在filesender_1 ...
filesender_1:x:1515:12345:filesender_1:/local/home/filesender_1:/bin/sh
Run Code Online (Sandbox Code Playgroud)
......所以我知道valid_senders是主要组filesender_1。
这是一个令人惊讶的差异,还是 /etc/group 仅列出该组为次要的成员是否正常?
当我尝试删除我的用户(从 root shell)时,它说userdel: cannot remove entry 'itaig' from /etc/passwd
用户甚至没有显示在/etc/passwd
.
[root@ab2c1 ~]# su - itaig
su: warning: cannot change directory to /home/itaig: No such file or directory
-bash-4.1$ exit
logout
[root@ab2c1 ~]# mkdir /home/itaig
[root@ab2c1 ~]# chown itaig.itaig /home/itaig/
[root@ab2c1 ~]# grep itaig /etc/passwd
[root@ab2c1 ~]# grep itaig /etc/shadow
[root@ab2c1 ~]# userdel -rf itaig
userdel: cannot remove entry 'itaig' from /etc/passwd
[root@ab2c1 ~]#
Run Code Online (Sandbox Code Playgroud)
我在其他服务器上也有完全相同的问题,但我找不到它们之间的共同点:
[root@amad ~]# userdel itaig
userdel: cannot remove entry 'itaig' from /etc/passwd
[root@amad ~]# …
Run Code Online (Sandbox Code Playgroud) 在我的一些服务器中,末尾有这条奇怪的行/etc/passwd/
,仅包含:
+::::::
有谁知道这是什么意思?
我在网上搜索,但只找到了 2012 年一位吉姆提出的相同的未回答的问题:
任何人都知道这在 Linux SLES 11 中意味着什么并且可以将其删除
(参见https://www.cyberciti.biz/faq/understanding-etcpasswd-file-format/)。
有问题的服务器运行SLES 12
,其他Ubuntu bionic
。
我有几个 Debian 服务器,只有很少的用户和服务。应用程序尽可能保存在它们自己的目录中,以便于备份或同步。
但是我很难找到一种简单可靠的方法来备份周围的数据,并在升级/故障转移等情况下轻松地将其重新应用于新服务器。通过周围数据,我指的是 /etc 中的文件,一些点- ~HOME 或 crontab 条目中的文件。
切换服务器时,您将如何改进以下策略:
没有人类用户,因此没有保持主目录内容同步的行为。它全都与 .ssh 密钥等有关。
我已经按照这篇优秀的帖子来配置 Kerberos + LDAP:http :
//koo.fi/blog/2013/01/06/ubuntu-12-04-active-directory-authentication/
但是,有一些本地用户用于服务。
当我尝试以 root 身份更改其中之一的密码时,它会询问Current Kerberos password
然后退出:
passwd service1
Current Kerberos password: (I hit enter)
Current Kerberos password: (I hit enter)
passwd: Authentication token manipulation error
passwd: password unchanged
Run Code Online (Sandbox Code Playgroud)
如果我切换到本地用户并执行passwd
,它会询问一次 Kerberos,然后回退到本地:
$ passwd
Current Kerberos password:
Changing password for service1.
(current) UNIX password:
我的配置类似于我上面发布的站点,一切正常,我只是无法以 root 身份更改本地用户的密码。
在此先感谢您的帮助。
3.8.0-29-generic #42~precise1-Ubuntu
# cat /etc/pam.d/common-auth
auth [success=3 default=ignore] pam_krb5.so minimum_uid=1000
auth [success=2 default=ignore] pam_unix.so nullok_secure try_first_pass
auth [success=1 …
Run Code Online (Sandbox Code Playgroud) 我正在用 vipw 编辑 passwd 文件,当时我短暂地失去了互联网连接。当我重新登录并尝试再次编辑时,出现错误:
vipw: Couldn't lock file: Interrupted system call
vipw: /etc/passwd is unchanged
Run Code Online (Sandbox Code Playgroud)
我假设这意味着 passwd 文件在我编辑它的中断时间仍然被锁定。我怎样才能解决这个问题?