DAY2:河北科技大学课堂记录-用户及权限管理

day1复习

1.列出当前目录下的文件ls

2.切换目录cd

3. 删除文件rm -rf

4. 重启系统reboot

5. 关机poweroff

6.复制文件cp

7.移动文件mv

8.内存使用量free

9. 磁盘使用量df -h

10. 输出一段文字echo

11. 创建普通文本touch

12.创建目录mkdir -p

13.改变主机名hostname #注意使用该命令立即生效但是重启系统失效

14.改变主机名hostnamectl set-hostname  #注意使用该命令立即生效重启系统仍然有效

15. 当前的工作目录pwd

输出重定向

1> 把正确的结果输出倒文本并且覆盖原文

1>> 把正确的结果输出倒文本步覆盖原文

2> 把错误的结果输出倒文本并且覆盖原文

2>>把错误的结果输出到文本步不覆盖原文

&>把正确和错误的结果输出倒文本并且覆盖原文

&>> 把正确和错误的结果输出倒文本不覆盖原文

 

绝对路径和相对路径

 

绝对路径是从系统根目录开始查找

ls /root/test

相对路径是相对于当前的位置root

ls test   #注意:这种方法只能是在test所处的工作目录之下才能进行查看

ls /root/test  #注意:你可以再任意的目录下

 

 

三种引号

 

双引号:解释变量

单引号:所见即所得

反引号:执行命令

 

规范:如果一句话中需要用到几次引号规范来说外层如果是双引号,里层就应该是单引号

如果外层是单引号,里层就应该是双引号

 

vim 编辑器

 

vim三种工作模式

命令模式

编辑模式

末行模式

 

命令模式切换至编辑模式:i,a,o

编辑模式切换至命令模式:esc

命令模式切换至末行模式::

末行模式切换至命令模式:esc

 

 

命令模式下的常用操作:

 

删除,剪切: dd

复制:yy

黏贴:p

跳转到首行:1G,gg

跳转到末行:G

删除光标所在行到末尾的行:dG

查找:/   n往下查找,N网上查找

 

光标跳转到行首:home

光标跳转到行尾:end

 

 

末行模式下的常用操作

显示行号:set nu

不显示行号:set nonu

替换全文内容:1,$ 或者 % s/root/ken/g

保存退出:wq

强制退出:q!

 

崩溃缓存文件

 

崩溃缓存文件实现了在系统意外宕机的情况下保证了文件的完整性

崩溃文件的产生:

1.两人同时编辑该文本

2.系统意外宕机

 

崩溃缓存文件的处理:

  1. vim -r .test.swp
  2. wq保存退出
  3. 删除崩溃缓存文件
  4. 查看文件

 

xshell

 

 

用户管理

 

/etc/passwd 详解

root:x:0:0:root:/root:/bin/bash

 

root 用户名

x 密码位用x进行占位

0 UID 身份证 唯一标识该用户

0 GID 组身份证

root 描述信息

/root 指明家目录

/bin/bash shell类型

 

常用shell类型:

1./bin/bash  可登陆系统

2. /sbin/nolgin 不可登陆系统

 

linux中的用户类别以及UID的划分

三类用户:

超级管理员root   0

系统用户             1-999   #注意系统用户一般不让他登录系统,而且没有家目录

普通用户             1000+

 

useradd命令详解

作用:创建用户

常用选项:

-u  指定uid

-g 指定gid

-s 指定shell类型

-c 描述信息

-r 创建系统用户

 

例子1:创建用户ken

[root@ken2 ~]# useradd kenken

[root@ken2 ~]# tail -1 /etc/passwd
kenken:x:1001:1001::/home/kenken:/bin/bash

 

例子2:创建用户的时候添加描述信息

[root@ken2 ~]# useradd -c “this is for test linux” test
[root@ken2 ~]# tail -1 /etc/passwd
test:x:1002:1002:this is for test linux:/home/test:/bin/bash

 

例子3:指定创建的用户UID为1005

[root@ken2 ~]# useradd -u 1005 test1
[root@ken2 ~]# tail -1 /etc/passwd
test1:x:1005:1005::/home/test1:/bin/bash

 

