权限管理
用户锁定与权限管理
文章目录
1.用户锁定
1.1 锁定账号 /-L
[root@SYL2 ~]# echo 'run123' | passwd --stdin buliangren //设密码
Changing password for user buliangren.
passwd: all authentication tokens updated successfully.
[root@SYL2 ~]# tail /etc/shadow
tom:$6$AWT07jr1LJ4NICve$b9mFSqRNEfsMQttsmF0weIqitnSygAAWhCWB1/JPOcoad3JvrFPlv9IyngBH6oOsn4khPA.8Ph60ZH7RhHhne/:19081:0:99999:7:::
timi:$6$Ol6bKJygBe/rSQAm$m.TyIj2FZT21oNwvlmS/xIxVKuoC6fkF8wAYdahBCBdW54AaZCuldyanQ.yZtqOWeXutpmMZb7UhWWyw9s/5y1:19081:0:99999:7:::
buliangren:$6$Ksm6sr6QFB1s.19J$zOuvZWyEg9QiPi/yVcc4RdPNW3XnVkbPLg29Y9kEnzwtMUU0LFLJ8KZOhniT2eKEEKQGmNZne9CtL92.Gm7tX.:19081:0:99999:7:::
[root@SYL2 ~]# usermod -L buliangren //锁定账号
[root@SYL2 ~]# tail /etc/shadow
buliangren:!$6$Ksm6sr6QFB1s.19J$zOuvZWyEg9QiPi/yVcc4RdPNW3XnVkbPLg29Y9kEnzwtMUU0LFLJ8KZOhniT2eKEEKQGmNZne9CtL92.Gm7tX.:19081:0:99999:7::: //密码前有个!
1.2 解锁账号 /-U
[root@SYL2 ~]# usermod -U buliangren //解锁账号
[root@SYL2 ~]# tail /etc/shadow
buliangren:$6$Ksm6sr6QFB1s.19J$zOuvZWyEg9QiPi/yVcc4RdPNW3XnVkbPLg29Y9kEnzwtMUU0LFLJ8KZOhniT2eKEEKQGmNZne9CtL92.Gm7tX.:19081:0:99999:7::: //密码前没有!代表解锁
2.权限管理 设置权限 chmod — change mode
文件的权限针对属主(u-,第一个root,拥有者),属组(g,第二个root,组的成员)和其他(o),除了属主和属组之外)进行定义
2.1 权限只针对普通用户,Read 读 Write 写 eXecute 执行 —程序和脚本
r w x
4 2 1
-
权限 操作对象 说明 r 文件 读,可以使用类似cat等命令查看文件内容 w 文件 写,可以编辑或删除此文件 x 文件 执行,程序文件,脚本文件 r 目录 可以对此目录执行ls以列出内部 w 目录 可以在此目录中创建文件,也可删除此目录中的文件 x 目录 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息必须有
2.2 针对文件 普通文件没有执行权限 x
-
进入管理员root写入一个文件
-
[root@SYL2 ~]# echo 'hello hello' > ~timi/abc
-
在timi用户查看
-
[timi@SYL2 ~]$ ll total 4 -rw-r--r--. 1 root root 12 Mar 30 15:40 abc //可以看出abc的拥有者root可以读写,这个组可以读,timi这个用户只能读也能删(在timi家中) [timi@SYL2 ~]$ cat abc hello hello [timi@SYL2 ~]$ rm -f abc [timi@SYL2 ~]$ ll total 0
-
设置权限,timi权限为空
-
[root@SYL2 ~]# chmod o= ~timi/abc [root@SYL2 ~]# [timi@SYL2 ~]$ ll total 4 -rw-r-----. 1 root root 12 Mar 30 15:56 abc [timi@SYL2 ~]$ cat abc //切换账号,不能读,只能删,在timi家中 cat: abc: Permission denied [timi@SYL2 ~]$ rm -f abc [timi@SYL2 ~]$ ll total 0 [timi@SYL2 ~]$
-
创建在opt目录下,timi用户下时把权限改成r,timi没有删除和写看等权限,权限改为w,timi则没有看和删除。因为创建在目录下的文件属于root这个主和组中
-
[root@SYL2 ~]# echo 'hello hello' > /opt/abc [root@SYL2 ~]# [timi@SYL2 ~]$ cd /opt/ [timi@SYL2 opt]$ ll total 4 -rw-r--r--. 1 root root 12 Mar 30 16:00 abc [timi@SYL2 opt]$ cat abc hello hello [timi@SYL2 opt]$ [root@SYL2 ~]# chmod o= /opt/abc //权限为空 [root@SYL2 ~]# [timi@SYL2 opt]$ ll total 4 -rw-r-----. 1 root root 12 Mar 30 16:00 abc [timi@SYL2 opt]$ cat abc cat: abc: Permission denied [timi@SYL2 opt]$ rm -f abc rm: cannot remove 'abc': Permission denied [timi@SYL2 opt]$ ls abc [timi@SYL2 opt]$ [root@SYL2 ~]# chmod o=w /opt/abc //权限能写 [root@SYL2 ~]# cat /opt/abc hello hello [timi@SYL2 opt]$ echo '666' >> abc [timi@SYL2 opt]$ rm -f abc rm: cannot remove 'abc': Permission denied [timi@SYL2 opt]$ [root@SYL2 ~]# cat /opt/abc hello hello 666
2.3 文件 脚本文件执行权限
-
把脚本中的执行(x)权限给去除,管理员能用,普通用户用不了
-
[root@SYL2 ~]# ls /usr/bin/ls /usr/bin/ls [root@SYL2 ~]# ll /usr/bin/ls -rwxr-xr-x. 1 root root 143224 Jul 14 2021 /usr/bin/ls [root@SYL2 ~]# chmod o-x /usr/bin/ls //把其他用户执行权限给去掉 [root@SYL2 ~]# ll /usr/bin/ls -rwxr-xr--. 1 root root 143224 Jul 14 2021 /usr/bin/ls
-
[timi@SYL2 opt]$ ll -bash: /usr/bin/ls: Permission denied [root@SYL2 ~]# chmod o+x /usr/bin/ls [root@SYL2 ~]# [timi@SYL2 opt]$ ll total 4 -rw-r---w-. 1 root root 16 Mar 30 16:07 abc [timi@SYL2 opt]$
2.4 目录必须跟执行权限配合
-
目录没有执行(x)权限,timi进不去目录中
-
[timi@SYL2 opt]$ cd qqq/ -bash: cd: qqq/: Permission denied [timi@SYL2 opt]$
-
[root@SYL2 ~]# ll /home/ [root@SYL2 ~]# cd /opt/ [root@SYL2 opt]# ls abc [root@SYL2 opt]# mkdir qqq //创建一个目录 [root@SYL2 opt]# ll total 4 -rw-r---w-. 1 root root 16 Mar 30 16:07 abc drwxr-xr-x. 2 root root 6 Mar 30 16:30 qqq [root@SYL2 opt]# chmod o=r abc [root@SYL2 opt]# mv abc qqq/ //把abc移到目录 [root@SYL2 opt]# chmod o=r qqq //设置目录权限只能读 [root@SYL2 opt]# [timi@SYL2 opt]$ ll qqq/ total 4 -rw-r--r--. 1 root root 16 Mar 30 16:07 abc [timi@SYL2 opt]$ ll qqq/ ls: cannot access 'qqq/abc': Permission denied total 0 -????????? ? ? ? ? ? abc [timi@SYL2 opt]$ ls qqq ls: cannot access 'qqq/abc': Permission denied abc [timi@SYL2 opt]$ [root@SYL2 opt]# chmod o=w qqq //只有写的权限 [root@SYL2 opt]# [timi@SYL2 opt]$ ll qqq //timi用户看不成,写不成,删不了 ls: cannot open directory 'qqq': Permission denied [timi@SYL2 opt]$ echo '' >> qqq/999 -bash: qqq/999: Permission denied [timi@SYL2 opt]$ rm -f qqq/999 rm: cannot remove 'qqq/999': Permission denied [timi@SYL2 opt]$ ls qqq/ ls: cannot open directory 'qqq/': Permission denied [timi@SYL2 opt]$
-
跟执行(x)权限配合
-
[timi@SYL2 opt]$ cd qqq/ [timi@SYL2 qqq]$
-
读权限
-
[root@SYL2 opt]# ll total 0 drwxr-xr-x. 4 root root 26 Mar 30 16:45 liyun drwxr-x-w-. 2 root root 17 Mar 30 16:32 qqq [root@SYL2 opt]# chmod o=rx qqq //设置能读能执行 [root@SYL2 opt]# ll total 0 drwxr-xr-x. 4 root root 26 Mar 30 16:45 liyun drwxr-xr-x. 2 root root 17 Mar 30 16:32 qqq [root@SYL2 opt]# [timi@SYL2 opt]$ ll qqq total 4 -rw-r--r--. 1 root root 16 Mar 30 16:07 abc [timi@SYL2 opt]$ ls qqq/ abc [timi@SYL2 opt]$ cat qqq/abc hello hello 666 [timi@SYL2 opt]$ [timi@SYL2 opt]$ ll qqq timi能读 total 4 -rw-r--r--. 1 root root 16 Mar 30 16:07 abc [timi@SYL2 opt]$ ls qqq/ abc [timi@SYL2 opt]$ cat qqq/abc hello hello 666
-
写权限,能删除,能创建,不能修改
-
[root@SYL2 opt]# chmod o=wx qqq [root@SYL2 opt]# ls liyun qqq [timi@SYL2 opt]$ ls /qqq ls: cannot access '/qqq': No such file or directory [timi@SYL2 opt]$ ls qqq/ ls: cannot open directory 'qqq/': Permission denied [timi@SYL2 opt]$ echo '360' >> qqq/abc -bash: qqq/abc: Permission denied [timi@SYL2 opt]$ touch 555 touch: cannot touch '555': Permission denied [timi@SYL2 opt]$ touch qqq/555 [timi@SYL2 opt]$ rm -f qqq/abc [timi@SYL2 opt]$ [root@SYL2 opt]# ll qqq/ total 0 -rw-rw-r--. 1 timi timi 0 Mar 30 16:54 555 [root@SYL2 opt]#
2.5 用数字代替 — r 4 w 2 x 1
-
例如文件拥有写的权限—662
-
[root@SYL2 opt]# cp -r qqq/555 . //移到到当前目录 [root@SYL2 opt]# ls 555 liyun qqq [root@SYL2 opt]# chmod 660 555 //读写 读写 空 [root@SYL2 opt]# ll total 0 -rw-rw----. 1 root root 0 Mar 30 17:02 555 drwxr-xr-x. 4 root root 26 Mar 30 16:45 liyun drwxr-x-wx. 2 root root 17 Mar 30 16:55 qqq [root@SYL2 opt]# [timi@SYL2 opt]$ cat 555 cat: 555: Permission denied [timi@SYL2 opt]$
2.6 修改文件属主,属组的命令chown—change owner(改变拥有者),只能管理员能用
-
[root@SYL2 opt]# chown timi liyun //改拥有者直接改 [root@SYL2 opt]# ll total 0 -rw-rw----. 1 root root 0 Mar 30 17:02 555 drwxr-xr-x. 4 timi root 26 Mar 30 16:45 liyun drwxr-x-wx. 2 root root 17 Mar 30 16:55 qqq [root@SYL2 opt]# chown .timi liyun //改组前面加个点 [root@SYL2 opt]# ll total 0 -rw-rw----. 1 root root 0 Mar 30 17:02 555 drwxr-xr-x. 4 timi timi 26 Mar 30 16:45 liyun drwxr-x-wx. 2 root root 17 Mar 30 16:55 qqq [root@SYL2 opt]# chown tom.timi liyun //两个都改用户.用户 [root@SYL2 opt]# ll total 0 -rw-rw----. 1 root root 0 Mar 30 17:02 555 drwxr-xr-x. 4 tom timi 26 Mar 30 16:45 liyun drwxr-x-wx. 2 root root 17 Mar 30 16:55 qqq [root@SYL2 opt]#
-
加大R后面里面都改属性(主,组)
-
[root@SYL2 opt]# mkdir -p ddd/{ap,ao/{77,99}} [root@SYL2 opt]# chown -R tom ddd [root@SYL2 opt]# ll ddd/ total 0 drwxr-xr-x. 4 tom root 37 Mar 30 17:28 ao drwxr-xr-x. 2 tom root 6 Mar 30 17:27 ap [root@SYL2 opt]# ll ddd/ao/ total 0 drwxr-xr-x. 2 tom root 6 Mar 30 17:27 77 drwxr-xr-x. 2 tom root 6 Mar 30 17:27 99 -rw-r--r--. 1 tom root 0 Mar 30 17:28 jjj [root@SYL2 opt]#
2.7 遮罩码 —umask
文件默认是不能具有执行权限的,如果算得的结果有执行权限则将其权限整体加1。
-
文件 666 最大权限
目录 777 最大权限 -
[root@SYL2 opt]# ll total 0 -rw-r--r--. 1 root root 0 Mar 30 17:42 abcd //文件 6 4 4 drwxr-xr-x. 4 tom root 26 Mar 30 17:27 ddd drwxr-xr-x. 4 tom timi 26 Mar 30 16:45 liyun //目录 755 drw-rw-r-x. 2 tom root 17 Mar 30 16:55 qqq [root@SYL2 opt]# umask 0022 //遮罩码 文件666-022=644 目录777-022=755 [root@SYL2 opt]#
-
改遮罩码之前的文件不变
-
[root@SYL2 opt]# umask 032 [root@SYL2 opt]# umask 0032 [root@SYL2 opt]# ll total 0 -rw-r--r--. 1 root root 0 Mar 30 17:42 abcd drwxr-xr-x. 4 tom root 26 Mar 30 17:27 ddd drwxr-xr-x. 4 tom timi 26 Mar 30 16:45 liyun drw-rw-r-x. 2 tom root 17 Mar 30 16:55 qqq [root@SYL2 opt]# rm -rf abcd ddd liyun qqq [root@SYL2 opt]# touch abc [root@SYL2 opt]# mkdir xingxing [root@SYL2 opt]# ll total 0 -rw-r--r--. 1 root root 0 Mar 30 17:48 abc drwxr--r-x. 2 root root 6 Mar 30 17:48 xingxing [root@SYL2 opt]# umask 0032 [root@SYL2 opt]#
3.linux上下文
前提:进程有属主和属组;文件有属主和属组
-
任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有可执行权限;
-
启动为进程后,其进程的属主为发起者,属组为发起者所属的组
-
进程访问文件时的权限取决于进程的发起者:
- 进程的发起者是文件的属主时,则应用文件属主权限
- 进程的发起者是文件的属组时,则应用文件属组权限
- 应用文件“其它”权限
-
用一个用户tom打开属于root账号的文件
-
进程的发起者是tom,文件的拥有者是root
4.特殊权限
-
SUID(4),s/S 运行程序时,这个程序启动的进程的属主是程序文件自身的属主,而不是启动者为属主 ,如果file本身原来就有执行权限,则SUID显示为s,否则显示为S
-
[root@SYL2 ~]# ll /usr/bin/sleep -rwxr-xr-x. 1 root root 38296 Jul 14 2021 /usr/bin/sleep [root@SYL2 ~]# ps -ef|grep sleep titi 13585 13551 0 19:45 pts/1 00:00:00 sleep 5000 root 13587 1701 0 19:45 pts/2 00:00:00 grep --color=auto sleep [root@SYL2 ~]# [root@SYL2 opt]# ll /usr/bin/sleep -rwxr-xr-x. 1 root root 38296 Jul 14 2021 /usr/bin/sleep [root@SYL2 opt]# chmod 4755 /usr/bin/sleep //设置suid时file本身原来就有执行权限,则SUID显示为s [root@SYL2 opt]# ll /usr/bin/sleep -rwsr-xr-x. 1 root root 38296 Jul 14 2021 /usr/bin/sleep [root@SYL2 ~]# ps -ef|grep sleep root 43163 26767 0 19:24 pts/2 00:00:00 sleep 6000 [root@SYL2 opt]# chmod u-x /usr/bin/sleep [root@SYL2 opt]# ll /usr/bin/sleep //变大写S -rwSr-xr-x. 1 root root 38296 Jul 14 2021 /usr/bin/sleep [root@SYL2 ~]# ps -ef|grep sleep root 43163 26767 0 19:24 pts/2 00:00:00 sleep 6000 [root@SYL2 opt]# [root@SYL2 opt]# chmod u+x /usr/bin/sleep [root@SYL2 opt]# ll /usr/bin/sleep -rwsr-xr-x. 1 root root 38296 Jul 14 2021 /usr/bin/sleep [root@SYL2 opt]#
-
SGID(2), s/S 运行程序时,这个程序启动的进程的属组是程序文件自身的属组,而不是启动者所属的基本组
-
一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件或目录,其所属的组 ,为此设定了SGID的目录的属组
-
默认情况下创建的目录属于谁,里面所创建的文件就属于当前目录的基本组
-
[root@SYL2 ~]# mkdir ttt [root@SYL2 ~]# ll total 8 -rw-r--r--. 1 root root 88 Mar 1 19:16 1.1.txt -rw-------. 1 root root 1092 Mar 1 17:08 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Mar 30 19:50 ttt [root@SYL2 ~]# cd ttt [root@SYL2 ttt]# touch 999 [root@SYL2 ttt]# ll total 0 -rw-r--r--. 1 root root 0 Mar 30 19:50 999 [root@SYL2 ttt]# [root@SYL2 ~]# chown .timi abc [root@SYL2 ~]# ll total 8 -rw-r--r--. 1 root root 88 Mar 1 19:16 1.1.txt drwxr-xr-x. 2 root timi 6 Mar 30 19:55 abc -rw-------. 1 root root 1092 Mar 1 17:08 anaconda-ks.cfg drwxr-xr-x. 2 root root 17 Mar 30 19:50 ttt [root@SYL2 ~]# cd abc [root@SYL2 abc]# touch 789 [root@SYL2 abc]# ll total 0 -rw-r--r--. 1 root root 0 Mar 30 19:56 789 [root@SYL2 abc]#
-
设置sgid后会继承
-
[root@SYL2 ~]# chmod 2755 abc [root@SYL2 ~]# ll total 8 -rw-r--r--. 1 root root 88 Mar 1 19:16 1.1.txt drwxr-sr-x. 2 root timi 17 Mar 30 19:56 abc -rw-------. 1 root root 1092 Mar 1 17:08 anaconda-ks.cfg drwxr-xr-x. 2 root root 17 Mar 30 19:50 ttt [root@SYL2 ~]# cd abc [root@SYL2 abc]# touch 777 [root@SYL2 abc]# ll total 0 -rw-r--r--. 1 root timi 0 Mar 30 19:59 777 -rw-r--r--. 1 root root 0 Mar 30 19:56 789 [root@SYL2 abc]#
-
Sticky(1), t/T 在一个公共目录,能自己创建文件,删除自己的文件,但是不能删除别人创建的文件,
-
[root@SYL2 ~]# mkdir /opt/tmmm [root@SYL2 ~]# ll /opt/ total 0 drwxr-xr-x. 2 root root 6 Mar 30 20:08 tmmm [root@SYL2 ~]# chmod 1777 /opt/tmmm [root@SYL2 ~]# ll /opt/ total 0 drwxrwxrwt. 2 root root 6 Mar 30 20:08 tmmm [root@SYL2 ~]# [timi@SYL2 ~]$ cd /opt/tmmm/ [timi@SYL2 tmmm]$ touch abc [timi@SYL2 tmmm]$ ll total 0 -rw-rw-r--. 1 timi timi 0 Mar 30 20:10 abc [timi@SYL2 tmmm]$ [tom@SYL2 ~]$ cd /opt/tmmm/ [tom@SYL2 tmmm]$ ls abc [tom@SYL2 tmmm]$ ll total 0 -rw-rw-r--. 1 timi timi 0 Mar 30 20:10 abc [tom@SYL2 tmmm]$ rm -f abc //删除不了别人创建的 rm: cannot remove 'abc': Operation not permitted [tom@SYL2 tmmm]$ ls abc [tom@SYL2 tmmm]$ touch 999 [tom@SYL2 tmmm]$ rm -f 999 //自己的可以删,可以创建,覆盖 [tom@SYL2 tmmm]$ [timi@SYL2 tmmm]$ echo 'hghg' > abc // [timi@SYL2 tmmm]$ cat abc hghg [timi@SYL2 tmmm]$ > abc [timi@SYL2 tmmm]$ cat abc [timi@SYL2 tmmm]$
-
4755 //有SUID,文件权限为755 2755 //有SGID,文件权限为755 1755 //有Sticky,文件权限为755
-rw- --- ---.
4 suid s/S 有显示小写s 在前三个权限的中间
2 sgid s/S s 在中间的权限的中间
1 sticky t/T t 在后三个权限的最后一个位置
5.文件系统访问列表 — face 利用文件扩展保存额外的访问控制权限
-
设置timi目录中能读能写能执行
-
[root@SYL2 opt]# mkdir runun [root@SYL2 opt]# ll total 0 drwxr-xr-x. 2 root root 6 Mar 30 20:21 runun drwxrwxrwx. 2 root root 17 Mar 30 20:12 tmmm [root@SYL2 opt]# setfacl -m:timi:rwx runun setfacl: Option -m: Invalid argument near character 2 [root@SYL2 opt]# setfacl -m u:timi:rwx runun [root@SYL2 opt]# [timi@SYL2 runun]$ touch 456 [timi@SYL2 runun]$ [tom@SYL2 runun]$ touch 899 touch: cannot touch '899': Permission denied [tom@SYL2 runun]$ ll total 0 -rw-rw-r--. 1 timi timi 0 Mar 30 20:23 456 [tom@SYL2 runun]$
-
设置Tom用户不能进入opt中
-
[root@SYL2 opt]# setfacl -m u:tom:--- runun [root@SYL2 opt]# [tom@SYL2 ~]$ ll /opt/runun/ ls: cannot open directory '/opt/runun/': Permission denied [tom@SYL2 ~]$
-
查看文件/目录是否设置成功
-
[root@SYL2 opt]# getfacl runun # file: runun # owner: root # group: root user::rwx user:tom:r-- user:timi:rwx group::r-x mask::rwx other::r-x [root@SYL2 opt]#
-
-x 取消
-
[root@SYL2 opt]# setfacl -x u:tom runun [root@SYL2 opt]# ll total 0 drwxrwxr-x+ 2 root root 17 Mar 30 20:23 runun drwxrwxrwx. 2 root root 17 Mar 30 20:12 tmmm [root@SYL2 opt]# getfacl runun # file: runun # owner: root # group: root user::rwx user:timi:rwx group::r-x mask::rwx other::r-x [root@SYL2 opt]# [tom@SYL2 ~]$ cd /opt/runun -bash: cd: /opt/runun: Permission denied [tom@SYL2 ~]$ cd /opt/runun [tom@SYL2 runun]$
-
-b Remove all
-
[root@SYL2 opt]# setfacl -b runun [root@SYL2 opt]# getfacl runun # file: runun # owner: root # group: root user::rwx group::r-x other::r-x [root@SYL2 opt]#
6.sudo可以实现某个用户能够以另外哪一个用户的身份通过哪些主机执行什么命令(权限委派)
sudo的配置文件:/etc/sudoers
[root@SYL2 ~]# ll /etc/sudoers
-r--r-----. 1 root root 4328 Dec 12 13:04 /etc/sudoers
[root@SYL2 ~]#
1.1使用visudo命令进行sudo的配置,每一行就是一个sudo条目,条目格式如下:
- who which_hosts=(runas) command
- who:User_Alias,表示运行命令者的身份
- which_hosts:Host_Alias,通过哪些主机
- runas:Runas_Alias,以哪个用户的身份
- command:Cmnd_Alias,运行哪些命令
2.1别名必须全部而且只能使用大写英文字母的组合,可以使用感叹号取反
别名分类:
-
用户别名:
- User_Alias NETWORKADMIN =
- 用户的用户名
- 组名,使用%引导
- 还可以其它已经定义的用户别名
- User_Alias NETWORKADMIN =
-
主机别名:
- Host_Alias =
- 主机名
- IP地址
- 网络地址
- 其它主机别名
- Host_Alias =
-
Runas别名:
- Runas_Alias =
- 用户名
- %组名
- 其它的Runas别名
- Runas_Alias =
-
命令别名:
- Cmnd_Alias =
- 命令路径
- 目录(此目录内的所有命令)
- 其它已定义的命令别名
- Cmnd_Alias =
-
sudo命令语法:sudo [options] COMMAND -V //显示版本编号 -h //会显示版本编号及指令的使用方式说明 -l //列出当前用户可以使用的所有sudo类命令 -v //因为sudo在第一次执行时或是在N分钟内没有执行(N默认为5)会问密码,这个参数 \ //是重新做一次确认,如果超过N分钟,也会问密码 -k //让认证信息失效,如果不指定-k,默认认证信息在5分钟后失效 -b //将要执行的指令放在后台执行 -u USERNAME //以指定的用户名执行命令,默认为root
-
编辑用户timi能创建用户 [root@SYL2 ~]# visudo ## Allow root to run any commands anywhere root ALL=(ALL) ALL timi ALL=(ALL) /usr/sbin/useradd ## Allows members of the 'sys' group to run networking, software, ## service management apps and more. [timi@SYL2 ~]$ sudo -l [sudo] password for timi: Matching Defaults entries for timi on SYL2: !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin User timi may run the following commands on SYL2: (ALL) /usr/sbin/useradd [timi@SYL2 ~]$ sudo useradd run111 [timi@SYL2 ~]$ [root@SYL2 ~]# visudo //编辑timi能创建和删除用户 ## Allow root to run any commands anywhere root ALL=(ALL) ALL timi ALL=(ALL) /usr/sbin/useradd, /usr/sbin/userdel ## Allows members of the 'sys' group to run networking, software, ## service management apps and more. [timi@SYL2 ~]$ sudo userdel -r run111 [timi@SYL2 ~]$ id run111 id: ‘run111’: no such user [timi@SYL2 ~]$
-
认证失效 sudo -k
-
[timi@SYL2 ~]$ sudo -k //把之前认证 失效 [timi@SYL2 ~]$ sudo -l [sudo] password for timi: 不输入密码 Sorry, try again. [sudo] password for timi: Sorry, try again. [sudo] password for timi: sudo: 3 incorrect password attempts [timi@SYL2 ~]$ [timi@SYL2 ~]$ sudo useradd run222 [sudo] password for timi: Sorry, try again. [sudo] password for timi: 创建还要输入密码 [timi@SYL2 ~]$ id run222 uid=1003(run222) gid=1003(run222) groups=1003(run222) [timi@SYL2 ~]$
-
增加timi创建用户时不用登录密码
-
[root@SYL2 ~]# visudo [root@SYL2 ~]# root ALL=(ALL) ALL timi ALL=(ALL) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel ## Allows members of the 'sys' group to run networking, software, ## service management apps and more. # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS [timi@SYL2 ~]$ sudo useradd run333 [timi@SYL2 ~]$
7.管理命令
7.1 sleep s:秒,默认 m:分 h:小时 d:天
[root@SYL2 ~]# sleep 20m;shutdown -h now //休息20分钟后关机
-
w //显示当前登录到系统的用户有哪些,以及其正在做什么 sleep 睡眠,写脚本为防止上一个命令没执行完下一命令就开始执行时可以加上sleep表示停顿#秒后再执行后面的命令 last 显示/var/log/wtmp文件,显示用户登录历史及系统重启历史 -n 显示最近#次的相关信息 lastb 显示/var/log/btmp文件,显示用户错误的登录尝试 -n 显示最近#次的相关信息 lastlog 显示每个用户最近一次成功登录信息 -u (username) 显示特定用户最近的登录信息 basename //显示路径基名 dirname //显示路径
-
显示用户登录历史及系统重启历史 last /-n 显示最近#次的相关信息
-
[root@SYL2 ~]# last -3 //显示最近3次的相关信息 root pts/7 192.168.232.1 Wed Mar 30 20:46 - 20:53 (00:07) root pts/6 192.168.232.1 Wed Mar 30 20:46 - 20:53 (00:07) root pts/7 192.168.232.1 Wed Mar 30 19:38 - 19:39 (00:00) wtmp begins Tue Mar 1 17:09:01 2022 [root@SYL2 ~]# ll /var/log/btmp -rw-rw----. 1 root utmp 6144 Mar 28 10:02 /var/log/btmp [root@SYL2 ~]# file /var/log/btmp /var/log/btmp: dBase III DBT, version number 0, next free block index 6 [root@SYL2 ~]# lastb //显示用户错误的登录尝试 root tty1 Mon Mar 28 10:02 - 10:02 (00:00) tty1 Wed Mar 2 09:16 - 09:16 (00:00) root tty1 Tue Mar 1 19:13 - 19:13 (00:00) root tty1 Tue Mar 1 19:12 - 19:12 (00:00) tty1 Tue Mar 1 19:12 - 19:12 (00:00) tty1 Tue Mar 1 17:09 - 17:09 (00:00) root tty1 Tue Mar 1 17:09 - 17:09 (00:00) btmp begins Tue Mar 1 17:09:26 2022 [root@SYL2 ~]# lastlog //显示每个用户最近一次成功登录信息 Username Port From Latest root pts/7 192.168.232.1 Wed Mar 30 20:46:02 +0800 2022 tom pts/4 Wed Mar 30 20:10:42 +0800 2022 timi pts/2 Wed Mar 30 19:21:28 +0800 2022 xing **Never logged in** run222 **Never logged in** run333 **Never logged in** [root@SYL2 ~]#
显示路径基名 basename
-
[root@SYL2 ~]# basename /a/b/c/d/e // 显示路径基名 e [root@SYL2 ~]# dirname /a/b/c/d/e /a/b/c/d [root@SYL2 ~]# a=/opt/software/wget-1.5.5.tar.bz2 [root@SYL2 ~]# basename $a wget-1.5.5.tar.bz2 [root@SYL2 ~]# dirname $a //显示路径 /opt/software [root@SYL2 ~]# [root@SYL2 ~]# lastlog //显示每个用户最近一次成功登录信息 Username Port From Latest root pts/7 192.168.232.1 Wed Mar 30 20:46:02 +0800 2022 tom pts/4 Wed Mar 30 20:10:42 +0800 2022 timi pts/2 Wed Mar 30 19:21:28 +0800 2022 xing **Never logged in** run222 **Never logged in** run333 **Never logged in** [root@SYL2 ~]#
显示路径基名 basename
-
[root@SYL2 ~]# basename /a/b/c/d/e // 显示路径基名 e [root@SYL2 ~]# dirname /a/b/c/d/e /a/b/c/d [root@SYL2 ~]# a=/opt/software/wget-1.5.5.tar.bz2 [root@SYL2 ~]# basename $a wget-1.5.5.tar.bz2 [root@SYL2 ~]# dirname $a //显示路径 /opt/software [root@SYL2 ~]#