小编Mig*_*l M的帖子

如何为我的 shell 脚本制作手册页?

如何为我的 shell 脚本创建手册页?
我找不到关于如何在 Google 上制作手册页的初学者方法。

基于模板制作我自己的手册页并使用我的脚本安装它的最简单方法是什么?

unix linux bash shell manpage

4
推荐指数
2
解决办法
4988
查看次数

如何在 PAM 上为普通用户和 root 设置不同的密码规则

请耐心听我说一会儿。我正在做一个设置 VM 的大学练习,但我很难理解 PAM 是什么以及实际工作原理。谷歌上出现的所有结果要么太基本,要么太复杂,我真的不知道该查什么。我的练习要求我为普通用户和 root 设置一系列规则:

要设置强密码策略,您必须遵守以下要求:

  • 您的密码长度必须至少为 10 个字符。
  • 它必须包含一个大写字母和一个数字。
  • 它不得包含超过 3 个连续的相同字符。
  • 密码不得包含用户名。
  • 以下规则不适用于 root 密码:密码必须至少包含 7 个不属于以前密码的字符。
  • 当然,你的root密码必须符合这个政策

我还没有找到任何好的网站来解释 PAM 如何以良好的方式工作,但是我发现对于普通用户我需要使用以下命令进行编辑/etc/pam.d/common-password

password        requisite          pam_pwquality.so retry=3 minlen=10 ucredit=-1 dcredit=-1 maxrepeat=3 reject_username difok=7 enforce_for_root
Run Code Online (Sandbox Code Playgroud)

虽然我不明白 PAM 是如何工作的,但我确实了解它的标志。我的问题是如何为 root 设置不同的规则?

passwords debian pam root

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

C 在内部使用哪个补码?

我查找的所有内容只是告诉我如何在 C 中进行补充运算/计算。

我想知道 C 在内部使用什么表示以及它如何处理溢出。

c twos-complement ones-complement

0
推荐指数
1
解决办法
94
查看次数

如何 write() \n 的十六进制表示?

我试图用write()十六进制表示\n没有任何成功。

我的代码ft_putstr_non_printable.c

#include <unistd.h>

void    ft_putstr_non_printable(char *str)
{
    int             i;
    unsigned char   a;
    char            c;

    i = 0;
    a = 0x0;
    while (str[i] != '\0')
    {
        if (str[i] <= 31 || str[i] == 127)
        {
            a = str[i];
            write(1, &a, 1);
        }
        else
        {
            c = str[i];
            write(1, &c, 1);
        }
        i++;
    }
}
Run Code Online (Sandbox Code Playgroud)

并且main.c

#include <stdio.h>
#include <string.h>

#include "ft_putstr_non_printable.c"

int main(void)
{
    char a[] = "\n au revoir\a";
    char b[] …
Run Code Online (Sandbox Code Playgroud)

c gcc

-1
推荐指数
1
解决办法
112
查看次数

标签 统计

c ×2

bash ×1

debian ×1

gcc ×1

linux ×1

manpage ×1

ones-complement ×1

pam ×1

passwords ×1

root ×1

shell ×1

twos-complement ×1

unix ×1