例子4:指定gid为1005

[root@ken2 ~]# useradd -g 1005 test2
[root@ken2 ~]# tail -1 /etc/passwd
test2:x:1006:1005::/home/test2:/bin/bash

 

例子5:指定shell类型为/sbin/nologin

[root@ken2 ~]# useradd -s /sbin/nologin test4
[root@ken2 ~]# tail -1 /etc/passwd
test4:x:1007:1007::/home/test4:/sbin/nologin

 

例子6:创建系统用户

[root@ken2 ~]# useradd -r -s /sbin/nolgin test7

 

面试题:系统用户是不可以登录linux系统的吗?

系统用户是可以登录linux系统的,因为在/etc/default/useradd下已经定义了我们的shell类型为/bin/bash,也就是说创建的每个用户如果没有特别指定shell类型的话都会默认为./bin/bash.都可登录系统

但是为了系统的安全,我们通常情况下需要设置系统用户不可登录系统。

 

 

练习题:

1.创建用户你的名字

useradd ken

2.创建一个用户指定uid为1010

useradd -u 1010 test

3.创建一个系统用户而且不可登录系统

useradd -r -s /sbin/nolgin test1

4. 创建一个普通用户并且添加描述信息test for linux

useradd -c “test for linux” test2

 

id命令

作用:查看用户信息,判定用户是否存在

-u 仅仅查看uid

-g 仅仅查看主组id

-G 仅仅查看附加组

例子1:

[root@ken2 ~]# id ken
uid=1000(ken) gid=1000(ken) groups=1000(ken)

 

su 命令

作用:swich user 切换用户

例子1:切换至用户ken

[root@ken2 ~]# su – ken
Last login: Sat Jun 22 17:33:15 CST 2019 from 192.168.163.1 on pts/1
[ken@ken2 ~]$

 

退出当前登录用户:

[ken@ken2 ~]$ exit

 

注意:1.在切换用户的时候需要加上-进项环境变量的整体切换

2.切换用户的时候该用户必须为可登录系统

例子2:尝试登录系统用户test1

[root@ken2 ~]# su – test7
Last login: Sat Jun 22 17:59:29 CST 2019 on pts/0
su: warning: cannot change directory to /home/test7: No such file or directory
su: failed to execute /sbin/nolgin: No such file or directory

 

usermod

 

作用:user modify 修改用户信息

-u 修改uid

-g 修改主组

-s 修改shell登录类型

-l 修改用户名

 

例子1:更改test7系统用户可登录系统

[root@ken2 ~]# usermod -s /bin/bash test7
[root@ken2 ~]# tail -1 /etc/passwd
test7:x:997:995::/home/test7:/bin/bash

[root@ken2 ~]# su – test7
Last login: Sat Jun 22 18:30:27 CST 2019 on pts/0
su: warning: cannot change directory to /home/test7: No such file or directory
-bash-4.2$ ls
ls: cannot open directory .: Permission denied
-bash-4.2$

 

创建用户家目录

[root@ken2 ~]# mkdir /home/test7

[root@ken2 ~]# cp /etc/skel/.bash* /home/test7

[root@ken2 ~]# su – test7
Last login: Sat Jun 22 18:33:02 CST 2019 on pts/0
[test7@ken2 ~]$ exit
logout

 

例子2:更改用户test7的uid为1009

[root@ken2 ~]# usermod -u 1009 test7
[root@ken2 ~]# id test7
uid=1009(test7) gid=995(test7) groups=995(test7)

 

例子3:更改用户test7的主组gid为1005

[root@ken2 ~]# usermod -g 1005 test7
[root@ken2 ~]# id test7
uid=1009(test7) gid=1005(test1) groups=1005(test1)

 

例子4:把test7用户更改为test8

[root@ken2 ~]# usermod -l test8 test7
[root@ken2 ~]# tail -1 /etc/passwd
test8:x:1009:1005::/home/test7:/bin/bash

 

用户切换问题:

1.root切换到其他用户无需密码

2.普通用户切换至root需要密码

3.普通用户切换到其他普通用户需要面

