rootpw密码生成方法/c-exit

linux kickstart文件里rootpw密码可以使用明文,也可以使用加密过的值,这里主要介绍下三种加密方法:md5、sha256、sha512

使用明文的方法

rootpw "password"

使用加密的方法

rootpw --iscrypted password_hash

authconfig --enableshadow --enablemd5 (--passalgo=sha256 or --passalgo=sha512)

二、加密生成方法,这里统一用password来加密

1、md5加密

使用openssl passwd命令:

# openssl passwd -1 "password"

$1$uMOl6YMI$7AAO8YG7l37ipRXCmmame.

使用grub-crypt命令,会提示输出密码:

# grub-crypt --md5

Password:

Retype password:

$1$Y9TR8PpY$qm1VzsjKzbXtYInyAQLG70

使用python,同样也会提示输出密码:

# echo ‘import crypt,getpass; print crypt.crypt(getpass.getpass(), "$1$8_CHARACTER_SALT_HERE")‘ | python -

Password:

$1$8_CHARAC$GVWpvO3Hu009C37IYF41L0

2、sha256加密

使用grub-crypt命令,会提示输出密码:

# grub-crypt --sha-256

Password:

Retype password:

$5$NSEqzlxQFNE998rG$gDTEQsndo1pQ9/2.bj1knNNqQ0tQgzKH4bdzEjinHKC

使用python,提示输入密码:

# echo ‘import crypt,getpass; print crypt.crypt(getpass.getpass(), "$5$16_CHARACTER_SALT_HERE")‘ | python -

$5$16_CHARACTER_SAL$sc08xCjatZRZPSxgCvHe2.RN7ocYGCrJZo6JzcOMtk5

3、sha512加密

使用grub-crypt命令,会提示输出密码:

# grub-crypt --sha-512

Password:

Retype password:

$6$twuCoL0kTI5ScTbr$GyUJymp1wU0ouFQFiWXoOfl2i.2G5E5wh3tqdprny4avv9kJWc3MdLR/GB9YbfKB1Kx9no9wpO8YcX4d28Mrz.

使用python,提示输入密码:

# echo ‘import crypt,getpass; print crypt.crypt(getpass.getpass(), "$6$16_CHARACTER_SALT_HERE")‘ | python -

$6$16_CHARACTER_SAL$ykxE75iUZiphsLz40.oQAi7QIM4meq41EYYvQ66JkbODcvIrGIeRxF7dzpfvnk20ztzE3GY359DSSNQuPQdun.

  

rootpw密码可以使用明文,也可以使用加密过的值(密码为:IPPBXADMINROOT)

注意:在这里要使用加密过的值,否则安全性就太低了

rootpw --iscrypted $1$IPPBXADM$qlbCgDSCK/a.1ZzfEk/mT.

linux系统的密码shadow一样,生成方法如下:

perl -e ‘print crypt("IPPBXADMINROOT",q($1$IPPBXADM)),"\n"‘

当使用特殊字符时,例如@$符时需要在前面加上\,例:\@\$,否则加密字符串会错误;

其中IPPBXADMINROOT为要给用户设置的密码,11IPPBXADM字符串是自定义字符串,shadow里一般用11后面跟8个字符这种格式。

生成的密码串样式如下:

 $1$IPPBXADM$qlbCgDSCK/a.1ZzfEk/mT.

中间有个$,前面算salt,后面的加密值,合在一起叫hash

crypt 本身默认用des算法

如果salt以11开头就使用md5算法

des算法命令如下:

perl -e ‘print crypt("IPPBXADMINROOT","/g"),"\n"‘

生成的密码串样式如下:

/g5fpEc81O2B2

exit(0):正常运行程序并退出程序;
exit(1):非正常运行导致退出程序;
return():返回函数,若在主函数中,则会退出函数并返回一值。
详细说:
1. return返回函数值,是关键字;  exit 是一个函数。
  2. return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。
  3. return是函数的退出(返回);exit是进程的退出。
  4. return是C语言提供的,exit是操作系统提供的(或者函数库中给出的)。
  5. return用于结束一个函数的执行,将函数的执行信息传出个其他调用函数使用;exit函数是退出应用程序,删除进程使用的内存空间,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息,这个信息和机器和操作系统有关,一般是 0 为正常退出, 非0 为非正常退出。
  6. 非主函数中调用return和exit效果很明显,但是在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的。
