我使用 IceWM 窗口管理器。
我希望在关闭笔记本电脑盖子后锁定屏幕。
我发现了一些看起来很有希望的指南(1、2 ),但不幸的是对我不起作用。
也许我目前缺少一个解决方案?
检查这两个文件 /etc/passwd
, /etc/shadow
在标准 Linux 发行版上,似乎所有条目在两个文件中都是重复的:
/etc/passwd
,所有条目都是重复的(每个条目 2 行,包括 forroot
和用户名)/etc/shadow
,所有条目都类似地重复。关于为什么以及如何发生的任何想法?如果需要,可以补救吗?
干杯。
假设您有 ~/passwords.txt 文件,其中存储了所有密码。
如何
应该满足哪些条件,这样这种技术才能防弹。
我遇到了pdfcrack。我正在尝试破解发送给我的文件,但发送的密码不起作用。现在我不知道是因为它是1.5版还是密码不起作用。我使用以下链接来了解 pdfcrack 的工作原理。
https://www.maketecheasier.com/recover-lost-pdf-passwords-linux/
现在虽然我可以做一个单词表,但首先我尝试使用手册页中共享的 -n -
-n, --minpw=INTEGER
Skip trying passwords shorter than INTEGER
可以看出它说和 IIUC,这意味着它会跳过密码情人而不是给定的数字 -
$ pdfcrack -f document.pdf -n=09
PDF version 1.5
Security Handler: Standard
V: 2
R: 3
P: -1068
Length: 128
Encrypted Metadata: True
FileID: 0
U=
O=
Average Speed: 48106.7 w/s. Current Word: 'qrbd'
^CCaught signal 2!
Trying to save state...
Successfully saved state to savedstate.sav!
现在,由于该文件本质上是敏感的,因此我删除了 FileID 以及该文件生成的任何哈希值。
现在的问题是,它试图破解的当前单词或密码是“grbd”,它只有 6 个字母而不是 9 个。IIUC,我上面所做的是有 9 个字母而不是 6 个,我做错了什么?
我一直在使用 pass 来存储密码,但现在我想将我的密码存储从默认位置移动。根据手册页,将PASSWORD_STORE_DIR
变量设置为所需的路径以覆盖默认路径就足够了,但是在我的情况下,这没有效果。将.password-store
文件夹移动到新位置并设置环境变量后,执行命令pass
会导致“错误:密码存储为空。尝试“传递初始化”。”。即使只是重命名.password-store
内部主目录:
$ cd
$ mv .password-store .pass
$ PASSWORD_STORE_DIR=/home/bakhtin/.pass #bakhtin is the user name
$ pass
Error: password store is empty. Try "pass init".
关于问题可能是什么的任何想法?我确保变量名称等没有拼写错误。
我在 Linux 上用完全相同的密码创建了两个用户,但是当我查看/etc/shadow
文件时,我发现哈希值看起来不同,尽管 salt 文件是相同的。(请看下面,j9T
是盐)。为什么散列密码不相似,尽管 slat 和密码相似?
# tail /etc/shadow
Bob:$y$**j9T**$ewJ0HB756BZDnPjx7zzbm0$i39AKrfuQuvvoQJpujwWd7Z4bcZgN1l0IWeJsNmLzg7:19254:0:99999:7:::
Bob:$y$**j9T**$pFF5c93UZvdFYD2nanxEO.$SMhaxtPUPEUZdZZx.b1tGmjXgM67nqBJgMk2sNP.5s4:19254:0:99999:7:::
我正在测试如果passwd
setuid 位被禁用,该命令是否可以运行。我通过运行以下命令禁用了 setuid:
chmod 0554 /bin/passwd
这样做之后,我测试了该passwd
命令是否仍然能够运行。但正如预期的那样,它没有。相反,它给了我以下错误:
passwd: Authentication token manipulation error
passwd: password unchanged
我试图在源代码中查找这些错误消息,但在此文件中找不到它们。谁能指导我找到包含上面显示的错误消息的源文件?
我已经花了一段时间制作一个BASH
脚本来遍历两个列表并从中创建一个命令。
最后它应该执行命令并同步我的 ZFS 服务器和 ZFS 备份服务器。
唯一的顶峰是,BASH
当命令要求输入密码时,它实际上无法插入密码。
据我了解,这可以通过expect
.
命令存储在$ExecuteSyncoid
And 看起来像这样
/usr/sbin/syncoid <UserName>@<IP>:Storage/WallaBag Storage/Docker/WallaBag --compress none --sshcipher [email protected] --sshport <PortNumber> --sshkey </dest/to/keyfile> --no-privilege-elevation
密码存储在$PWD
现在我必须expect
从 BASH 中执行,因为我真的没有心情尝试重新创建expect/tcl
我以前从未尝试过的所有代码。
该expect
部分是
Enter passphrase for key '<nameOfKey>'
现在我不明白tcl/expect
,但到目前为止我已经做出了尝试,我什至无法让它工作一次
expect -c 'expect "Enter" { spawn $ExecuteCommand; send -- "$PWD\r"; interact }'
expect -c 'spawn $ExecuteSyncoid; expect "Enter"; send -- "$PWD\r"; interact'
syncoid command/password
/usr/bin/expect - <<EOF
spawn $ExecuteSyncoid
expect "Enter"
send -- "$PWD\r"
EOF
/usr/bin/expect <<EOD
spawn $ExecuteSyncoid
expect "Enter passphrase for key"
send -- "$PWD\r"
interact
EOD
/usr/bin/expect -c 'expect "Enter" { spawn $ExecuteSyncoid; send -- "$PWD\r" }'
我也尝试制作一个单独的脚本
expect -f ./SynCoid-IterateThroughDataSets.exp $ExecuteSyncoid $PWD
用代码
#!/usr/bin/expect -f
set ExecuteSyncoid [lindex $argv 0];
set PWD [lindex $argv 1];
spawn $ExecuteSyncoid
expect "Enter"
send "\$PWD\r"
但不幸的是,我无法弄清楚如何让期望将$ExecuteSyncoid
命令视为一个一致的命令。如果我将它放在引号“”中,它不会执行它,如果我没有将它放在引号中,则$ExecuteSyncoid
bash 变量被认为是期望的多个参数。
如果有人知道如何解决这个问题,或者知道该怎么做,我将不胜感激。
如果我可以在expect
命令执行时查看命令的输出,那也太好了$ExecuteSyncoid
最好的问候, Darkyere
我有这个脚本,我从 Linux 机器上运行,以更改可通过 ssh 访问的远程 Solaris 机器上的 root 密码。一切似乎都很好, passwd 命令要求输入密码,第二个密码,回复不是 8 个字符长并以 ... 成功更新结束,但是当我转到 Solaris 并检查时,密码没有更改。影子文件没有被修改。我可以直接在 Solaris 机器上更改密码,没有任何问题。
$ cat ./expect2.txt
#!/usr/bin/expect --
# Input: username password hostname
set USER [lindex $argv 0]
set PASS [lindex $argv 1]
set IP [lindex $argv 2]
spawn ssh user1@$IP
expect "user1"
spawn sudo passwd $USER
expect "assword:"
send "$PASS\r"
expect "assword:"
send "$PASS\r"
expect eof
exit
exit
我运行脚本:
$ expect ./expect2.txt root abc123 host1
spawn ssh user1@host1
host1 user1 : spawn sudo passwd root
Changing password for user root.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
调试
$ expect -d ./expect2.txt root abc123 host1
expect version 5.45.4
argv[0] = expect argv[1] = -d argv[2] = ./expect2.txt argv[3] = root argv[4] = abc123 argv[5] = host1
set argc 3
set argv0 "./expect2.txt"
set argv "root abc123 host1"
executing commands from command file ./expect2.txt
spawn ssh user1@host1
parent: waiting for sync byte
parent: telling child to go ahead
parent: now unsynchronized from child
spawn: returns {2669765}
expect: does "" (spawn_id exp4) match glob pattern "user1"? no
match glob pattern "user1"? yes
expect: set expect_out(0,string) "user1"
expect: set expect_out(spawn_id) "exp4"
spawn sudo passwd root
parent: waiting for sync byte
parent: telling child to go ahead
parent: now unsynchronized from child
spawn: returns {2669769}
expect: does "" (spawn_id exp7) match glob pattern "assword:"? no
Changing password for user root.
New password:
expect: does "Changing password for user root.\r\nNew password: " (spawn_id exp7) match glob pattern "assword:"? yes
expect: set expect_out(0,string) "assword:"
expect: set expect_out(spawn_id) "exp7"
expect: set expect_out(buffer) "Changing password for user root.\r\nNew password:"
send: sending "abc123\r" to { exp7 }
expect: does " " (spawn_id exp7) match glob pattern "assword:"? no
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
expect: does " \r\nBAD PASSWORD: The password is shorter than 8 characters\r\nRetype new password: " (spawn_id exp7) match glob pattern "assword:"? yes
expect: set expect_out(0,string) "assword:"
expect: set expect_out(spawn_id) "exp7"
expect: set expect_out(buffer) " \r\nBAD PASSWORD: The password is shorter than 8 characters\r\nRetype new password:"
send: sending "abc123\r" to { exp7 }
passwd: all authentication tokens updated successfully.
expect: read eof
expect: set expect_out(spawn_id) "exp7"
expect: set expect_out(buffer) " \r\npasswd: all authentication tokens updated successfully.\r\n"