SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者(启动者可以临时拥有root权限)
格式: chmod u+s FILE
chmod u-s FILE
注意: 如果FILE本身原来就有执行权限,则SUID显示为s(小写),否则显示为S(大写)
[hadoop@zhg ~]$ cat /etc/shadow
备注:这样就可以看到了
注意: 我们发现一个文件的属主是root,又给了他SUID,这带来的风险是极大的!
如果这个文件其他人还有编辑权限就会更加麻烦,随便往里面编辑一条命令,比如rm -rf /,系统就完蛋了!
备注: 大家会发现默认就有s权限,因为普通用户也能该自己密码
实例: 写了一个脚本,如果需要获取系统属性,此时必须要有s权限。
以前网站后台用perl语言写的脚本都需要有s权限获取信息,这样的网站很容易被入侵。
SGID
: 运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组
格式: chmod g+s FILE
chmod g-s FILE
注意: 如果FILE本身原来就有执行权限,则SUID显示为s(小写),否则显示为S(大写)
举例:
公司内部有个开发团队develop team
有三个人hadoop,hbase和hive,他们有共同的使用目录/tmp/project
要求三个用户都能在这个目录下创建文件
由于三个用户创建的文件都属于同一个项目,所以三个用户都能查看和编辑对方的文件。
如何来实现?
备注:这样就能实现三个用户都能查看和编辑对方的文件
注意: 现在出现一个很大问题,三个用户都能查看和编辑对方的文件
但是还能删除对方文件
[hbase@zhg project]$ rm b.hadoop
[hbase@zhg project]$ ls -l
此时应该怎么办呢?引出下面内容
Sticky:
解释: 在一个公共目录,每个人都可以创建文件,删除自己的文件,但是不能删除别人的文件
格式: chmod o+t DIR(针对目录)
chmod o-t DIR(针对目录)
2.文件系统访问控制列表
显示结果: chown: 正在更改"a.tom" 的所有者: 不允许的操作
这怎么办呢?这就体现了文件系统访问控制列表的意义了
FACL: Filesystem Access Control List
意义: 利用文件扩展属性,保存了额外的访问控制权限
setfacl:设置facl
-m:设定额外权限
格式: -m u:UID:perm //设定用户为perm权限
-m g:GID:perm //设定组为perm权限
-m d:u:UID:perm //主要针对目录操作,将目录扩展权限向下继承
-m d:g:GID:perm //主要针对目录操作,将目录扩展权限向下继承
-x:取消额外权限
格式: -x u:UID
-x g:GID
getfacl:获取facl
另一案例:设置用户hadoop对文件inittab读写权限
取消权限:
1.取消用户权限
2.取消组权限
YUM仓库的搭建
a.本地YUM源
[root@node1 yum.repos.d]#vim CentOS-Media.repo
[c6-media] //中括号中的内容不能有空格
name=CentOS-$releasever - Media
baseurl=file:///mnt/ //YUM仓库的软件从什么地方提供
#file:///media/cdrom/
#file:///media/cdrecorder/
gpgcheck=0 //是否验证软件包。0不验证,1验证
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
mv
功能: 移动。重命名
备注: 只有在同一个目录下移动的时候,才能实现重命名的功能
举例: mv CentOS-Base.repo CentOS-Base.repo.bak
[root@node1 yum.repos.d]# ls