我正在寻找一种简单的方法来锁定我在 Xfce(Debian Unstable)中的会话。我不想在每次醒来时都写我的密码,但我希望能够按下要求识别的快捷方式(启动命令行)。
用法是在我离开办公室吃午饭时锁定我的笔记本电脑。我想在关闭屏幕之前按此快捷方式(从而使笔记本电脑暂停)。如果有人试图唤醒它,他将不得不输入密码。
我需要确保一个进程一次只在一个实例中执行。在 Windows 上,您可以使用命名互斥锁。但我不知道在 Linux 上使用什么。
我想我已经看到一种方法是应用程序创建一个独占文件,但我再也找不到它了。您是否使用常规文件功能,忙循环?
5 次登录失败后如何锁定用户?
我收集了一些发行版/版本来说明如何去做,但我无法对其进行测试。
RHEL4:通过添加:
auth required /lib/security/$ISA/pam_tally.so no_magic_root
account required /lib/security/$ISA/pam_tally.so deny=5 reset no_magic_root
Run Code Online (Sandbox Code Playgroud)
到:
/etc/pam.d/system-auth
/etc/pam.d/login
/etc/pam.d/sshd
Run Code Online (Sandbox Code Playgroud)
RHEL4:???
SLES9:通过添加:
auth required pam_tally.so no_magic_root
account required pam_tally.so deny=5 reset no_magic_root
Run Code Online (Sandbox Code Playgroud)
到:
/etc/pam.d/login
/etc/pam.d/sshd
Run Code Online (Sandbox Code Playgroud)
SLES11 或 SLES10:通过添加:
auth required pam_tally.so deny=5 onerr=fail per_user no_lock_time
Run Code Online (Sandbox Code Playgroud)
到:
/etc/pam.d/common-auth
Run Code Online (Sandbox Code Playgroud)
并通过添加:
account required pam_tally.so
Run Code Online (Sandbox Code Playgroud)
到:
/etc/pam.d/common-account
Run Code Online (Sandbox Code Playgroud)
问题:有人可以确认这是在 5 次登录尝试失败后锁定用户的有效/好方法吗?或者怎么做?
附:
/sbin/pam_tally --user USERNAME --reset
Run Code Online (Sandbox Code Playgroud)
在做这件事之前做这件事有用吗?我可以用这些来锁定 root 用户吗?编辑 PAM 是一件非常敏感的事情,因为人们可以将自己锁定在服务器之外(我的意思是例如:root 用户)。这样做时有什么提示吗?
flock -x -w 5 ~/counter.txt 'COUNTER=$(cat ~/counter.txt); echo $((COUNTER + 1)) > ~/counter.txt'
Run Code Online (Sandbox Code Playgroud)
我如何将多个命令传递给flock上面的示例?
据我了解,flock采用不同的标志(-x 表示独占,-w 表示超时),然后是要锁定的文件,然后是要运行的命令。我不确定如何将两个命令传递给这个函数(用锁定文件的内容设置变量,然后增加这个文件)。
我的目标是通过在每次脚本尝试访问counter.txt文件时锁定文件来为文件创建一个有点原子的增量。
我见过的“标准”锁定片段类似于......
(
flock -n 200 || exit 1;
# do stuff
) 200>program.lock
Run Code Online (Sandbox Code Playgroud)
那时使用是否安全(测试似乎是这样说的)exec?子进程会保留锁吗?
(
flock -n 200 || exit 1;
exec /usr/bin/python vendors-notcoolstuff.py
) 200>program.lock
Run Code Online (Sandbox Code Playgroud)
我依稀记得 exec 的进程保留打开的文件描述符,并且由于 flock 使用文件描述符,它应该可以工作。但我找不到任何文件来明确和清楚地说明这一点。
作为记录,这是特定于 Linux 的。
我想要一个用作计数器的文件。用户 A 将写入并增加此数字,而用户 B 请求读取文件。是否有可能用户 A 可以锁定此文件,以便在用户 A 的写入完成之前没有人可以读取或写入它?
我已经调查过,flock但似乎无法按我的预期工作。
flock -x -w 5 /dev/shm/counter.txt echo "4" > /dev/shm/counter.txt && sleep 5
Run Code Online (Sandbox Code Playgroud)
如果有更合适的方法来获取这个类似原子的递增文件,那也很高兴听到!
我的目标是:
LOCK counter.txt; write to counter.txt;
Run Code Online (Sandbox Code Playgroud)
同时
Read counter.txt; realize it's locked so wait until that lock is finished.
Run Code Online (Sandbox Code Playgroud) dpkg/var/lib/dpkg/lock在使用时使用锁定文件 ( )。
我有一个从 shell 生成的进程。它作为后台进程运行,并将数据库导出到 .csv 文件中的 CSV 文件/tmp。
如何判断后台进程何时完成(完成/退出)或 CSV 文件锁是否已关闭?我计划在文件写入后将文件通过 FTP 传输到另一台主机,但在开始文件传输之前我需要完整的文件。
如果你apt-get在终端上运行命令并想在软件中心安装东西,中心说它会等到apt-get完成。我想知道是否可以在终端上做同样的事情,即apt-get在终端上等待直到锁定被释放。
我找到了这个链接,aptdcon用于安装东西。我想知道是否:
apt-get吗?aptdcon兼容的apt-get,也就是说,我可以同时使用安装的东西,而borking系统?