什么是绝对路径与相对路径。
答:绝对路径是从根目录"/“写起的路径,相对路径是相对于当前目录写起的路径,不以”/"开头
如何更改一个目录的名称?例如由 /home/test 变为 /home/test2
cd /home
mv test test2
PATH 这个环境变量的意义?
答:记录可执行文件(命令)的路径
umask 有什么用处与优点?
答:umask 用于指定当前用户在建立文件或者目录时候的权限默认值
优点:可以动态地调整新建文件与目录的默认权限
当一个用户的 umask 分别为 033 与 044,它所建立的文件和目录的权限是什么?
答:文件默认最大权限:(-rw-rw-rw-)
目录默认最大权限:(drwxrwxrwx)
umask 是 033 时,
文件默认权限:(-rw-r–r--)
目录默认权限:(drwxr–r--)
umask 是 044 时,
文件默认权限:(-rw–w--w-)
目录默认权限:(drwx-wx-wx)
什么是 SUID
答:当 s 这个标志出现在用户组的 x 权限上时,此时就被称为 Set GID,简称为 SGID 的特殊权限,代表用户在这个目录下面新建文件的用户组都会与该目录的组名相同
当我要查询 /usr/bin/passwd 这个文件的一些属性时(1)传统权限(2)文件类型与(3)文件的隐藏属性,可以使用什么命令来查询
ll /usr/bin/passwd// 查看传统权限
file /usr/bin/passwd// 查看文件类型
lsattr /usr/bin/passwd// 查看隐藏属性
尝试用 find 找出目前 Linux 系统中,所有具有 SUID 的文件有哪些?
find / -perm -4000
找出 /etc 下面,文件大小介于 50KB 到 60KB 之间的文件,并且将权限完整地列出
find /etc -size +50k -size -60k -exec ls -l {} \;
找出 /etc 下面,文件容量大于 50KB 且文件所属人不是 root 的文件名,且将权限完整地列出
find /etc -size +50k ! -user root -exec ls -l {} \;
找出 /etc 下面,容量大于 1500KB 以及容量等于 0 的文件
find /etc -size +1500k -o -size 0k
情景模拟题
假设系统中有两个账号,分别是 alex 和 arod,这两个人除了自己用户组之外还共同支持一个名为 project 的用户组。假设这两个用户需要共同拥有 /srv/ahome/ 目录的使用权,且该目录不许其他人进入查看。请问该目录的权限设置应是什么?请先以传统权限说明,再以 SGID 的功能说明。
目标:了解到为何项目开发时,目录最好需要设置 SGID 的权限;
前提:多个账号支持同一用户组,且共同拥有目录的使用权;
需求:需要使用 root 的身份来进行 chmod、chgrp 等帮用户设置好它们的开发环境才行,这也是管理员的重要任务之一。
首先我们得要先制作出这两个账号的相关数据,账号和用户组的管理在后续我们会介绍,您这里先照着下面的命令来制作即可:
groupadd project// 增加新的用户组
useradd -G project alex// 建立 alex 账号,且支持 project
useradd -G project arod// 建立 arod 账号,且支持 project
id alex// 查看 alex 账号的属性
id arod// 查看 arod 账号的属性
然后开始来解决我们所需要的开发环境。
首先建立所需要开发的项目目录:
mkdir /srv/ahome
ll -d /srv/ahome
从上面的输出结果可发现 alex 和 arod 都不能在该目录内建立文件,因此需要进行权限与属性的修改。由于其他人均不可进入此目录,因此该目录的用户组应为 project,权限应为 770 才合理。
chgrp project /srv/ahome
chmod 770 /srv/ahome
ll -d /srv/ahome
实际分别以两个用户来测试看看,情况会是如何呢?先用 alex 建立文件,然后用 arod 去处理看看。
su - alex// 先切换身份成为 alex 来处理
cd /srv/ahome // 切换到用户组的工作目录去
touch abcd// 建立一个空文件出来
exit// 退出 alex 用户
su - arod
cd /srv/ahome
ll abcd// 用户组是 alex ,因此 arod 只是其他人
exit
加入 SGID 的权限在里面,并进行测试看看:
chmod 2770 /srv/ahome
ll -d /srv/ahome
// 测试:使用 alex 去建立一个文件,并且查看文件权限看看
su -alex
cd /srv/ahome
touch 1234
ll 1234// 用户组是 project , 这样 arod 也可以修改了