4.这种情况可以不输入密码:

比如你之前登录ken用户,现在切换到了Ken1用户,只需要输入exit即可退回到ken用户

 

passwd

 

作用:给用户设置密码

常用选项:

-l: lock锁定用户

-u: unlock 解锁用户

-d: delete 删除密码

-e: expire 用户密码过期

 

例子1:给ken用户设置密码

[root@ken2 ~]# passwd ken1
Changing password for user ken1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

 

例子2:锁定用户ken

[root@ken2 ~]# passwd -l ken
Locking password for user ken.
passwd: Success

[root@ken2 ~]# su – ken1
Last login: Sat Jun 22 18:47:40 CST 2019 on pts/0
[ken1@ken2 ~]$ su – ken
Password:
su: Authentication failure

 

例子3:解锁用户ken

[root@ken2 ~]# passwd -u ken
Unlocking password for user ken.
passwd: Success

 

[root@ken2 ~]# su – ken1
Last login: Sat Jun 22 18:48:43 CST 2019 on pts/0
[ken1@ken2 ~]$ su – ken
Password:
Last login: Sat Jun 22 18:47:49 CST 2019 on pts/0
Last failed login: Sat Jun 22 18:48:52 CST 2019 on pts/0
There was 1 failed login attempt since the last successful login.
[ken@ken2 ~]$

 

例子4:让ken用户密码过期

[root@ken2 ~]# passwd -e ken
Expiring password for user ken.
passwd: Success

 

例子5:删除用户密码

[root@ken2 ~]# passwd -d ken
Removing password for user ken.
passwd: Success

 

[root@ken2 ~]# su – ken1
Last login: Sat Jun 22 18:52:53 CST 2019 on pts/0
[ken1@ken2 ~]$ su – ken
Last login: Sat Jun 22 18:55:04 CST 2019 on pts/0
[ken@ken2 ~]$

 

 

groupadd

作用:创建组

例子1:创建组

[root@ken2 ~]# groupadd ken8

[root@ken2 ~]# tail -1 /etc/group
ken8:x:1011:

 

注意:在使用useradd和usermod指定组的时候,该组必须存在!

[root@ken2 ~]# usermod -g ken8 test8
[root@ken2 ~]# id test8
uid=1009(test8) gid=1011(ken8) groups=1011(ken8)
[root@ken2 ~]# usermod -g ken9 test8
usermod: group ‘ken9’ does not exist

 

 

1. 创建用户java,uid 1000 基本组是gp001 附加组 gp002 gp003

[root@ken ~] # useradd -u 1000 -g gp001 -G gp002,gp003  java

2. 修改用户java,

将名称修改为python,

将uid修改为 2000,

修改主组是cats,

shell类型改为 /sbin/nologin

让该用户在10月1号到期

[root@ken ~]# usermod -l python -u 2000 -g cats -s /sbin/nologin -e 10/01 java

 

linux系统密码破解

 

方法一:删除/etc/shadow文件中加密的密码

方法二:bios修改

方法三:直接进入救援模式修改

 

用户管理相关的命令

useradd 创建用户

-u 指定uid

-g 指定主组id

-G 指定附加组id #主组只能有一个,附加组可以有多个,用户共享组权限

-s 指定shell类型 可登陆:/bin/bash 不可登陆:/sbin/nologin

-r 创建系统用户 #系统用户一般设置为不可登陆系统,且系统用户无家目录

 

usermod 修改用户的相关信息

-u 指定uid

-g 指定主组id

-G 指定附加组id #主组只能有一个,附加组可以有多个,用户共享组权限

-s 指定shell类型 可登陆:/bin/bash 不可登陆:/sbin/nologin

-r 创建系统用户 #系统用户一般设置为不可登陆系统,且系统用户无家目录

-l 修改用户名

 

userdel 删除用户

-r 删除用户的时候连带着用户家目录一起删掉

 

例子1:删除用户test

[root@ken2 ~]# userdel test
[root@ken2 ~]# id test
id: test: no such user
[root@ken2 ~]# ls /home
java ken1 test test2 test7
ken kenken test1 test4

 