函数名: exit()
所在头文件:stdlib.h(如果是”VC6.0“的话头文件为:windows.h)
功 能: 关闭所有文件,终止正在执行的进程。
exit(1)表示异常退出.这个1是返回给操作系统的。
exit(x)(x不为0)都表示异常退出
exit(0)表示正常退出
exit()的参数会被传递给一些操作系统,包括UNIX,Linux,和MS DOS,以供其他程序使用。
stdlib.h: void exit(int status);

exit():

在调用时,会做大部分清理工作,但是决不会销毁局部对象,因为没有stack unwinding。

会进行的清理工作包括:销毁所有static和global对象,清空所有缓冲区,关闭所有I/O通道。终止前会调用经由atexit()登录的函数,atexit如果抛出异常,则调用terminate()。

abort():

调用时,不进行任何清理工作。直接终止程序。

retrun:

调用时,进行stack unwinding,调用局部对象析构函数,清理局部对象。如果在main中,则之后再交由系统调用exit()。

return返回,可析构
main或函数中的局部变量,尤其要注意局部对象,如不析构可能造成
内存泄露。exit返回不析构main或函数中的局部变量,但执行收工函数,
故可析构全局变量(对象)。abort不析构main或函数中的局部变量,也不
执行收工函数,故全局和局部对象都不析构。
    所以,用return更能避免内存泄露,在C++中用abort和exit都不是好习惯.

Linux下产生随机密码10方法

有特殊符号的:

cat /dev/urandom | tr -dc "a-zA-Z0-9_+\~\!\@\#\$\%\^\&\*"| fold -w 16 |head -n 16

无特殊符号的:

#1

date +%s | sha256sum | base64 | head -c 32 ; echo

上述命令使用SHA来哈希日期,输出头32个字节。

#2

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;

上述命令使用内嵌的/dev/urandom,只输出字符,结果取头32个。

#3

openssl rand -base64 32

上述命令使用系统自带的openssl的随机特点来产生随机密码

#4

tr -cd ‘[:alnum:]‘ < /dev/urandom | fold -w30 | head -n1

#5

strings /dev/urandom | grep -o ‘[[:alnum:]]’ | head -n 30 | tr -d ‘\n’; echo

通过过滤字符命令,输出随机密码

#6

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6

这个命令比起来比较简单了

#7

dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev

上述命令使用命令dd的强大功能

#8

 </dev/urandom  tr -dc ’[email protected]#$%qwertQWERTasdfgASDFGzxcvbZXCVB’ | head -c8; echo “”

上述命令输出很简洁

#9

randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}

使用randpw随时产生随机密码,可以把它放到~/.bashrc文件里面。

(我这里没有什么密码产生,可留言讨论)

#10

date | md5sum

如果只用这一个,足够了,因为它太简洁了,:-)

用户、权力下放、非登录状态root用户密码修改

1.用户理解 
用户就是系统使用者的身份,用户以数据身份存在。在系统中用户存储为若干窜字符+若干个系统配置文件。 
用户信息涉及到的系统配置文件: 
(1)/etc/passwd ###用户信息 
用户:密码:uid:gid:说明:家目录:用户使用的shell 
,在shell窗口输入 cat /etc/passwd即可查出用户的信息

(2)/etc/shadow ###用户认证信息 
用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日 
,输入cat /etc/shadow即可查出用户认证信息。

(3)/etc/group ###组信息 
组名称:组密码:组id:附加组成员 
输入cat /etc/group即可查出组信息。

(4)/etc/gshadow ###组认证信息 
如下图所示,输入cat /etc/gshadow即可查出组认证信息。 
(5)/home/username ###用户家目录 
(6)/etc/skel/.* ###用户骨架文件 
如下图所示,输入cat /etc/skel/.*即可查出用户骨架文件。 
注意:/etc/skel/这个目录中的所有文件或目录

2.用户管理 
(1)用户建立

useradd   参数     用户名字
          -u      ##指定用户uid

如下图所示,建立一个用户,并指定uid为888。

    -g  ##指定用户初始组信息,这个组必须已经存在

,建立一个用户,并指定初始组为linux。

    -G  ##指定附加组,这个组必须存在

如下图所示,建立一个用户,并指定附加组的id为21。

-c ##用户说明 
新建用户,用户说明为westos user。

-d ##用户家目录 
建立一个用户,并指定家目录为/mnt/westos

-s ##用户所使用的shell,/etc/shells记录了用户能使用shell的名字 
如下图所示,建立一个用户,并指定用户能使用的shell名字为/bin/tcsh。

##用户和组的id须一致,否则提示组不存在。 
## 用户名不要为数字。数字的id与bin相同,用户名为数字时用户id的显示为bin。

