直接指针间接指针ext4格式
硬链接特点不能跨分区
[mage@centos7 data]$ln /root/f3 /data/f3.lnk
ln: failed to create hard link ‘/data/f3.lnk’ => ‘/root/f3’: Invalid cross-device link
硬链接本质是一个文件多个名称,夸分区则文件不同
不能针对目录
[mage@centos7 data]$ln /data /data/link
ln: ‘/data’: hard link not allowed for directory
会增长链接数
[root@centos7 data]# ln hosts host1
[root@centos7 data]# ll
total 4
-rw-r--r--. 2 root root 0 Mar 8 14:54 host1
-rw-r--r--. 2 root root 0 Mar 8 14:54 hosts
软连接本质 类似快捷方式 ln -s filename linkname
源文件链接数不增长 和源文件不是同一个文件 软连接是指向原始文件路径 软连接只关心文件名
[root@centos7 data]#ln -s host1 hhhaa
ln: failed to create symbolic link ‘hhhaa’: File exists
[root@centos7 data]#ll -i
total 4
120 lrwxrwxrwx. 1 root root 5 Mar 11 19:08 hhhaa -> host1
67 -rw-r--r--. 2 root root 0 Mar 8 14:54 host1
软连接对原始文件有依赖性, 如果删除原始文件在建同名字则原始文件被毁同名文件为新内容文件
[root@centos7 data]#\rm -f host1
[root@centos7 data]#echo 11111 > host1
[root@centos7 data]#cat hhhaa
11111
支持跨分区
支持对目录创建软连接
ln相对路径相对于 软连接本身的路径 就是软连接目录本身相对文件路径
ln -s
连接路径的字符就是软连接文件大小
软连接针对网络资源,可以跨主机
rm 本质删除文件的inode 和文件名 链接数递减,从而释放的inode号可以被重用
rm -rf dir1.link 看看源文件有没有动
【A】----依赖---->【B】----依赖---->【C】
我们的终极目的是要解决问题A,
那么三个问题的处理顺序如下:
开始处理问题A;
由于A依赖B,因此开始处理问题B;
由于B依赖C,开始处理问题C;
结束处理问题C;
结束处理问题B;
结束处理问题A。
rm -rf 删除 rm -rf dir1.link/ 如果加/则破坏软连接里的原始文件数据, 并不破坏软连接和源文件目录 软连接是链接路径 删除 dir1.link/下文件 cd 123.link/
[root@centos7 123.link]#ll
total 0
-rw-r--r--. 1 root mage 0 Mar 11 10:32 1
-rw-r--r--. 1 root mage 0 Mar 11 10:32 2
linux对后缀并不关注 用file看文件头部 magic namber 头部 [root@centos7 data]#file /usr/share/pixmaps/faces/legacy/fish.jpg /usr/share/pixmaps/faces/legacy/fish.jpg: JPEG image data, JFIF standard 1.01
locate fish.jpg [root@centos7 data]#locate fish.jpg /usr/share/pixmaps/faces/fish.jpg /usr/share/pixmaps/faces/legacy/fish.jpg
file -b 不显示文件名
[root@centos7 data]#file -b /usr/share/pixmaps/faces/legacy/fish.jpg JPEG image data, JFIF standard 1.01
file -f 批量查看文件
[root@centos7 data]#cat file.txt
/data/hhhaa
/data/host1
/data/wanghome
[root@centos7 data]#file -f file.txt
/data/hhhaa: symbolic link to `host1'
/data/host1: ASCII text
/data/wanghome: directory
file -L 查看文件原本属性而不是软连接属性
[root@centos7 data]#file -Lf file.txt
/data/hhhaa: ASCII text
/data/host1: ASCII text
/data/wanghome: directory
centos7 上软连接用的非常多 ,去判断系统状态
echo "$1"
echo "$2"
echo "$3"
echo basename $0
[root@centos7 bin]#f1link.sh 1 2 3
1
2
3
f1link.sh
标准输出与管道
fd 文件描述符 文件打开就会分配数字 file descriptor
tail -f /var/log/messages
[root@centos7 ~]#tail -f /var/log/messages
Mar 11 19:27:03 centos7 dbus[6258]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service'
Mar 11 19:27:03 centos7 dbus[6258]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
cd /proc 里头的进程编号
pidof tail 看进程编号
[root@centos7 proc]#pidof tail
39126
[root@centos7 39126]#echo $$
31382
├─sshd(10651)─┬─sshd(31378)───bash(31382)───pstree(39171)
│ └─sshd(39064)───bash(39068)───tail(39126)
[root@centos7 proc]#pidof tail
39126
cd pidof tail
进程编号
hexdump -C
ll fd 看tail 文件描述符
[root@centos7 39126]#cd fd
[root@centos7 fd]#ll
total 0
lrwx------. 1 root root 64 Mar 11 19:39 0 -> /dev/pts/2
lrwx------. 1 root root 64 Mar 11 19:39 1 -> /dev/pts/2
lrwx------. 1 root root 64 Mar 11 19:39 2 -> /dev/pts/2
lr-x------. 1 root root 64 Mar 11 19:39 3 -> /var/log/messages
lr-x------. 1 root root 64 Mar 11 19:39 4 -> anon_inode:inotify
ll /proc/$$/fd 看就当前进程文件描述符
[root@centos7 fd]#ll /proc/$$ -d dr-xr-xr-x. 9 root root 0 Mar 11 08:51 /proc/31382
只要文件打开就会生成文件描述符,nano本身并没有编译这个文件
[root@centos7 fd]#ll /proc/`pidof nano`/fd
total 0
lrwx------. 1 root root 64 Mar 11 19:44 0 -> /dev/pts/2
lrwx------. 1 root root 64 Mar 11 19:44 1 -> /dev/pts/2
lrwx------. 1 root root 64 Mar 11 19:44 2 -> /dev/pts/2
vim变向产生临时文件
[root@centos7 fd]#ll /proc/`pidof vim `/fd
total 0
lrwx------. 1 root root 64 Mar 11 19:46 0 -> /dev/pts/2
lrwx------. 1 root root 64 Mar 11 19:46 1 -> /dev/pts/2
lrwx------. 1 root root 64 Mar 11 19:46 2 -> /dev/pts/2
lrwx------. 1 root root 64 Mar 11 19:46 4 -> /root/.f1.swo
标准输入 0 键盘默认标准输入设备 STDIN <
标准输入重定向要跟文件
< 而且输出重定向最先执行 也是从顺序右向左
[root@centos7 ~]#cat file.txt out.txt
11
11
22
33
aaabbbccc
[root@centos7 ~]#cat <file.txt < out.txt
aaabbbccc
[root@centos7 ~]#cat > file.txt < out.txt
[root@centos7 ~]#cat file.txt
aaabbbccc
[root@centos7 ~]#vim file.txt
[root@centos7 ~]# file.txt > out.txt
bash: file.txt: command not found.
[root@centos7 ~]#cat < file.txt > out.txt
[root@centos7 ~]#cat out.txt
1123345
标准输入 1 终端窗口默认标准输出设备STDOUT 1>
标准错误 2 终端窗口默认标准错误设备 STDDERL 2>
[root@centos7 data]#ll aa host1
ls: cannot access aa: No such file or directory
-rw-r--r--. 1 root root 6 Mar 11 19:11 host1
[root@centos7 data]#ll aa host1 > f1
ls: cannot access aa: No such file or directory
[root@centos7 data]#ll aa host1 2> f1
-rw-r--r--. 1 root root 6 Mar 11 19:11 host1
[root@centos7 data]#ll aa host1 2> f1 1>&2 ;cat f1
ls: cannot access aa: No such file or directory
-rw-r--r--. 1 root root 6 Mar 11 19:11 host1
[root@centos7 data]#ll aa host1 2> f1 2>&1
ls: cannot access aa: No such file or directory
-rw-r--r--. 1 root root 6 Mar 11 19:11 host1
[root@centos7 data]#cat f1
f1为空
[root@centos7 data]#ll aa host1 > f1 2>&1
[root@centos7 data]#cat f1
ls: cannot access aa: No such file or directory
-rw-r--r--. 1 root root 6 Mar 11 19:11 host1
[root@centos7 data]#ll aa host1 2>&1 >f1
ls: cannot access aa: No such file or directory
[root@centos7 data]#cat f1
-rw-r--r--. 1 root root 6 Mar 11 19:11 host1
-rw-r--r--. 1 root root 6 Mar 11 19:11 host1
[root@centos7 data]#ll aa host1 1>&2 2>f1
-rw-r--r--. 1 root root 6 Mar 11 19:11 host1
[root@centos7 data]#cat f1
ls: cannot access aa: No such file or directory
[root@centos7 data]#ll aa host1 1>&2 >f1
ls: cannot access aa: No such file or directory
[root@centos7 data]#cat f1
-rw-r--r--. 1 root root 6 Mar 11 19:11 host1
在1>&2 >f1 1>&2 2>f1 2>&1 >f1
f1 2>&1 2> f1 1>&2 2> f1 2>&1 命令是按先从右向左顺序执行
文件可以做标准输入 ,改变默认位置就是重定向,改变方向
[root@centos7 ~]#cat file.txt out.txt
11
11
22
33
aaabbbccc
[root@centos7 ~]#tty
/dev/pts/2
[root@centos7 data]# w > /dev/pts/2
w > /dev/pts/1 把w输出到另一个窗口
[root@centos7 ~]# 20:10:11 up 1 day, 11:47, 4 users, load average: 0.01, 0.02, 0.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 :0 Sat09 ?xdm? 2:40m 0.78s /usr/libexec/gnome-session-binary --s
root pts/0 :0 08:50 11:19m 0.07s 0.07s bash
root pts/1 172.22.150.233 08:51 3.00s 1.30s 0.03s w
root pts/2 172.22.150.233 19:32 35.00s 0.13s 0.13s -bash
hostname > systeminfo.txt
w > systeminfo.txt
重定向会丢失以前文件 > systeminfo.txt 不加任何 会清空文件意思就是无输出文件
有些shell/bin/csh不支持 >f1清空
[root@centos7 /data]# > f1
Invalid null command.
passwd wang >/dev/null 标准输出进/dev/null
[root@centos7 /data]# echo "111" >/dev/null
不支持
/dev/null 不希望看到屏幕上的
cat /dev/null > list.txt
[root@centos7 /data]# cat /dev/null > list.txt
[root@centos7 /data]# list.txt
list.txt: Command not found.
[root@centos7 /data]# cat list.txt
[root@centos7 /data]# 为空
bin/csh 有些shell不支持>list.txt 清除文件 用上边的方法
追加
两个大于号创建空文件更安全 [root@centos7 /data]# echo "111" >> list.txt [root@centos7 /data]# cat list.txt 111 111
[root@centos7 /data]# echo "111" > list.txt
[root@centos7 /data]# cat
cat catchsegv catman
[root@centos7 /data]# cat list.txt
111
[root@centos7 /data]# set -C
set: Variable name must begin with a letter.
/bin/bash set -C 不能覆盖 可以追加 注意+C -C须连着不加空格 set +C 可以覆盖 可以追加
[root@centos7 data]#set -C
[root@centos7 data]#ls
f1 file.txt hhhaa host1 hosts list.txt rm wanghome
[root@centos7 data]#echo 111 > f1
-bash: f1: cannot overwrite existing file
>| 强制覆盖
[root@centos7 data]#echo 111 > f1
-bash: f1: cannot overwrite existing file
[root@centos7 data]#echo 111 >| f1
[root@centos7 data]#cat f1
111
隐藏1> >默认是1>
2>标准错误 2>&1 标准错误重定向标准输出 &> 都 (1+2)*3 提高优先级 ()括号优先级最高
2^3
2+2
[root@centos7 123]#vim bc.txt
[root@centos7 123]#bc < bc.txt
8
4
8
4
4
cat 标准输入之后把输入结果输出 cat <bc.txt > bc.txt 清空文件
cat<bc.txt >> bc.txt 无线追加死循环
SET字符
tr SET1 [SET2] tr命令是按从右向左数据来替换字符 [root@centos7 ~]#tr "fsfs" "1234" fs 34
tr 'abc' '1234'
只替换abc
tr 'abcde' '1235' 替换abcde 为12355 tr命令以替换第一个命令为主 tr -d 删除字符串
root@centos7 data]#tr -d "123" 123 456 456 123456abc 456abc
tr -t 同等字符替换 tr -c 默认替换最后一个字符 [root@centos7 data]#tr -c "123" "ab"
123456789 123bbbbbbb[root@centos7 data]#
[root@centos7 data]#tr -dc "123"
123456asdf
123[root@centos7 data]#
\b 空格
\n 换行
\r 回车
\t tab
hexdump -C
0a换行\n 0d回车\r
换行符和回车键 纸往前走就是换行 回车就是到开始头
linux换行回车就0a
window 则0d 0a
echo {1..100} |tr " " "+" |bc
tr -s "abc" 压缩字符 [root@centos7 data]#tr -s "123" 123 123 1122233 123 445566 445566
tr -c "123 " "d" 除了123其他都替换d
tr命令的符号 [:upper:] [:alnmu:] [:alpha:] [:lower:] [:blank:] [:space:] tr则表示[:lower:]就是小写字母
通配符 ls [[:lower:]]* [[::]] 双括号表示1个字符
hexdump -C 马哥教育7.txt
[root@centos7 ~]#hexdump -C 马哥教育7.txt
00000000 d5 fd d4 f2 b1 ed b4 ef ca bd c5 e4 d6 c3 d3 ca |................|
00000010 cf e4 0d 0a d5 fd d4 f2 b1 ed b4 ef ca bd c5 e4 |................|
00000020 d6 c3 ca d6 bb fa ba c5 0d 0a c9 ed b7 dd d6 a4 |................|
00000030 ba c5 0d 0a 71 71 ba c5 0d 0a 0d 0a 0d 0a 73 68 |....qq........sh|
00000040 65 6c 6c b1 e0 b3 cc d6 d0 0d 0a d3 ef b7 a8 ce |ell.............|
00000050 ca cc e2 c4 ac c8 cf b2 bb bb e1 d6 b4 d0 d0 cf |................|
hexdump -c 看 不是16进制本身字符,通过解释器可以转换2进制字符
[root@centos7 ~]#hexdump -c 马哥教育7.txt linux本身字符可转换2机制或者16进制字符
0000000 325 375 324 362 261 355 264 357 312 275 305 344 326 303 323 312
0000010 317 344 \r \n 325 375 324 362 261 355 264 357 312 275 305 344
0000020 326 303 312 326 273 372 272 305 \r \n 311 355 267 335 326 244
0000030 272 305 \r \n q q 272 305 \r \n \r \n \r \n s h
0000040 e l l 261 340 263 314 326 320 \r \n 323 357 267 250 316
0000050 312 314 342 304 254 310 317 262 273 273 341 326 264 320 320 317
0000060 302 310 245 \r \n \r \n 303 374 301 356 264 355 316 363 262
[root@centos7 ~]#hexdump -C f1
00000000 61 62 63 0a |abc.|
[root@centos7 ~]#hexdump -c f1
0000000 a b c \n
[root@centos7 ~]#hexdump f1
0000000 6261 0a63
tr 命令只是显示tr结果 ,意思就是tr命令只是处理一些内容,如接受标准输出在标准输出内容
如果2个文件名相同时非常危险的 1是清空f1 2是追加循环 1 cat <f1 > f1 1 2 cat <f1 >>f1
[root@centos7 ~]#cat <f1 >>f1
00
00
[root@centos7 ~]#cat <f1 > f1
[root@centos7 ~]#cat f1
[root@centos7 ~]#
cat > f1.txt 单行重定向, 换行一次就重定向
cat <f1 << EOF end of file 多行重定向 EOF一定孤立一行才是结束
第二个终端变化在输入EOF则文件变化 [root@centos7 ~]#cat >f1 <<EOF
11
22
333 EOF
可以用于写脚本生成文件
cat 可以以用变量可以用命令
[root@centos7 123]#cat $PATH
cat: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin: No such file or directory
[root@centos7 123]#cat uname -r
cat: 3.10.0-957.el7.x86_64: No such file or directory
跑不同的命令结果不一样
mail -s "hi" wang
cat > wang.txt
mail -s "hi" wang <wang.txt
mail -s "hi" wang << EOF
多行重定向 就地文本heretext
管道利用 ,临时性的管道技术 管道在内存里边没有生成永久文件 cmd --->pipe | cmd 2 <---pipe |
cmd 1 | cmd 2 管道只接受标准输出 不接受标准错误 把cmd1命令输出作为cmd2标准输入 如果cmd1是错误命令则不能处理 cmd | tr " a-z" "A-Z" [root@centos7 ~]#cmd | tr "a-z" "A-Z" bash: cmd: command not found... Similar command is: 'mcd'
cmd 2>&1 | tr " a-z" "A-Z" 错误命令变成正确在输出 管道输出
[root@centos7 ~]#cmd 2>&1 | tr "a-z" "A-Z" BASH: CMD: COMMAND NOT FOUND... SIMILAR COMMAND IS: 'MCD' cmd |& tr " a-z" "A-Z" 都变成正确在输出 管道输出
[root@centos7 ~]#cmd |& tr "a-z" "A-Z" BASH: CMD: COMMAND NOT FOUND... SIMILAR COMMAND IS: 'MCD'
管道最后一个命令会在当前shell进程的子shell进程中执行
标准输入 tee bc mail tr bc
echo {1..100} | tr " " "+" | bc
tee T 己重定向又显示命令
echo{a..d} |tee f1.txt 标准输出 又重定向tee
针对.tar tar -cvf - /home | tar -xvf - 先打包/home -表示前一个命令的标准输出 Examples: tar -cf archive.tar foo bar # Create archive.tar from files foo and bar. tar -tvf archive.tar # List all files in archive.tar verbosely. tar -xf archive.tar # Extract all files from archive.tar.
在解包 home
令牌token ,identity 登陆成功(令牌uid,gid,gid2)之后通过token来对文件进行访问 token是是在登陆时候得到的,如果改uid gid,一定要等用户退出才能改
root 0 用户编号 linux 判断是不是管理员看UID是不是0
centos6 500+ 1-500 是系统uid 系统账号给进程使用 centos7 1000+ 1-999 是系统uid 系统账号给进程使用
windows 只要把账号加进管理员组就成了管理员 net user test 123 /add创建一个账号test 密码123 localgroup test /add 建立组 net user test 123 /del 删组 net user
linux组权限是累加权限
如果他是本文件所有者则可以修改任何权限包括文件的所属组,文件的所有权限,但不能修改文件的所有者 如果这个文件的所有者他可以Gid 改文件gid名字但不能改uid名字 [mage@centos7 ~]$chmod g=,o= /usr/bin/cat [mage@centos7 ~]$ll /usr/bin/cat -rwx------. 1 mage root 54160 Oct 31 03:16 /usr/bin/cat [mage@centos7 ~]$chown root /usr/bin/cat chown: changing ownership of ‘/usr/bin/cat’: Operation not permitted [mage@centos7 ~]$chmod u=,g=,o= /usr/bin/cat [mage@centos7 ~]$ll /usr/bin/cat ----------. 1 mage root 54160 Oct 31 03:16 /usr/bin/cat [mage@centos7 ~]$chgrp mage /usr/bin/cat [mage@centos7 ~]$ll /usr/bin/cat ----------. 1 mage mage 54160 Oct 31 03:16 /usr/bin/cat [mage@centos7 ~]$
文件的所属组不能更改文件任何权限, 但是他可以对文件的本身所属组权限进行操作
drwxr-x---. 3 abb mage 78 Mar 11 21:47 abb chmod: changing permissions of ‘abb’: Operation not permitted [mage@centos7 home]$chmod g=rxw abb chmod: changing permissions of ‘abb’: Operation not permitted [mage@centos7 home]$chmod o=rxw abb chmod: changing permissions of ‘abb’: Operation not permitted [mage@centos7 home]$chmod u=rxw abb chmod: changing permissions of ‘abb’: Operation not permitted [mage@centos7 home]$ [mage@centos7 home]$cd apps
linux安全上下文 命令能不能访问 得到一个令牌,进程访问,文件访问取决于令牌
linux创建一个用户必须有一个组这个组就是主要组, 组名用户名相同,仅包含一个组私有组机制,组编号可以不同,
[root@centos7 home]#getent passwd laowang ;getent group laowang ;getent shadow laowang ;getent gshadow laowang laowang:x:1011:1012::/home/laowang:/bin/bash laowang:x:1012: laowang:!!:17967:0:99999:7::: laowang:!::
一个用户属于其他的组,并不是必须有的,叫辅助组,附加组
[root@centos7 home]#usermod -G root laowang [root@centos7 home]#getent group root root:x:0:gentoo,mage,laowang
/etc/passwd passwd文件不能随便改,/etc/group /etc/gshadow
文件也不能随便改应该用命令让附加组同步 [root@centos7 home]#getent gshadow root ;getent group root root:::gentoo,mage,laowang root:x:0:gentoo,mage,laowang
[root@centos7 123]#ll /etc/passwd -rw-r--r--. 1 root root 2695 Mar 9 20:01 /etc/passwd
/etc/group /etc/shadow /etc/gshadow
chfn mage 编辑马哥GOES [root@centos7 home]#getent passwd laowang laowang:x:1011:1012:laowang,huatengdasha,110,120:/home/laowang:/bin/bash
ps aux 显示系统运行进程列表 [root@centos7 ~]#ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.4 194088 6180 ? Ss Mar10 0:23 /usr/lib/systemd/systemd --swit root 2 0.0 0.0 0 0 ? S Mar10 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Mar10 0:01 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< Mar10 0:00 [kwo
chsh -s /bin/csh mage 改shell
[root@centos7 home]#chsh -s /bin/csh laowang Changing shell for laowang. Shell changed. [root@centos7 home]#getent passwd laowang laowang:x:1011:1012:laowang,huatengdasha,110,120:/home/laowang:/bin/csh
/sbin/nologin 进程登录瞬间退出
$1 md5 $6 sh512 加随机字符salt $djsdjakl$ 加盐式命令随机
echo date +%s
/3600/24 |bc
[root@centos7 home]#echo date +%s
/3600/24|bc
17967
[root@centos7 home]#getent shadow laowang
laowang:!!:17967:0:99999:7:::
[root@centos7 home]#echo laowangdate=$[date +%s
/3600/24]
laowangdate=17967
[root@centos7 home]#echo laowangdate=$((date +%s
/3600/24))
laowangdate=17967
[root@centos7 home]#let laowangdate=date +%s
/3600/24
[root@centos7 home]#echo $laowangdate
17967
chage [root@centos7 ~]#chage laowang Changing the aging information for laowang Enter the new value, or press ENTER for the default
Minimum Password Age [0]: 3
Maximum Password Age [99999]: 15
Last Password Change (YYYY-MM-DD) [2019-03-12]: 2019-03-12
Password Expiration Warning [7]: 7
Password Inactive [-1]: 30
Account Expiration Date (YYYY-MM-DD) [-1]: 2019-05-30
-1 就是从不 [root@centos7 ~]#chage -l bbc Last password change : Mar 12, 2019 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7
[root@centos7 ~]#getent shadow laowang laowang:!!:17967:3:15:7:30:18046:
用户修改密码时间从1970年来算设置为0 ,需要用户立即修改密码 [root@centos7 ~]#getent shadow laowang laowang:$6$xmk5H5QH$IK7OxMUyYV3uPEaxJ2LrpDlTVeE7t5Q1S 05an3BCJF.U9lW7cb1z9Hxk7OSh2Kt7Q51OQRyoUE2zNyl5l9lZ11:0:3:15:7:30:18046:
最长口令过期需要重新改密码 [root@centos7 ~]#getent shadow laowang laowang:$6$hpvGtKCl$11rxvaKR64mXoEKQuRgEzq CUAIBjNj3I4c4E7kLjXEBhT6wDgYrxmPX.7ZKYKGiUap/sT4mEkhC Ff7jSch8S40:17967:3:15:7:30:18046:
[root@centos7 ~]#date -s "20 day"
Mon Apr 1 09:41:55 CST 2019
如果延迟5天还不改口令则过期就类似sbin/nologin
最后一个是账户有效期,过期就会提醒怎么过期 chage -E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE账户有效期按1970年来算 -1
/etc/group 如果知道组口令密码也可以进组
wang:x:1000:wang,bin,mage 最有一个 wang ,bin ,mage 用户的附加组是王
!就是把口令加锁定
unbutu sudo nano /etc/shadow
用wang用户加入 newgrp zhang 加入zhang组 zhang成为wang用户主组 在建文件就成了 uid wang gid zhang
[mage@centos7 ~]$newgrp laowang1 Password: [mage@centos7 ~]$id uid=1001(mage) gid=1014(laowang1) groups=1014(laowang1),0(root),1001(mage) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
/etc/gshadow 和/etc/group格式必须一样
usrmod -aG 保护账户附加组
usermod -L zhang 密码输入正确很有可能是锁定了
[root@centos7 ~]#getent shadow laowang laowang:!$6$5UL2M795$cdNrOOnb0K1sFw1TjO.Lul/9H4R77dLpml7GeZ6jdgLH1MgEdFC9tUcw.d7V0md4lkB4XLqWREvRe5OW2WG0e1:18007:3:99999:7:15:18099:
usermod -U zhang 如果没有口令则不能解锁
[root@centos7 ~]#getent shadow laowang laowang:!:18007:3:99999:7:15:18099:
[root@centos7 ~]#usermod laowang -U usermod: unlocking the user's password would result in a passwordless account. You should set a password with usermod -p to unlock this user's password. usermod -U zhang 有口令则可以解锁
[root@centos7 ~]#usermod laowang -U [root@centos7 ~]#getent shadow laowang laowang:$6$5UL2M795$cdNrOOnb0K1sFw1TjO.Lul/9H4R77dLpml7GeZ6jdgLH1MgEdFC9tUcw.d7V0md4lkB4XLqWREvRe5OW2WG0e1:18007:3:99999:7:15:18099:
tcpdump::17960:::::: 空口令不要密码
authconfig --passalgo=sha256 --update 改口令加密算法
openssl rand -base64 12 base64编码机制
cat /dev/urandom |tr -dc "a-zA-Z0-9" |head -c12查看 随机字符
vipw =vim pw 有语法检查功能改错会报提示 vigr
pwck 直接命令有语法检查功能改错会报提示 grpck
useradd -u 9527 li -o强制 -g 如果不指定就是同名主组
rpm -q --script bash 看rpm包安装script脚本 -N 不创建主组用默认主组users -r centos6 500以下 centos71000 以下
getent passwd haha 从数据库查
-r 系统用户默认不用-m 建家目录 会生成杂文件 [root@centos7 home]#ls abb bash ckw git mage nginx user apps bbc gentoo laowang mysql tomcat varnish [root@centos7 ~]#useradd -r bbb [root@centos7 ~]#cd~bbb bash: cd~bbb: command not found... [root@centos7 ~]#cd ~bbb -bash: cd: /home/bbb: No such file or directory
-r 系统用户默认不用-m 建家目录 会生成杂文件
cp -r /home/wang/. /data/wanghome 把wang下的所有文件传wanghome
cat /etc/default/useradd =useradd -D
/etc/skel新建用户家目录来源 模板路径
/etc/login.defs
批量改用户要求模板一样参考/etc/passwd
newusers f1.txt
echo haha: centos |chpasswd
nano pw.txt批量改口令方法
haha: centos
cat pw.txt | chpasswd
userdel -r 删家目录用户账号 userdel 如果删除用户不删除家目录则以后创建同名的uidgid附属到同名uidgid会出问题
[root@centos7 home]#userdel abb [root@centos7 home]#ll [root@centos7 home]#useradd -g1010 bbbc total 8 drwx------. 3 1010 1011 78 Mar 11 21:47 abb [root@centos7 home]#ll total 8 drwx------. 3 bbbc 1011 78 Mar 11 21:47 abb
su switch user
su root 临时切换切换身份 并且在当地文件
su - root 完全切换改变/etc/配置 彻底切换并且切换自己家目录
su - root -c 'cat /etc/passwd' 做完操作又回来了自己账户
passwd -e mage 立刻改口令 口令过期 修改口令时间则为0
groupadd -g 指定组id
groupadd -r 系统组
groupdel
如果删组是用户的主组则不能删
gpasswd -a user 组 加user进组 gpasswd -d user 组 删user组
[root@centos7 home]#useradd -g 1010 cc2 [root@centos7 home]#gpasswd -a apps root Adding user apps to group root [root@centos7 home]#getent group root root:x:0:gentoo,mage,laowang,apps [root@centos7 home]#gpasswd -d apps root Removing user apps from group root
groupmems -g 组 -a 用户 groupmems -g 组 -d 用户
[root@centos7 home]#groupmems -a apps -g root [root@centos7 home]#getent group root root:x:0:gentoo,mage,laowang,apps [root@centos7 home]#groupmems -d apps -g root [root@centos7 home]#getent group root root:x:0:gentoo,mage,laowang [root@centos7 home]#
groupmems -l -g 组名 看组成员 [root@centos7 home]#groupmems -l -g root gentoo mage laowang [root@centos7 home]#groupmems -l -g apps [root@centos7 home]#groupmems -a mage -g apps [root@centos7 home]#groupmems -l -g apps mage
usermod -G "" wang
reboot 普通用户没有权限随便关机
chgrp -R wang / data/ 把全部人变成wang chown -R wang /data
chown --reference=f1 f2 参考f1设置f2 权限
rwxrwxrwx 用户拿到token(uid,gidgroup) 然后文件判断权限先看所有者所属组其他人 如果权限直接生效后边不看而且看文件直接看文件对应权限
所有者不能改为自己的文件设为其他人
所有者可以改自己文件权限
chmod who opt per file u g o a
-
- = rwx
如果只有w写权限可以用重定向追加写入文件
1111 >> f2
chmod a-x /bin/chmod chmod命令则失效
finger 看用户几点几分登录什么终端运行多长时间 [root@centos7 bin]#finger -lmps root Login: root Name: root Directory: /root Shell: /bin/bash On since Sat Mar 9 09:46 (CST) on :0 from :0 (messages off) On since Mon Mar 11 08:50 (CST) on pts/0 from :0 123 days 1 hour idle On since Fri Jul 12 05:24 (CST) on pts/1 from 172.22.150.233 17 minutes 45 seconds idle On since Fri Jul 12 02:27 (CST) on tty2 8 hours 5 minutes idle On since Fri Jul 12 02:29 (CST) on pts/5 from 172.22.150.233 1 second idle Mail last read Mon Mar 11 14:16 2019 (CST)