例子2:删除用户的时候删除用户家目录

[root@ken2 ~]# userdel -r test2
[root@ken2 ~]# id test2
id: test2: no such user
[root@ken2 ~]# ls /home
java ken1 test test4
ken kenken test1 test7

 

passwd 修改用户密码

-l lock锁定用户密码

-u  unlock解锁用户密码

-d delete 删除用户密码

-e expire 使用户密码过期

 

echo “密码” | passwd –stdin 用户名

例子1:修改ken用户密码

[root@ken2 ~]# echo “123” | passwd –stdin ken
Changing password for user ken.
passwd: all authentication tokens updated successfully.

 

id 查看用户相关信息

su 切换用户 su – root

 

 

权限管理

 

三种权限:

读 写  执行

r   w     x

 

读写执行权限对于目录来说表示的含义:

读权限:对于目录来说读权限表示用户可以查看目录下有哪些文件ls

写权限:对于目录来说写权限表示用户可以在目录写进行创建文件,删除文件,移动文件,复制文件rm,mv,cp,touch

执行权限:对于目录来说执行权限表示可以进行目录切换cd

 

 

读写执行权限对于文件来说表示的含义:

读权限:表示用户可以查看文件内容cat

写权限:表示用户可以编辑文件echo ,vim

执行权限:表示用户可以执行该文本 #执行权限一般是给二进制可执行命令或者脚本的

 

在linux系统中一切皆文件!

 

属主:谁创建的这个文件谁就是属主

属组:在用户创建该文件的时候就是和属主的属组保持一致

#注意:属主和属组都是可以更改的

其他人:既不是属主也没再属组中

 

权限的介绍:

怎么查看权限那?

ls -l

 

[root@ken2 ~]# ls -l
-rw-r–r-x 1 root root 0 Jun 21 16:53 test1

– 文件类型

属主权限:

r read读权限

w  write写权限

– 没有执行权限

 

属组权限:

r  属组里面的用户有读权限

– 属组里面的用户没有写权限

– 属组里面的用户没有执行权限

 

其他人权限:

r 其他人有读权限

– 其他人没有写权限

x 其他人拥有执行权限

 

权限设置

chmod

作用:更改权限

选项:

-R 级联更改

三类权限:

r

w

x

 

三类人:

u   —->表示属主

g   —->表示属组

o   —> 其他人

a   —>all表示属主属组其他人

 

在练习的时候去/tmp目录下:

 

例子1:给test文件赋予读写权限

[root@ken2 tmp]# ll
total 0
-rw-r–r– 1 root root 0 Jun 22 22:42 test
drwx—— 2 root root 6 Jun 19 23:00 vmware-root
[root@ken2 tmp]# su – ken
Last login: Sat Jun 22 22:40:39 CST 2019 on pts/1
[ken@ken2 ~]$ cd /tmp
[ken@ken2 tmp]$ echo “123” >> test   #现在是显示被拒绝
-bash: test: Permission denied

 

给test文件增加写权限

方法一:

[root@ken2 tmp]# chmod o+w test
[root@ken2 tmp]# ll
total 0
-rw-r–rw- 1 root root 0 Jun 22 22:42 test
drwx—— 2 root root 6 Jun 19 23:00 vmware-root

[root@ken2 tmp]# ll
total 0
-rw-r–rw- 1 root root 0 Jun 22 22:42 test
drwx—— 2 root root 6 Jun 19 23:00 vmware-root
[root@ken2 tmp]# su – ken
Last login: Sat Jun 22 22:42:55 CST 2019 on pts/1
[ken@ken2 ~]$ cd /tmp
[ken@ken2 tmp]$ echo “123” >> test

 

方法二:

[root@ken2 tmp]# chmod o=rw test
[root@ken2 tmp]# ll
total 4
-rw-r–rw- 1 root root 4 Jun 22 22:44 test
drwx—— 2 root root 6 Jun 19 23:00 vmware-root
[root@ken2 tmp]# su – ken
Last login: Sat Jun 22 22:44:19 CST 2019 on pts/1
[ken@ken2 ~]$ cd /tmp
[ken@ken2 tmp]$ echo “123” >> test
[ken@ken2 tmp]$ cat test
123
123

 