useradd -s  /sbin/nologin    westos  ##新建用户westos,并禁止该用户交互登陆

如图所式,新建用户westos,然后切换到用户westos,系统提示该用户不可用

shell类型查询:cat /etc/shells

(2)用户删除

userdel  -r 用户名称   ##-r表示删除用户信息及用户的系统配置

如下图所示删除用户必须加上参数-r,否则会留下用户的系统配置。

(3)组的建立

groupadd    -g    ##建立组
groupdel    组名字 ##删除组
组的存在意义是共享权限,组分为初始组(1个)和附加组(多个)。
  • 作以上实验的监控命令:

watch -n 1 ‘tail -n 3 /etc/passwd /etc/group;echo ====;ls -l /home;echo ===;ls -l /mnt’

(4)用户id信息查看

id  参数  用户
    -u   ##用户uid
    -g   ##用户初始组id
    -G   ##用户所有所在组id
    -n   ##显示名称而不是id数字
    -a   ##显示所有信息
  • 如下图所示,id -a westos即可显示该用户的所有信息;加上参数-u、-g、 -G分别可查询用户的uid、初始组id、所有所在组id

(5)用户信息更改

usermod 参数  用户
    -l  ##更改用户名称
    -u  ##更改uid
    -g  ##更改gid
    -G  ##更改附加组
    -aG ##添加附加组
    -c  ##更改说明
    -d  ##更改家目录指定
    -md ##更改家目录指定及家目录名称
    -s  ##更改shell
    -L  ##冻结帐号
    -U  ##解锁
  • 注意:(1)passwd -l 用户 ##冻结帐号,使用usermod -u 用户解锁需要使用该命令两次。而passwd -u 用户执行一次就可以解锁。如下图所示

(2) passwd -u 用户 ##解锁 
usermod命令及参数使勇如下图所示。

3.用户权力下放 
(1)在系统中超级用户可以下放普通用户不能执行的操作给普通用户 
下放权力配置文件:/etc/sudoers

(2)下放权力的方法 
*)超级用户执行visudo进入编辑/etc/sudoers模式 
*)格式:

获得权限用户  主机名称=(获得到的用户身份) 命令
test    desktop0.example.com=(root) /usr/sbin/useradd
test用户能在desktop0.example.com以超级用户身份执行/usr/sbin/useradd
  • root用户执行visudo进入到/etc/sudoers文件,开始进行下放权力操作,添加内容如下图中的第100及101行。

(3)执行下放权限命令 
sudo 命令 ##如果第一次执行sudo需要输入当前用户密码 
在/etc/sudoers中如果设置如下:

test  desktop0.example.com=(root)  NOPASSWD: /usr/sbin/useradd

表示用户调用sudo命令的时候不需要自己密码

当我们编辑结束保存文件后,即可使用下放的权力,如下图所示。

4.用户认证信息的控制

chage   参数  用户
    -d  ##用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码
    -m  ##最短有效期
    -M  ##最长有效期
    -W  ##警告期
    -I  ##用户非活跃天数
    -E  ##帐号到期日格式 -E "YYYY-MM-DD"
  • chage命令及参数的使用如下图所示。

当使用-m参数将最短有效期修改为1(表示需要在一天之后才能修改密码),立即修改密码就会得到如下提示,表示需要等一段时间才能改密码。

5.root密码忘记 
操作程序如下: 
1.重新启动系统 
2.在系统启动阶段按上下健停止系统系统引导 
3.选择启动引导标题,按“E”进行编辑

按E进入如下图所示界面。

4.找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项

修改后的结果如下图所示。 
 
5.ctrl+x启动设定过后的系统引导条目 
6.进入系统后执行chroot /sysroot切换到真实的系统环境 
7.passwd root修改超级用户密码 
8.建立文件/.autorelabel让系统从新扫描所有文件(touch /.autorelabel) 
9.exit两次使系统自动重新启动 
第6-9步的操作如下图所示。

原文地址:https://www.cnblogs.com/klb561/p/9261032.html

时间: 2024-11-26 05:18:59

rootpw密码生成方法/c-exit的相关文章

UCenter密码算法规则和生成方法

如果想平滑的使用UCenter,那么这篇文章务必 康盛的系列产品,包括Discuz.UCHome.Supesite都集成了同一个用户系统--UCenter,用户登录的密码也保存在 UCenter中,对于其他系统集成或导出数据到UCenter系统,通常会遇到密码生成的问题,这里就讨论一下UCenter的用户密码算法规则和生成 方法. 密码通常使用MD5对用户密码HASH 后保存在数据库中的方法,如果黑客拿到了这个HASH数值,那么可以采用字典的方式暴力破解,如果这个字典数据库足够大,并且字典比较符

