标签: passwd

12
推荐指数
1
解决办法
5万
查看次数

“没有这样的用户”但用户在密码文件中

查看 /etc/ 中的文件:

/etc/group:lbutler:*:1005:
/etc/master.passwd:lbutler:$6$s..../:1005:1005::0:0:L Butler:/home/lbutler:/bin/bash
/etc/passwd:lbutler:*:1005:1005:L Butler:/home/lbutler:/bin/bash
Run Code Online (Sandbox Code Playgroud)

但:

$ passwd lbutler
passwd: lbutler: no such user
Run Code Online (Sandbox Code Playgroud)

此外,文件/home/lbutler/显示为 uid 1005 和 gidlbutler

中的其他用户/etc/passwd似乎没有问题

freebsd passwd

12
推荐指数
2
解决办法
7443
查看次数

以用户身份在 docker 中运行 git 或 ssh 客户端:uid 不存在用户

问题:

我正在尝试git clone myuser@server:repo.git从 docker 容器中运行 a 。在容器内(由于政策),我与 docker 主机系统(非 root)上的用户相同,并且我的家已安装。

可悲的是,当从或尝试通过 ssh 克隆时,server我收到如下错误消息:

No user exists for uid 1337
Run Code Online (Sandbox Code Playgroud)

MVCE:

要重现该问题,您可以运行以下 docker 容器:

docker run --rm -it -v /home/$USER:/home/$USER -e HOME=/home/$USER -w /home/$USER -u $UID:100 --cap-drop=ALL kiesel/debian-ssh-client
Run Code Online (Sandbox Code Playgroud)

并在容器内执行以下任一命令:

git clone myuser@server:repo.git
ssh -vT myuser@server
Run Code Online (Sandbox Code Playgroud)

解决方法:

/etc/passwd为我的 uid添加一行伪造似乎可以解决问题(例如getent passwd $USER > /tmp/mypasswd,然后将 a 添加-v /tmp/mypasswd:/etc/passwd:rodocker runcmd)。

可悲的是,这需要遮蔽/修改容器的/etc/passwd,我可以想象这会在某些时候导致麻烦。

问题:

  • 为什么 ssh(客户端)查看本地(容器)/etc/passwd
  • 有没有一种简单的方法来停用它(具有用户权限)?

ssh authentication passwd docker

12
推荐指数
1
解决办法
1万
查看次数

会不会总是有一对相同的 UID 和 GID?

我必须使用chmod.I更改文件/目录的所有权。我只知道所有者的用户名,但想同时更改默认组名。在这个阶段组名没有决定所以我把相同的用户名

chown -R username:username path_to_dir
Run Code Online (Sandbox Code Playgroud)

命令可能对各种系统/用户运行,所以我担心的是,linux 是否总是有一对 username(user):username(group) 或在某些时候这个默认 group_name 可能会出错。

虽然我已经开始从用户所属的地方找GID

id username | tr '(=)' ':' | awk -F: '{print $3}
Run Code Online (Sandbox Code Playgroud)

但对于知识,我想知道。到目前为止,/etc/passwd /etc/groups除了少数用户(如“shutdown、halt、sync、opeartor”)外,所有用户也已在组中列出。

编辑 1: id -gn username 也是不错的选择

linux chown passwd

11
推荐指数
3
解决办法
1万
查看次数

如何找到用于散列密码的散列算法?

我有工作密码并且可以看到哈希值 (/etc/passwd)。如何找到用于散列密码的散列算法,而无需手动尝试不同的算法,直到找到匹配项?

hashsum passwd

11
推荐指数
1
解决办法
2万
查看次数

为什么 Linux Mint 上的 root 密码是我的用户密码?

我全新安装了 Linux Mint 18.1,并创建了一个名为“jack”的用户,密码为 PASSWORD1。后来,我将密码(使用“用户和组”图形对话框)更改为 PASSWORD2。sudo正如预期的那样,现在登录和使用都需要 PASSWORD2。

但是, PASSWORD1 仍然是帐户的密码root。我可以判断因为su -su - root拒绝 PASSWORD2 但接受 PASSWORD1。

这不是安全漏洞吗?为什么 root 帐户首先会默默地复制我的用户密码?如果我知道我的密码被盗用并更改了它,我不会考虑检查 root 帐户是否仍在使用被盗用的密码。