例子2:去掉w权限

方法一:

[root@ken2 tmp]# chmod o-w test
[root@ken2 tmp]# ll
total 4
-rw-r–r– 1 root root 8 Jun 22 22:45 test
drwx—— 2 root root 6 Jun 19 23:00 vmware-root

 

方法二:

[root@ken2 tmp]# chmod o=r test
[root@ken2 tmp]# ll
total 4
-rw-r–r– 1 root root 8 Jun 22 22:45 test
drwx—— 2 root root 6 Jun 19 23:00 vmware-root

 

例子4:去掉test文件的读权限

[root@ken2 tmp]# chmod o-r test
[root@ken2 tmp]# ll
total 4
-rw-r—– 1 root root 8 Jun 22 22:45 test
drwx—— 2 root root 6 Jun 19 23:00 vmware-root

 

进行验证:

[root@ken2 tmp]# su – ken
Last login: Sat Jun 22 22:45:24 CST 2019 on pts/1
[ken@ken2 ~]$ cd /tmp
[ken@ken2 tmp]$ ls
test vmware-root
[ken@ken2 tmp]$ cat test
cat: test: Permission denied

 

 

例子5:把ken用户添加进root组获取test文件的读权限

[root@ken2 tmp]# usermod -G root ken
[root@ken2 tmp]# id ken
uid=1000(ken) gid=1000(ken) groups=1000(ken),0(root)

[root@ken2 tmp]# su – ken
Last login: Sat Jun 22 22:50:04 CST 2019 on pts/1
[ken@ken2 ~]$ cd /tmp
[ken@ken2 tmp]$ cat test
123
123

 

例子7:给所有的用户加执行权限

方法一:

[root@ken2 tmp]# chmod +x test
[root@ken2 tmp]# ll
total 4
-rwxr-x–x 1 root root 8 Jun 22 22:45 test

方法二:

[root@ken2 tmp]# chmod a+x test
[root@ken2 tmp]# ll
total 4
-rwxr-x–x 1 root root 8 Jun 22 22:45 test

 

例子9:给所有的用户添加读权限

方法一:

[root@ken2 tmp]# chmod +r test
[root@ken2 tmp]# ll
total 4
-r-xr-xr-x 1 root root 8 Jun 22 22:45 test
drwx—— 2 root root 6 Jun 19 23:00 vmware-root

 

方法二:

[root@ken2 tmp]# chmod a+r test
[root@ken2 tmp]# ll
total 4
-r-xr-xr-x 1 root root 8 Jun 22 22:45 test
drwx—— 2 root root 6 Jun 19 23:00 vmware-root

 

例子10:给所有的用户添加写权限

[root@ken2 tmp]# chmod a+w test
[root@ken2 tmp]# ll
total 4
-rwxrwxrwx 1 root root 8 Jun 22 22:45 test
drwx—— 2 root root 6 Jun 19 23:00 vmware-root

 

例子11:给test文件属主拥有读写权限,其他人有读权限

[root@ken2 tmp]# chmod u=rw,o=r test
[root@ken2 tmp]# ll
total 4
-rw-rwxr– 1 root root 8 Jun 22 22:45 test
drwx—— 2 root root 6 Jun 19 23:00 vmware-root

 

用数字表示权限

r –>4

w –>2

x –>1

 

777 表示含义所有人拥有读写执行权限

600 表示只有属组拥有读写权限

644 属主拥有读写权限,属组以及其他人只拥有读权限

 

例子1:属主拥有读写权限,属组拥有读权限,其他人仅拥有执行权限

[root@ken2 tmp]# chmod 641 test
[root@ken2 tmp]# ll
total 4
-rw-r—-x 1 root root 8 Jun 22 22:45 test

 

例子2:属主拥有读写执行权限,属组以及其他人拥有读写权限

[root@ken2 tmp]# chmod 766 test
[root@ken2 tmp]# ll
total 4
-rwxrw-rw- 1 root root 8 Jun 22 22:45 test

 