pxe网络装机kickstart的密码生成

关于ks文件MD5加密方式 linux kickstart之中root的密码可以使用明文,也可以使用加密过的值rootpw –iscrypted $1$BYSimLw0$I515yLiKzudlwkIskBqQE1 就是读取加密后的值,但是这个值是怎么生成的呢?这与linux系统的密码shadow一样,生成方法如下:perl -e 'print crypt("123456",q($1$BYSimLw0)),"\n"'## 其中123456为要给用户设置的密码,$1$

射频识别技术漫谈(19)——Desfire的3次握手认证和段密码生成

3次握手认证并生成临时的通讯密钥在通讯技术中的应用非常普遍,Mifare Desfire也使用了这种成熟的认证加密方法.Desfire在卡片数据传输前使用DES或3DES进行3次握手认证,认证成功一方面表明卡片和读写器双方是可以相互信任的,同时为双方之后的数据传送提供了一组临时使用的段密码进行加密保护. DES/3DES的基本运算包括加密和解密,Desfir卡片规定,当读写器(PCD)与卡片(PICC)进行DES/3DES运算时,卡片总是进行加密运算,与之对应,读写器总是进行解密运算.DES密钥

mysql数据库3600万测试数据生成方法及优化测试

为公司项目优化调整,需要大容量数据表做测试,测试过程发现了很多有趣的东西,这里一并发出来. 本次测试为myISAM表的大容量数据查询优化所做的测试数据,在测试过程中使用了merge分表,每张表1800万数据,对程序来说,分表操作被包装起来,程序操作如同是同一张表,测试结果较为满意,各位看官可以使用本方法的命令行运行来生成测试数据,也可以借鉴merge分表来拆分大容量数据. 测试数据表准备 CREATE TABLE `time_1` ( `id` bigint(20) NOT NULL AUTO_

MySQL修改root账号密码的方法

MySQL修改root账号密码的方法 MySQL数据库中如何修改root用户的密码呢?下面总结了修改root用户密码的一些方法 1: 使用set password语句修改 mysql> select user();+----------------+| user() |+----------------+| root@localhost |+----------------+1 row in set (0.08 sec) mysql> set password=password('123456

Linux root找回密码的方法

一.找回root密码: 1.  开机出现 Booting Red Hat Enterprise Linux Client (-) in 3 seconds - 按任意键进入 menu菜单: 2.  选择当前引导项,如 Red Hat Enterprise Linux Client (2.6.18-194.e15) 按 "e"进入编 辑界面:(可设置密码保护办法:参考"Linux root 密码Grup保护") 3.  该编辑界面有三行选项,选中 kernel 开头的

二维码后台生成方法

二维码后台生成方法1.下载包:http://mvnrepository.com/artifact/com.google.zxing/core/3.1.0core-3.1.0.jarlog4j-1.2.14.jar或者在pom.xml增加:        <!-- log4j -->        <dependency>            <groupId>log4j</groupId>            <artifactId>log4

【安全牛学习笔记】思路、身份认证方法、密码破解方法、字典

思路 目标系统实施了强安全措施 - 安装了所有补丁 - 无任何已知漏洞 - 无应用层漏洞 - 攻击面最小化 社会工程学 获取目标系统用户身份 - 非授权用户不守信,认证用户可以访问守信资源 - 已有用户账号权限受限,需要提权 - 不会触发系统报警 身份认证方法 证明你是声称你是的那个人 - 你知道什么(账号密码.pin.passphrase) - 你有什么(令牌.token.key.证书.密保.手机) - 你是谁(指纹.视网膜.虹膜.掌纹.声纹.面部识别) - 以上方法结合适用(多因素身份认证)

Centos 7忘记root密码解决方法:重置root密码

平日里让运维头疼的事情已经很多了,如果一不小心把一台Linux测试机的root密码忘记了并不用慌,只需简单几步就可以完成密码的重置工作.Centos7跟以前的发行版本变化很大,因此重置root密码的方法也有所区别.重启系统出现引导界面时,按下e键进入内核编辑界面在linux16这一行的最后面追加"rd.break"参数,然后按下Ctrl+X组合键来运行修改过的内核程序大约等个几秒钟后,进入到系统的紧急救援模式此时/sysroot文件系统为只读模式,需要重新挂载/sysroot为可写模式