事实上,我认为默认情况下在 Linux Mint 上禁用了 root 帐户。例如,请参阅此问题:https : //superuser.com/questions/323317/why-does-linux-ubuntu-mint-lack-a-root-account

有什么理由不禁用 root 帐户sudo passwd -l root?为什么默认情况下不这样做?

编辑

@terdon 我很确定我从来没有在这个操作系统上运行过sudo passwd,甚至没有运行过passwd

@Mark 我检查过,唯一回来的东西看起来不相关。

jack@gamma /var/log $ ls auth.log*
auth.log  auth.log.1  auth.log.2.gz  auth.log.3.gz  auth.log.4.gz

jack@gamma /var/log $ zgrep passwd auth.log*
auth.log.2.gz:Mar  9 17:56:07 gamma mdm[1695]: pam_succeed_if(mdm:auth): requirement "user …
Run Code Online (Sandbox Code Playgroud)

password root linux-mint passwd

10
推荐指数
1
解决办法
2万
查看次数

处理 /etc/passwd 文件以列出主文件夹在 /home 中的所有用户

我有一个像这样的示例 /etc/passwd 文件:

tom:x:1000:1000:Work:/home/tom:/bin/bash
george:x:1000:1000:Work:/home/george:/bin/bash
bla:x:1000:1000:Work:/home/bla:/bin/bash
boo:x:1000:1000:Work:/home/boo:/bin/bash
bee:x:1000:1000:Work:/root/list:/bin/bash
Run Code Online (Sandbox Code Playgroud)

我正在尝试列出所有用户在/home/.

我写

cat ~/Desktop/e.txt |awk -F ":" '{if ($6 ~/^/home/) print $1;}'
Run Code Online (Sandbox Code Playgroud)

其中 e.txt 是我在这里复制的文本。

我知道作为转义字符的反斜杠存在问题,但是如何修复它以便我可以在命令的一行中列出它们?

awk text-processing wildcards passwd

10
推荐指数
3
解决办法
3749
查看次数

passwd 错误消息的来源

我正在测试如果passwdsetuid 位被禁用该命令是否可以运行。我通过运行以下命令禁用了 setuid:

chmod 0554 /bin/passwd
Run Code Online (Sandbox Code Playgroud)

这样做之后,我测试了该passwd命令是否仍然能够运行。但正如预料的那样,事实并非如此。相反,它给了我以下错误:

passwd: Authentication token manipulation error
Run Code Online (Sandbox Code Playgroud)
passwd: password unchanged
Run Code Online (Sandbox Code Playgroud)

我尝试在源代码中查找这些错误消息,但在该文件中找不到它们。谁能指导我找到包含上面显示的错误消息的源文件?

password source ubuntu setuid passwd

10
推荐指数
2
解决办法
1443
查看次数

if 语句在 etc/passwd 中查询用户 ID?

使用 bash 我试图查询/etc/passwd任何 id 超过 1000 的用户。如果他们存在,做一些事情,否则做其他事情。我难住了。任何帮助表示赞赏。

if [ "$(id -u)" -gt "1000" </etc/passwd]; then
    do something
else
    do something else
fi
Run Code Online (Sandbox Code Playgroud)

bash users text-processing etc passwd

8
推荐指数
3
解决办法
3830
查看次数

密码策略 - 错误密码:密码刚刚轮换为旧密码

通过以下方式设置密码过期后:

sudo chage -d 0 用户名

然后更改密码并以该用户身份登录。

当我输入“passwd”并尝试设置原始密码时,我收到消息;

“密码策略 - 错误密码:密码刚刚轮换为旧密码”

我查看了以下文件,但看不到可能导致此行为的政策行项目;

sudo nano /etc/pam.d/common-password


# here are the per-package modules (the "Primary" block)
password        requisite                       pam_pwquality.so retry=3
password        [success=2 default=ignore]      pam_unix.so obscure use_authtok try_first_pass yesc>
password        sufficient                      pam_sss.so use_authtok
# here's the fallback if no module succeeds
password        requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# …
Run Code Online (Sandbox Code Playgroud)

passwd

8
推荐指数
2
解决办法
3384
查看次数