例子3:属主拥有读写权限,属组以及其他人仅拥有执行权限

[root@ken2 tmp]# chmod 611 test
[root@ken2 tmp]# ll
total 4
-rw—x–x 1 root root 8 Jun 22 22:45 test

 

常用到的权限:

777

664  #文本创键时默认的权限

600

000

755 #目录创建时默认权限

 

文本创建时的初始权限为666,但是需要减去umask值022,644

目录创建时的权限为777,但是需要减去umask值022,755

 

验证目录的读写执行权限

执行权限:

例子1:减去目录其他人的执行权限并验证其他人是否还可以切换进该目录

[root@ken2 ~]# ls -ld /ken
drwxr-x— 2 root root 6 Jun 22 23:31 /ken

[root@ken2 ~]# su – ken
Last login: Sat Jun 22 23:08:04 CST 2019 on pts/1

[ken@ken2 ~]$ cd /ken  #已经显示被拒绝
-bash: cd: /ken: Permission denied

 

给/ken增加执行权限

[root@ken2 ~]# chmod o+x /ken
[root@ken2 ~]# ll /ken
total 0
[root@ken2 ~]# ll /ken -ld
drwxr-x–x 2 root root 6 Jun 22 23:31 /ken
[root@ken2 ~]# su – ken
Last login: Sat Jun 22 23:34:34 CST 2019 on pts/1
[ken@ken2 ~]$ cd /ken
[ken@ken2 ken]$

 

例子2:验证下用户是否可以在/ken目录下创建文件

[ken@ken2 ken]$ touch test
touch: cannot touch ‘test’: Permission denied

 

[root@ken2 ~]# chmod o+w /ken
[root@ken2 ~]# ll
total 16
-rw——-. 1 root root 1246 Apr 4 06:53 anaconda-ks.cfg
-rw-r–r– 1 root root 3392 Jun 22 22:15 passwd
-rw-r–r– 1 root root 4 Jun 22 17:33 test
-rw-r–r– 1 root root 0 Jun 21 16:53 test1
-rw-r–r– 1 root root 196 Jun 22 22:15 useradd.sh
[root@ken2 ~]# ls -ld /ken
drwxr-x-wx 2 root root 6 Jun 22 23:31 /ken
[root@ken2 ~]# su – ken
Last login: Sat Jun 22 23:36:02 CST 2019 on pts/1
[ken@ken2 ~]$ touch /ken/test
[ken@ken2 ~]$

 

例子3:验证用户是否就可以查看该目录下的文件

[ken@ken2 ~]$ ls /ken
ls: cannot open directory /ken: Permission denied

[root@ken2 ~]# chmod o+r /ken

[root@ken2 ~]# ls -ld /ken
drwxr-xrwx 2 root root 18 Jun 22 23:38 /ken
[root@ken2 ~]# su – ken
Last login: Sat Jun 22 23:39:32 CST 2019 on pts/1
[ken@ken2 ~]$ ls /ken
test

 

-R选项:

例子1:给/ken目录下的所有及其/ken目录本身添加777权限

[root@ken2 ~]# ls /ken -l
total 0
-rw-rw-r– 1 ken ken 0 Jun 22 23:38 test
[root@ken2 ~]# chmod 777 /ken  #如果在更改权限的时候对象是目录的话,如果不加-R选项仅仅只对目录本身做权限的更改
[root@ken2 ~]# ls /ken -l
total 0
-rw-rw-r– 1 ken ken 0 Jun 22 23:38 test
[root@ken2 ~]# ls -ld /ken
drwxrwxrwx 2 root root 18 Jun 22 23:38 /ken

 

[root@ken2 ~]# chmod -R 777 /ken
[root@ken2 ~]# ls -ld /ken
drwxrwxrwx 2 root root 18 Jun 22 23:38 /ken
[root@ken2 ~]# ls -l /ken   #发现目录下的所有文件都已经更改
total 0
-rwxrwxrwx 1 ken ken 0 Jun 22 23:38 test

 

chown

作用:更改属主以及属组

-R:级联更改

例子1:更改test文件属主为ken

