一、 关机和重启
sync # sync命令将内存数据同步写入磁盘中,以安全关机
shutdown、halt、poweroff、reboot默认均会先调用sync,除非你特别指定参数让它no-sync,一般不推荐这样做,除非需要-nf强制执行。
1.1 命令
- shutdown [选项] [时间]
选项:
-h:将系统服务停掉后就关机(halt or power off after shutdown)
-r:将系统服务停掉后就重启(reboot after shutdown)
-c:取消已经在进行的shutdown命令内容(cancel a running shutdown)
-k:只是发送警告消息不关机(only send warnings, don't shutdown)
shutdown -h now # 立即关机
# 定时关机
shutdown -h 20:30 # 系统在今天的20:30关机,若在21:00执行此命令,则隔天才关机
shutdown -h 20:30 & # &表示后台运行,ctrl+c无法结束,shutdown -c才可以取消
shutdown -h +10 # 系统再过10分钟后自动关机
shutdown -r now # 立刻重启
shutdown -r +30 ‘the system will reboot after 30 mins’ # 再过30分钟系统会重启,并显示后面的消息给所有在线的用户
shutdown -k now 'the system will reboot at 20:00' # 仅发警告消息给所有用户,系统并不会关机
shutdown -c # 取消已经在进行的shutdown命令
- 其他关机方法
halt、poweroff、reboot都可以通过指定参数实现关机和重启,这样混合用也不推荐,记住常用功能就行了。用的时候再通过halt --help查看具体参数用法就好。
halt # 只关闭系统,不切断电源
halt -p # 关闭系统并关闭电源
halt -d # 关闭系统,但不留下记录
halt --reboot # 重启机器
reboot # 重启机器
reboot --halt # 停止机器
reboot -p # 关闭机器
poweroff # 关闭系统后,切断电源。
poweroff --halt # 停止机器
poweroff --reboot # 重启机器
init 0:系统级别切换等级0,即关机。
1.2 init进程
- Linux下的三个特殊进程:
(1)idle进程(PID=0),由系统自动创建,运行在内核态,是唯一一个没有通过fork或者kernel_thread产生的进程。
(2)init进程(PID=1),由idle通过kernel_thread创建,在内核空间完成初始化后,加载init程序,Linux中的所有进程都是由init进程创建并运行的。
(3)kthreadd(PID=2),由idle通过kernel_thread创建,并始终运行在内核空间,负责所有内核进程的调度和管理。 - 等级划分
0: 关机或停机(不允许设为默认),init 0
1: 单用户模式(只root用户进行维护)
2: 不完全多用户模式,不能使用NFS(Net File System)
3: 完全多用户模式(常用的字符界面)
4: 未分配
5: 图形界面
6: 重启(不允许设为默认),init 6 - 等级切换
sudo init 5 # 切换到图形界面
sudo init 6 # 重启系统
# 查看系统运行级别
runlevel # 显示结果:N 5
# 修改默认运行级别:cat /etc/inittab
id:5:initdefault: # 修改这一行的数值
- 退出登录logout
字符界面才可以使用该命令,图形界面没有此命令
# ssh root@192.168.0.106
$ logout # Connection to 192.168.0.106 closed.
# init 3
$ logout
二、 用户和用户组
2.1 用户和用户组信息
- A、/etc/group 存储当前系统中所有用户组信息
- vi /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
hadoop:x:501:hdfs,mapred,yarn
- 格式及含义:
group:x:123:abc,xyz
组名称:组密码占位符:组编号:组中用户名列表
组编号0-499为系统服务分配,root为0
- B、/etc/gshadow 存储当前系统中所有用户组的密码信息
- vi /etc/gshadow
root:::
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
adm:::adm,daemon
hadoop:!::hdfs,mapred,yarn
- 格式及含义:
group:*: :abc,xyz
组名称:组密码:组管理者:组中用户名列表
可能很多为空,默认则组内用户均为管理者,无密码
- C、/etc/passwd 存储当前系统中所有用户的信息
格式及含义:
user:x:123:456:xxxxxx:/home/user:/bin/bash
用户名:密码占位符:用户编号:用户组编号:用户注释信息:用户主目录:shell类型
如:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
hadoop:x:501:501::/home/hadoop:/bin/bash
- D、/etc/shadow 存储当前系统中所有用户密码信息
- vi /etc/shadow
root:$1$puUB8Y.1$5nURxhc.1a9JhdfZwgvKB0:15970:0:99999:7:::
bin:*:15628:0:99999:7:::
daemon:*:15628:0:99999:7:::
adm:*:15628:0:99999:7:::
hadoop:$1$LMKs18J6$eKUYHmofeUX1J61210sQK/:15970:0:99999:7:::
- 格式及含义:
user:xxxxxx:15970:0:99999:7:::
用户名:MD5密码字符串:上次修改密码的日期:密码不可被变更的天数:密码需要被重新变更的天数(99999表示不需要变更) :密码变更前提前几天警告:帐号失效日期:帐号取消日期:保留条目(目前没用) - shadow文件
shadow文件为可读文件,普通用户没有读写权限,超级用户拥有读写权限。
如果密码字符串为*,则表示系统用户不能被登入;
如果字符串为!,则表示用户名被禁用;
如果字符串为空,则表示没有密码。 - shadow文件的密码部分由三个部分组成,由
$
分割。
以本文root用户的密码$1$puUB8Y.1$5nURxhc.1a9JhdfZwgvKB0
为例,按照$
分割:
加密方式:1
salt值:puUB8Y.1
加密后的密码串:5nURxhc.1a9JhdfZwgvKB0
加密方式,目前加密方式有6种,最常见有3种:
1:MD5加密,密文长度22
5:SHA-256加密,密文长度43
6:SHA-512加密,密文长度86
root用户md5密码解密结果,千万别想去干坏事哦~