[root@ken2 tmp]# chown ken test
[root@ken2 tmp]# ll
total 4
drwxr-xr-x 2 root root 6 Jun 22 23:26 ken
-rw—x–x 1 ken root 8 Jun 22 22:45 test

 

例子2:更改属组为ken

方法一

[root@ken2 tmp]# chown :ken test

 

方法二

[root@ken2 tmp]# chown .ken test

 

方法三

[root@ken2 tmp]# chown root.ken test

 

方法四

[root@ken2 tmp]# chown root:ken test

 

 

更改属主属组的几种方法:

chown ken test

chown ken:root  test

chown ken.root test

chown ken: test #表示的含义同时更改属主和属组为ken

chown ken. test

chown :ken test #只更改属组

chown .ken test

 

三类特殊权限

 

SUID

SGID

SBIT

SUID: 给二进制可执行命令设置,效果就是用户在执行该命令的时候使用属主权限相当于在使用root用户执行该命令。注意:SUID不可以设置在目录上面

例子1:让其他让人可以查看/etc/shadow文件

[root@ken2 tmp]# su – ken
Last login: Sat Jun 22 23:50:38 CST 2019 on pts/1
[ken@ken2 ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied

 

[root@ken2 tmp]# chmod u+s /usr/bin/cat

 

 

SGID: 可以设置在目录上面,也可以设置在命令上面,设置在命令上面和SUID效果一样

设置在目录上面效果:创建的文件会自动继承该目录的属组

例子1:给目录/ken添加SGID权限

[root@ken2 ~]# chmod -R g+s /ken  #级联更改

[ken@ken2 ken]$ touch test1
[ken@ken2 ken]$ ll
total 0
-rwxrwsrwx 1 ken ken 0 Jun 23 00:18 test
-rw-rw-r– 1 ken root 0 Jun 23 00:18 test1

 

 

SBIT:作用是给目录设置,该目录下的文件只能属主进行删除修改等操作,其他人是没有权限去更改其他人的文件的

[root@ken2 ~]# chmod -R o-t /tmp  #去掉SBIT权限
[root@ken2 ~]#
[root@ken2 ~]#
[root@ken2 ~]#
[root@ken2 ~]# su – ken1
Last login: Sun Jun 23 00:22:13 CST 2019 on pts/1
[ken1@ken2 ~]$
[ken1@ken2 ~]$ cd /tmp
[ken1@ken2 tmp]$ ls
ken kenken test test1 vmware-root
[ken1@ken2 tmp]$ rm -rf kenken
[ken1@ken2 tmp]$ ls
ken test test1 vmware-root

 

怎么添加SBIT权限?

[root@ken2 ~]# chmod o+t /tmp
[root@ken2 ~]# ls -ld /tmp
drwxrwxrwt. 9 root root 169 Jun 23 00:23 /tmp

 

 

ACL权限

作用:可以对特定的用户进行特定的管控

例子1:实现对ken用户管控,只允许该用户对test1文件进行读操作,不可以写操作

设置:

[root@ken2 tmp]# setfacl -m u:ken:r test1

 

查看acl权限:

[root@ken2 tmp]# getfacl test1
# file: test1
# owner: root
# group: root
user::rw-
user:ken:r–
group::r–
mask::r–
other::rw-

 

验证:

[ken@ken2 ~]$ cd /tmp
[ken@ken2 tmp]$ cat test1
123
[ken@ken2 tmp]$ echo “123” >> test1
-bash: test1: Permission denied

 

去掉acl权限:

[root@ken2 tmp]# setfacl -b test1   #-b去掉所有的acl权限
[root@ken2 tmp]# getfacl test1
# file: test1
# owner: root
# group: root
user::rw-
group::r–
other::rw-

[root@ken2 tmp]# su – ken
Last login: Sun Jun 23 00:29:10 CST 2019 on pts/1
[ken@ken2 ~]$ cd /tmp
[ken@ken2 tmp]$ echo “123” >> test1
[ken@ken2 tmp]$
[ken@ken2 tmp]$ cat test1
123
123
[ken@ken2 tmp]$

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值